2011-12-24 33 views
6

En los encabezados HTTP pueden ser varias líneas.Conflictos de encabezados HTTP multilínea

Por ejemplo:

la palabra-de-La-Day: The Fox que salta por encima
                el perro marrón.

Sin embargo, al leer la norma, llegué a la conclusión de que espacio inicial y final pueden ser removidos, por lo que tenemos "The Fox Saltos overthe perro marrón." Overthe se convierte en una palabra cuando en realidad debería haber sido "Over the" (dos palabras, separadas por espacios en blanco).

¿Cómo manejo el análisis de valores HTTP en situaciones como esta, es decir, cómo concatenar encabezados HTTP-multilínea para que signifique lo mismo que los encabezados de línea única?

Respuesta

12

El espacio en blanco anterior a the no es ni puntero ni posterior.

Section 4.2 of the standard define el espacio en blanco inicial/final como "espacio en blanco lineal que se produce antes del primer carácter no en blanco del valor de campo o después del último carácter no en blanco del valor de campo". Este espacio no es ni antes del primer carácter del valor del campo ni después del último.

La regla para este tipo de espacio en blanco lineal, dentro del valor del campo, es que "PUEDE ser reemplazado por un único [espacio] antes de interpretar el valor del campo o reenviar el mensaje en sentido descendente".

Así que tenemos "The Fox Jumps Over the brown dog".

+0

Lo leí, parecía un espacio en blanco al mirar un basurero. No pensé en eso como en el medio porque era el comienzo de una línea. – unixman83

Cuestiones relacionadas