|
Posted by Rasmus Lerdorf on 09/02/05 20:47
Chris Shiflett wrote:
> Rasmus Lerdorf wrote:
>
>> That's a bit misleading. The HTTP response headers are sent a soon
>> as you output something from your script (calling header() or
>> setcookie() doesn't count as output, so you can set all the headers
>> and cookies you want).
>
>
> They're sent to Apache, but that doesn't mean anything is necessarily
> sent to the client, right? I guess I should have pointed out that this
> depends on a few things, such as whether the response is sent with:
>
> Transfer-Encoding: chunked
>
> or
>
> Content-Length: ...
>
> Common sense tells me that Apache can't provide a reliable
> Content-Length header until my script completes. :-)
Which is why dynamic requests typically do not have a content-length
header. Unless you explicitly turn on output buffering, the headers are
sent as soon as you send your first real output. The end of the request
has nothing to do with it.
>> And the browsers tend to redirect right away once they get this
>> header.
>
> I would find that very surprising. Maybe I'll experiment. If I
> understand you correctly, you're suggesting that a browser will request
> the new URL before receiving the previous response in its entirety. Even
> assuming a chunked transfer encoding, that seems weird.
Consider yourself surprised then, that is how things work.
-Rasmus
Navigation:
[Reply to this message]
|