No puedo decir desde RFC 2616 si un cliente HTTP debe aceptar una respuesta 204 Sin contenido que incluye Content-Length: 0 o Transfer-Encoding: hechged headers. Estas cabeceras parecen romper algunos clientes HTTP y servidores proxy, que al parecer intento de leer el cuerpo de la respuesta vacía, pero the spec reads:¿Se ha roto una aplicación HTTP que envía Content-Length o Transfer-Encoding con 204 Sin contenido?
- Cualquier mensaje de respuesta, que "no debe" incluir un mensaje de cuerpo (como la 1xx, 204 y 304 respuestas y cualquier respuesta a una solicitud HEAD) es terminada siempre por la primera línea vacía después de los campos de encabezado, independientemente de los campos de encabezado de entidad presentes en el mensaje.
Para mí "independientemente de los campos de cabecera entidad" implica que los clientes deben tolerar este estado de cosas. El Erlang HTTP library eligió esta interpretación. Sin embargo, lighthttpd y IBM eligieron la interpretación opuesta: que el servidor no debe incluir estos encabezados para las respuestas que tienen prohibido tener cuerpos.
Entonces, ¿debería la aplicación web eliminar esos encabezados de la respuesta, o la infraestructura de red y los clientes deben tolerar esos encabezados en 204 Sin contenido, 304 No modificado, etc.?
Bien, seis años después, ¡tienes la respuesta correcta! –