On 13 Dec 2011, at 8:39 PM, William A. Rowe Jr. wrote: >> The set of policies to apply is as follows, but is expected to change with >> time: >> >> o Content-Type: check that it's present and valid >> o Content-Length: check that it is present and valid (used to ensure that >> keepalive requests between httpd and load balancers aren't prematurely >> terminated by a Connection: close) > > Presume this means C-L and/or T-E chunked?
The content length filter just does a simple check for content length, while the keepalive filter takes into account T/E chunked in far more detail. What we've discovered is that our restful service layer was receiving a lot of HTTP/1.0 requests from client libraries (not entirely sure why, seems HTTP/1.0 is the default request version for some well used HTTP client libraries out there). If your service leaves off content length, and the client is HTTP/1.0, then the server indicates the end of the request by terminating the connection, which in turn makes the load balancers less effective than they should have been. We started with complaining about keepalive, and then switching to complaining about content-length so that HTTP/1.0 requests were taken into account. Regards, Graham --