2011-12-25 15 views
8

Comencé a gustarme HTTP, hasta que descubrí que algunos códigos de estado like 304 no contienen ningún cuerpo de mensaje y CRLF los finaliza.Lista completa de códigos de estado HTTP QUE NO INCLUYEN UN CUERPO DE RESPUESTA

¿Dónde hay una lista completa? Hasta ahora tengo: 100-199, 204 y 304. ¿Hay otros?

EDIT: No, no de acuerdo con la norma. Gracias por la respuesta.

Me preocupa el delimitación de mensajes con conexiones persistentes. es decir, ¿dónde se detiene un mensaje HTTP y comienza el siguiente?

+0

esta es una lista de códigos de estado HTTP (http://en.wikipedia.org/wiki/List_of_HTTP_status_codes) ... TENGA EN CUENTA que incluso los códigos que devuelven un cuerpo de respuesta pueden, en algunas situaciones, comportarse de manera diferente y regresar sin respuesta cuerpo (error del servidor, problema de la red, lo que sea) ... Recomiendo encarecidamente no confiar en el estándar puro PERO para manejar lo que reciba en consecuencia y con elegancia, al menos en la forma en que su código no solo muere o produce resultados incorrectos ... – Yahia

+0

@Yahia lo que me preocupa es ÚNICAMENTE la delimitación de mensajes HTTP. es decir, ¿dónde se detiene un mensaje y comienza el siguiente? – unixman83

+0

¿Has leído mi comentario completo? – Yahia

Respuesta

14

Un cuerpo es opcional para todos los códigos de 4xx de error:

Excepto al responder a una petición HEAD, el servidor DEBERÍAN incluir una entidad que contiene una explicación de la situación de error, y si es una condición temporal o permanente.

Lo mismo para el 5xx:

Excepto al responder a una petición HEAD, el servidor DEBE incluir una entidad que contiene una explicación de la situación de error ...

(DEBERÍA decir que realmente, deberían, pero no es OBLIGATORIO.)

Los mensajes 1xx no contiene un cuerpo por lo que puedo decir. 201 (además de 204 y 205) no tiene que tener un cuerpo. Los 3xx son una bolsa mixta, pero un cuerpo es opcional para muchos de ellos.

Fuente: HTTP/1.1: Status Code definitions.

Las reglas para la información de la longitud del mensaje se describen en HTTP Message - 4.4 Message Length. No es exactamente trivial.

+0

si no incluyen ningún cuerpo, ¿incluyen un encabezado 'Content-Length: 0'? ¿Cómo los delimito con conexiones persistentes? – unixman83

+0

@ unixman83: editado con un enlace a las reglas de longitud del mensaje. – Mat

Cuestiones relacionadas