¿Existe un tamaño máximo permitido para los encabezados HTTP? Si es así, ¿qué es? Si no es así, ¿es algo específico del servidor o es el estándar aceptado para permitir encabezados de cualquier tamaño?
http
http-headers
Cory
fuente
fuente
Como dice vartec anteriormente, la especificación HTTP no define un límite, sin embargo, muchos servidores lo hacen de manera predeterminada. Esto significa, prácticamente hablando, el límite inferior es 8K . Para la mayoría de los servidores, este límite se aplica a la suma de la línea de solicitud y TODOS los campos de encabezado (así que mantenga sus cookies cortas).
Vale la pena señalar que nginx usa el tamaño de página del sistema de forma predeterminada, que es 4K en la mayoría de los sistemas. Puede verificar con este pequeño programa:
pagesize.c:
Compilar con
gcc -o pagesize pagesize.c
luego ejecutar./pagesize
. Mi servidor ubuntu de Linode me informa debidamente que la respuesta es 4k.fuente
LimitRequestLine
y seLimitRequestFieldSize
aplica a cada línea de encabezado HTTP de forma individual ... no la "suma de ..."Los valores del encabezado HTTP están restringidos por las implementaciones del servidor. La especificación HTTP no restringe el tamaño del encabezado.
La mayoría de los servidores devolverán el
413 Entity Too Large
error 4xx correspondiente cuando esto ocurra.El tamaño de encabezado HTTP sin límite mantiene al servidor expuesto a ataques y puede reducir su capacidad para servir tráfico orgánico.
Fuente
fuente
Aquí está el límite del servidor web más popular
fuente
También descubrí que en algunos casos la razón de 502/400 en el caso de muchos encabezados podría deberse a una gran cantidad de encabezados sin importar el tamaño. de los documentos
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.http.maxhdr
fuente