type que personalizadas length headers ejemplo definicion data content cabeceras cabecera accept http-headers

http headers - que - ¿Cómo escapar un literal de salto de línea en el encabezado HTTP?



http headers post (5)

De acuerdo con RFC2616 4.2 encabezados de mensaje : -

Los campos de encabezado se pueden extender en varias líneas al preceder cada línea adicional con al menos un SP o HT.

Supongo que SP significa un carácter de espacio y HT significa un carácter de tabulación dura.

En el encabezado HTTP, los saltos de línea son tokens para separar los campos en el encabezado.

Pero, si quiero enviar un literal de salto de línea en un campo personalizado, ¿cómo debo escapar?


Si está diseñando su propio campo de extensión personalizado, puede usar BASE64 o quoted-printable para escapar (y deshacer) el valor.


Si se trata de un campo personalizado, la forma en que se puede escapar depende completamente de cómo la aplicación seleccionada lo vaya a analizar. Si esto es un poco más de lo que creó, podría quedarse con la codificación URL ya que es bastante probado y muchos lenguajes tienen métodos de codificación / decodificación integrados para que su aplicación web pueda codificarlo y conectarlo (o lo que sea que esté trabajando en él). ) lo decodificaría.


La idea es que HTTP es solo ASCII , y las nuevas líneas no están permitidas . Si tanto el emisor como el receptor pueden interpretar SU codificación, puede codificar lo que quiera, como quiera. Así es como los nombres internacionales de DNS se manejan con el encabezado Host (se llama PUNYCODE).

La respuesta corta es: no, a menos que controle el emisor y el receptor.


La respuesta real a esta pregunta es que no hay un estándar para codificar saltos de línea.

Puede usar cualquier codificación de Binary-to-text como URL-Encoding o Base64, pero obviamente eso solo funcionará si tanto el emisor como el receptor implementan el mismo método.

RFC 2616 permitió ''doblar'' (es decir, ajustar) los valores del encabezado en varias líneas, pero los saltos de línea se trataron como un único carácter de espacio y no como parte del valor del campo analizado.

Sin embargo, esa especificación ha quedado obsoleta por RFC 7230 que prohíbe el plegado:

Históricamente, los valores del campo del encabezado HTTP podrían extenderse sobre múltiples líneas al preceder cada línea adicional con al menos un espacio o pestaña horizontal (obs-fold) .
Esta especificación desaprueba dicho plegado de línea excepto dentro del tipo de message/http medio message/http ( Sección 8.3.1 ) .
Un remitente NO DEBE generar un mensaje que incluya el plegado de línea

Un estándar para los saltos de línea en los valores del campo del encabezado HTTP no se establece, y nunca se estableció.