Embora o período seja de fato um caractere válido para um cabeçalho HTTP , parece que o nginx não consegue lidar com ele corretamente. Isso vai além de simplesmente registrar o valor em um arquivo.
Antes de tentar registrar este cabeçalho personalizado, verifique se o cabeçalho está realmente disponível para ser registrado! Nesse caso, parece que o nginx não reconhece isso como sendo um cabeçalho válido.
Tente definir um cabeçalho personalizado e executar este script PHP simples com o seguinte (exemplo de php.net ):
<?php
foreach (getallheaders() as $name => $value) {
echo "$name: $value<br/>\n";
}
Isso exibirá uma lista legível de todos os cabeçalhos na solicitação.
Agora, usando essas ferramentas do desenvolvedor da web, tentei definir um cabeçalho HTTP personalizado com um período:
- Modificar o valor do cabeçalho (cabeçalhos HTTP) 0.1.3 (Firefox )
- Modificar cabeçalhos 0.7.1.1.1-signed.1-signed (Firefox)
- HTTP Header Mangler 1.1.2 (Firefox)
- Cliente REST avançado 9.14.64.305-stable (Chrome)
Cada uma dessas ferramentas se comportou da mesma maneira: cabeçalhos HTTP com nomes normais (como AB-CD
) funcionaram como esperado; Os cabeçalhos HTTP com nomes como AB.CD
ou AB%CD
não foram reconhecidos pelo nginx e não foram mostrados na saída do script acima.
O texto acima se aplica a nginx-1.10.3
, nginx-1.11.8
, nginx-1.12.0
e nginx-1.13.1
.