Have a question about past design decisions regarding Apache.
My question has come about due to a slightly heated discussion over chunked transfer encoding and its application to response content. In the mod_wsgi module I am implementing for Apache I preserve the default behaviour of Apache which is not to switch on chunked transfer encoding for response content. Because the Python WSGI specification that the module is implementing an adapter for doesn't itself provide a way for an application to indicate that it wants chunked transfer encoding to be used, I have as a convenience provided a directive to control it. The default for the directive is Off (preserving default behaviour of Apache) with other values being On, which is always enable it, ie., set r->chunked to 1 always, and Auto, which will only set r->chunked to 1 if there is no content length header provided for the response by the application. On the WSGI list though, one person has labeled the directive as pointless. Their belief is that a quality HTTP server supporting HTTP/1.1 should always behave in the Auto mode above. Ie., if content length header has not been specified, that the web server should by itself decide to enable chunked transfer encoding. Obviously then he would have to feel that the default behaviour of Apache is wrong. Thus my question is, why when Apache was updated to support HTTP/1.1 did it just preserve the HTTP/1.0 type behaviour and not in cases where it could automatically apply chunked transfer encoding to the response, apply it? The person on the WSGI list is more or less claiming that there would be no harm in a web server always applying chunked transfer encoding to a response which doesn't specify a content length, of course providing it is a HTTP/1.1 client, but something tells me that this doesn't sound quite right and there must be good reasons why Apache doesn't do it. Is this persons claim reasonable, or are there good reasons why one wouldn't want to use chunked transfer encoding on responses with no content length header and thus why Apache requires r->chunked to be set explicitly by an application to enable it. Thanks in advance for any feedback and hopefully this question about how Apache is designed isn't seen as being off topic for the list. :-) Graham