[Israel.pm] Apache/mod_perl help

Gaal Yahas gaal at forum2.org
Mon Nov 14 22:42:29 PST 2005


On Tue, Nov 15, 2005 at 03:11:29AM +0200, Scott Weisman wrote:
> POST /admin/control/upload HTTP/1.1
[...]
> Here's the response header:
> 
> HTTP/1.1 200 OK
[...]
> Transfer-Encoding: chunked
> Content-Type: text/html; charset=ISO-8859-1
> 
> 6873
> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> <head>
> <title>Branch Control</title>
> ...
> ...
> </body>
> </html>
> 
> 
> 0
> 
> Notice the "6873" at the beginning and the "0" at the end? Those don't
> belong there, and I can't figure out why they are showing up! The
> value at the beginning does differ, but always seems to be 4
> chararacters.

In most HTTP messages, the sending end knows the length of the message
in advance and can send in a "Content-length:" header. What you're
seeing here is "chunked" transfer encoding, which is a scheme designed
to allow sending out data without (or before) knowing its length.

6873 (in hex) means there are 26739 bytes (decimal) in the following
chunk. It also happened to be the last chunk of data the server had to
give out, so afterwards you see a "0", not a positive integer. But at
its discretion, this same message could have been sent out it more than
one chunk say, 0x6000 and 0x873 bytes.

How to solve your actual problem? I'm not sure what's the Right Thing.
It's certainly a bug in the web client, which should be reported. As a
workaround, you could disable HTTP 1.1 in either the client or the
server -- HTTP 1.0 didn't have chunking. There may be a clever way of
configuring the server to respond with 1.0 to this browser only, but
I'm no expert on that.

Hope this helps,
Gaal

-- 
Gaal Yahas <gaal at forum2.org>
http://gaal.livejournal.com/



More information about the Perl mailing list