¿Qué estilo de salto de línea es preferible para usar en encabezados HTTP: \r\n
o \n
, y por qué?
fuente
¿Qué estilo de salto de línea es preferible para usar en encabezados HTTP: \r\n
o \n
, y por qué?
\r\n
, porque se define como el salto de línea en la especificación del protocolo. RFC2616 establece al comienzo de la sección 2.2, "Reglas básicas" , sin ambigüedades:
CR = <US-ASCII CR, retorno de carro (13)>
LF = <US-ASCII LF, salto de línea (10)>
HTTP / 1.1 define la secuencia CR LF como el marcador de fin de línea para todos los elementos del protocolo, excepto la entidad -cuerpo
RFC2616 fue técnicamente obsoleto por RFC7230, pero no hace cambios drásticos y nuevamente llama a CRLF como delimitador en la sección 3 , y ese RFC hace referencia a RFC5234, Apéndice B.1 para definir "CRLF" como %x0D %x0A
.
Sin embargo, reconociendo que las personas romperán el estándar para cualquier propósito, hay una "disposición de tolerancia" en la sección 19.3 (tenga en cuenta que reitera la secuencia correcta ):
El terminador de línea para los campos de encabezado de mensaje es la secuencia CRLF. Sin embargo, recomendamos que las aplicaciones, al analizar dichos encabezados, reconozcan un solo LF como un terminador de línea e ignoren el CR principal.
En el nuevo RFC7230, § 3.5
Aunque el terminador de línea para los campos de encabezado y línea de inicio es la secuencia CRLF, un destinatario PUEDE reconocer un solo LF como un terminador de línea e ignorar cualquier CR precedente.
Por lo tanto, a menos que quieras ser malvado o de otra manera romper las reglas del RFC, úsalo \r\n
.
\ r \ n porque RFC 2616 lo dice (Sección 2.2, "Reglas básicas"):
fuente
CRLF ("\ r \ n"), porque los navegadores siguen RFC2616 .
fuente