Em uma postagem no blog, uso o seguinte PHP para definir o tipo de conteúdo de uma resposta:
header('content-type: application/json; charset=utf-8');
Acabei de receber um comentário nesse post dizendo que content-type
precisa ser capitalizado Content-type
,. Isso está correto? Parece funcionar para mim com todas as letras minúsculas e presumi que os cabeçalhos HTTP não diferenciassem maiúsculas de minúsculas. Ou funciona apenas porque os navegadores são bons?
http
http-headers
Svish
fonte
fonte
Respostas:
Os nomes dos cabeçalhos não diferenciam maiúsculas de minúsculas.
Do RFC 2616 - "Protocolo de transferência de hipertexto - HTTP / 1.1" , Seção 4.2, "Cabeçalhos de mensagens" :
A atualização RFC 7230 não lista nenhuma alteração da RFC 2616 nesta parte.
fonte
Os nomes de cabeçalho HTTP não diferenciam maiúsculas de minúsculas, de acordo com a RFC 2616 :
4.2:
(Os valores dos campos podem ou não fazer distinção entre maiúsculas e minúsculas.)
Se você confia nos principais navegadores para cumprir isso, está tudo pronto.
BTW, ao contrário da maioria de HTTP, métodos (verbos) são maiúsculas de minúsculas:
5.1.1 Método
fonte
tldr; os cabeçalhos HTTP / 1.1 e HTTP / 2 não diferenciam maiúsculas de minúsculas.
De acordo com a RFC 7230 (HTTP / 1.1):
https://tools.ietf.org/html/rfc7230#section-3.2
Além disso, o RFC 7540 (HTTP / 2):
https://tools.ietf.org/html/rfc7540#section-8.1.2
fonte
header('Content-type: image/png')
não funcionou com o PHP 5.5 que serve o IE11, pois no fluxo de imagem foi mostrado como textoheader('Content-Type: image/png')
funcionou, como na imagem apareceu como uma imagemA única diferença é o capital 'T'.
fonte
Eles não diferenciam maiúsculas de minúsculas. De fato, o servidor da Web NodeJS os converte explicitamente em minúsculas, antes de disponibilizá-los no objeto de solicitação.
fonte
O RFC para HTTP (como citado acima) determina que os cabeçalhos não diferenciam maiúsculas de minúsculas; no entanto, você encontrará que em determinados navegadores (estou olhando para você, IE), colocar em maiúscula cada uma das palavras tende a ser melhor:
vs
Esse não é o padrão "HTTP", mas apenas mais uma das peculiaridades do navegador, como desenvolvedores, temos que pensar.
fonte
oficialmente, os cabeçalhos não diferenciam maiúsculas de minúsculas; no entanto, é prática comum colocar em maiúscula a primeira letra de cada palavra.
mas, como é uma prática comum, certos programas como o IE assumem que os cabeçalhos estão em maiúsculas.
portanto, enquanto os documentos dizem que não diferenciam maiúsculas de minúsculas, programadores ruins basicamente mudaram os documentos.
fonte
a palavra Cabeçalhos não faz distinção entre maiúsculas e minúsculas, mas, à direita, como o Tipo de Conteúdo, é uma boa prática escrevê-la dessa maneira, porque é sensível a maiúsculas. como meu exemplo abaixo
fonte