Hi,

Mike <the.li...@mgm51.com> wrote:
> 
> Diving into tcpdump, I found an important difference between httpd and
> nginx.  


See /usr/src/usr.sbin/httpd/server_fcgi.c

Transfer Encoding `chunked' is set for HTTP/1.1 in lines 389 and 390.

In lines 620 to 634 the Content-Length Header is removed. Note, if
there is already another Transfer-Encoding set by the FastCGI, the
connection is aborted (lines 553 to 559).

When looking at RFC2616 (HTTP/1.1) both versions seem to be valid (see
section 14.3 for the Context-Length Header and section 4.4 `Message
Length', paragraph 2 about Transfer-Encoding and paragraph three about
mismatching(?) both.

> The difference between the two is that httpd does not include the
> Content-length header that I specify in the php script, while nginx
> does.
> 
> Is there a way to encourage httpd to include the Content-length
> header, or do I need to stay with nginx for this app?

Doesn't look this way at the moment.  If your C skills are better than
mine, look at the lines in the server_fcgi.c file.

The FastCGI specifiction RFC 3875 part corresponding to HTTP Headers
seems to be section 6.3, in this case especially subsection 4.  See the
nginx forum post
(https://forum.nginx.org/read.php?2,235985,235988#msg-235988) for an
explanation.

Best regards
Robert

Reply via email to