Es una solicitud HTTP que envía una Content-Length o Transfer-Encoding con un 204 No hay respuesta contenido roto?

StackOverflow https://stackoverflow.com/questions/912863

  •  06-09-2019
  •  | 
  •  

Pregunta

No puedo decir de RFC 2616 si un cliente HTTP debe aceptar No hay respuesta de un 204 contenido que incluye Content-Length: 0 ó Transfer-Encoding: fragmentada cabeceras. Estas cabeceras parecen romper algunos clientes HTTP y servidores proxy, que al parecer intento de leer el cuerpo de la respuesta vacía, pero la especificación lee :

  
      
  1. Cualquier mensaje de respuesta que "no debe" incluir un mensaje de cuerpo (tal como   la 1xx, 204, y 304 y respuestas   cualquier respuesta a una petición HEAD) es   Siempre terminado por el primer vacía   la línea después de que los campos de cabecera,   independientemente de los campos de cabecera de la entidad   presente en el mensaje.
  2.   

Para mí "independientemente de los campos de cabecera entidad" implica que los clientes deben tolerar este estado de cosas. El Erlang HTTP biblioteca eligió esta interpretación. Sin embargo, LightHTTPD y IBM eligió la interpretación opuesta -. que el servidor no debe incluir estos encabezados para las respuestas que están prohibidos de tener cuerpos

Así que si la aplicación web eliminar esas cabeceras de la respuesta, o si la infraestructura de red y los clientes tolerar esos encabezados por 204 Sin contenido, 304 Not Modified, etc.?

¿Fue útil?

Solución

De acuerdo con la RFC7230 (consulte http://tools.ietf.org /html/rfc7230#section-3.3.1 ) al final de la página 29 se afirma:

  

Un servidor NO DEBE enviar un campo de encabezado Transfer-Encoding en cualquier      la respuesta con un código de estado de 1xx (Informativo) o 204 (No se      Contenido).

Por lo tanto la aplicación web no debe enviar los encabezados con la respuesta.

Otros consejos

No te puedo decir lo que es correcto, en el que yo no conozco el protocolo HTTP en ese detalle.

Sin embargo, usted tiene que preguntarse:

  1. ¿Puedo cambiar mi solicitud para eliminar esas cabeceras?
  2. o puedo cambiar los consumidores de mi solicitud de ignorar esas cabeceras?

En mi opinión, la aplicación no debe enviar los encabezados en ese caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top