O nome do host faz parte dos URLs HTTP (S) não faz distinção entre maiúsculas e minúsculas?


16

É seguro usar http (s): // CompanyName.com/xyz como URL (por exemplo, para fins de branding) sem nenhuma alteração nas configurações do lado do serviço?

Eu sei que o DNS não diferencia maiúsculas de minúsculas, mas ainda pode haver efeitos colaterais? Estou pensando, por exemplo, em várias partes da cadeia que não correspondem ao CompanyName.com ~ companyname.com:

  • Algum back-end da web pode não corresponder
  • Alguns firewalls de balanceador de carga / proxy / cache / camada de aplicativo podem falhar na correspondência
  • Alguns clientes podem aplicar políticas da mesma origem incorretamente
  • Algum cliente pode falhar na correspondência nas verificações de certificado
  • Embora o DNS geralmente não diferencie maiúsculas de minúsculas, os IDNs podem mudar a imagem?

Alguém experimentou esses ou outros problemas com letras maiúsculas na parte do nome do host dos URLs?


[editar] @ Michael Hampton apontou que, de acordo com os padrões HTTP, o nome do host não diferencia maiúsculas de minúsculas, mas alguns softwares não são compatíveis nesse sentido.

Tento entender como é predominante o software não compatível, em particular os clientes. Presumo que todos os principais navegadores recentes estejam bem, mas e, por exemplo, os aplicativos móveis? (É melhor eu dividir isso em uma pergunta SF separada?) [/ Edit]


O Firefox, por exemplo, envia um Hostcabeçalho em minúsculas (pelo menos é o que suas ferramentas de desenvolvedor estão me mostrando), portanto, supondo que todos os navegadores façam isso, você não deve ter nenhum problema, mesmo se algum equipamento no caminho para o servidor não gostar de um caso misto nome de anfitrião. curlpor outro lado, preserva o caso ao enviar o cabeçalho.

Respostas:


23

Sim, o nome do host realmente faz distinção entre maiúsculas e minúsculas, conforme especificado na RFC 3986 § 3.2.2 , porque os nomes de host em geral não diferenciam maiúsculas de minúsculas no DNS . Este RFC também fornece recomendações sobre como evitar os problemas que você mencionou:

Embora o host não diferencie maiúsculas de minúsculas, os produtores e normalizadores devem usar letras minúsculas para nomes registrados e endereços hexadecimais por motivos de uniformidade, enquanto usam apenas letras maiúsculas para codificações percentuais.

Eu vi pelo menos um HTTP cache ( W3 Total Cache ) que não normalize o nome do host dessa maneira, e acaba cache de conteúdo várias vezes, por exemplo, sob example.com, Example.Com, EXAMPLE.COM, etc.


11
Pelo menos enquanto o pior que acontece é que o conteúdo é armazenado em cache várias vezes por caches não conformes, isso parece algo com o qual podemos conviver.
a CVn 05/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.