RE: HTTP Partial Download Query

On Thu, 12 Dec 2002, Yogesh Bang wrote:

> My requirement is that I need to LOG which autherised user has asked
> for download of which DIGITAL CONTENT and to track whether the
> TRANSFER of that resource from WEB-SERVER is successful or not.

The above requirement does not necessarily imply that you need to care
about partial downloads. A standard httpd access log would contain the
above information.

> By the term COMPLETE DOWNLOAD, I mean to say the full transfer of
> that digital content from WEB-SERVER. It need not be necessary to
> track whether it has reached the CLIENT machine.
>
> For PARTIAL DOWNLOAD case the real problem is that I can not keep
> Session and also I can not keep cookies at client machine (Since the
> client can be any Device,PDA,Mobile Phones which may or may-not
> allow any cookies). In such case how to track the DOWNLOAD status?

In such case, you cannot. HTTP does not maintain state for you. Your
preconditions (you tell us that your application cannot, essentially,
maintain any state, for whatever reason) imply that you cannot link
two partial responses together. Thus, you cannot maintain status for
anything other than a single transaction (one request, one response,
ranged or not).

You need to re-evaluate your preconditions (whether your CGIs are
allowed to maintain state; whether you can prevent the server from
serving partial content)  and/or re-evaluate your goal (whether you
really need to distinguish between partial and full downloads rather
than, say, just count unique URLs requested by a user).

> One scenario which is also not clear to me is when WEB-SEVER will send
> multipart/byteranges response?

Whenever a request with Range header containing several
non-overlapping ranges is received by a server that can handle range
requests.

> I mean SINGLE response to a request for multiple non-overlapping
> ranges.

As I said, the server always responds with a single message to a
single request (100-Continue notifications aside). Ranges are
irrelevant here.

> How to REQUEST for multiple non-overlapping ranges looks like?

	GET / HTTP/1.1
	Range: bytes=500-999,7000-7999
	...

> If you can explain the scenarion with sample Http Request-Response,
> It will be enormous help (Please refer to section 19.2
> of RFC 2616).

I do not think I can explain it much better than the RFC. See sections
14.35 and 19.2, to start with. If you have specific questions,
somebody on this list will probably be able to answer them.

Alex.

-- 
                            | HTTP performance - Web Polygraph benchmark
www.measurement-factory.com | HTTP compliance+ - Co-Advisor test suite
                            | all of the above - PolyBox appliance

Received on Thursday, 12 December 2002 10:51:01 UTC