Re: ISSUE-4 (SpecContent): Should specifications decide what counts as content for transfer? [Progress Events]

Charles McCathieNevile wrote:
> On Sun, 22 Jun 2008 10:32:50 +0200, Jonas Sicking <jonas@sicking.cc> wrote:
> 
>> Bjoern Hoehrmann wrote:
>>> * Jonas Sicking wrote:
>>>> It makes no sense to me to for HTTP say that the total number of 
>>>> bytes should include HTTP headers. It would be similar to including 
>>>> the TCP headers in the IP packets IMHO.
>>>  There is a big difference here, an application might not have 
>>> meaningful
>>> access to the latter, but would necessarily have meaningful access to
>>> the former (even if only to the next hop).
>>
>> I don't see how ability to get hold of one or another makes a 
>> difference in determining whether it's the right or the wrong data. 
>> There is lots of data available that would be the wrong data, that 
>> doesn't change the fact that it's the wrong data.
>>
>>> The consequence of not in-
>>> cluding headers would be, e.g., that on HEAD requests you would seem to
>>> never make any progress.
>>
>> Yes, I agree that this is somewhat unfortunate. Though in reality I 
>> doubt that it will matter much since headers are usually small enough 
>> that you don't really need progress reports on them.
> 
> Well, until you get some mobile network crawling along sending an accept 
> header ...
> 
> Seriously, this is the sort of problem that makes me want to define this 
> as application-specific. Because it makes no sense to me that a GET 
> request counts the returned header as content, but it makes sense to me 
> that a HEAD request does, and I am not sure what makes sense for PUT. 
> Using it for mail, where you are transferring an entire mailbox as a 
> single object it seems natural to count the mail headers, but shifting 
> an individual message I am not so sure...

Is anyone ever going to be able to get any useful size data for the 
headers anyway though? I.e. if we allow headers to be counted as part of 
the size, is anyone ever going to be able to do that?

To be able to do that you'd have to have some sort of out-of-band 
metadata that travells parallel to the TCP/IP connection since the 
TCP/IP connection is busy transferring HTTP which doesn't contain this 
information.

I guess you could use just the 'bytes downloaded so far' part just to 
show that progress is made, but that would mix very strangly if you then 
received a body which you did have a size for.

Anyhow, I guess I don't care that much about this as it won't affect any 
actual implementations for the web at least for now. And I think in 
reality most people will not include the headers due to all the 
strangness mentioned above if you did include the headers. So feel free 
to go ahead either way on this.

/ Jonas

Received on Monday, 23 June 2008 18:23:28 UTC