Existe um tamanho máximo permitido aceito para cabeçalhos HTTP? Se assim for, o que é? Caso contrário, isso é algo específico do servidor ou é o padrão aceito para permitir cabeçalhos de qualquer tamanho?
http
http-headers
Cory
fonte
fonte
Como a vartec diz acima, a especificação HTTP não define um limite, no entanto, muitos servidores o definem por padrão. Isso significa, na prática, o limite inferior é 8K . Para a maioria dos servidores, esse limite se aplica à soma da linha de solicitação e de TODOS os campos de cabeçalho (mantenha seus cookies curtos).
Vale ressaltar que o nginx usa o tamanho da página do sistema por padrão, que é de 4K na maioria dos sistemas. Você pode verificar com este pequeno programa:
pagesize.c:
Compile com, em
gcc -o pagesize pagesize.c
seguida, execute./pagesize
. Meu servidor ubuntu de Linode obedientemente me informa que a resposta é 4k.fonte
LimitRequestLine
eLimitRequestFieldSize
aplica-se a cada linha de cabeçalho HTTP indivually ... não a "soma de ..."Os valores do cabeçalho HTTP são restritos pelas implementações do servidor. A especificação de HTTP não restringe o tamanho do cabeçalho.
A maioria dos servidores retornará
413 Entity Too Large
ou erro 4xx apropriado quando isso acontecer.O tamanho do cabeçalho HTTP sem limite mantém o servidor exposto a ataques e pode reduzir sua capacidade de atender tráfego orgânico.
Fonte
fonte
Aqui está o limite do servidor da web mais popular
fonte
Também descobri que, em alguns casos, o motivo de 502/400 no caso de muitos cabeçalhos pode ser devido a um grande número de cabeçalhos, sem levar em consideração o tamanho. dos documentos
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.http.maxhdr
fonte