Ha caso hostname HTTP (superiore / inferiore) importa?
-
06-09-2019 - |
Domanda
In altre parole, non importa se io uso http://www.example.com/ o http://wwW.exAmPLe.COm/ ?
Ho corso in strane problemi con host-names ultimamente: ho un webserver Apache2.2 + PHP5.1.4, accessibile da tutti i tipi di browser. gli utenti di IE6 in particolare (. specialmente quando il loro stringa UA è gravato da numerosi BHO, nessun modello ancora) sembrano avere problemi di accesso al sito (biscotti scompaiono, JS si rifiuta di caricare) quando si entra tramite http://www.Example.com/ , ma non http://www.example.com/
Ho controllato il HTTP e DNS RFC, il mio politiche P3P , le impostazioni dei cookie e SOP ; ma da nessuna parte ho visto nemmeno una menzione di nomi di dominio essere maiuscole e minuscole.
(lo so percorso e query string sono case sensitive (?x=foo
è diverso da ?x=Foo
) e trattarli in modo appropriato; sto facendo nessuna analisi / elaborazione sul nome di dominio nel mio codice)
sto facendo qualcosa di sbagliato o è solo un po 'del browser + barra degli strumenti di merda dovrei aggirare?
Soluzione
I nomi di dominio sono non maiuscole e minuscole; Example.com
risolverà allo stesso IP come eXaMpLe.CoM
. Se un server Web o un browser tratta l'intestazione Host
come maiuscole e minuscole, questo è un bug.
Altri suggerimenti
No, questo non dovrebbe fare alcuna differenza.
Controlla l'URL RFC Spec ( http://www.ietf.org/rfc/ rfc1738.txt ). Dalla sezione 2.1:
Per la resilienza, i programmi di interpretazione URL dovrebbero trattare lettere maiuscole equivalenti alle minuscole in regime nomi
Dal momento che la tua domanda formulata come una questione pratica, e poi si presenta un problema del mondo reale, la risposta è in realtà: Sì.
Le altre risposte sono corrette circa il che cosa le specifiche RFC dice di nomi host. Tecnicamente dovrebbero essere maiuscole e minuscole. (In realtà, la convenzione maggiore era che il dominio di primo livello (TLD) doveva essere in tutte le protezioni ... come "apple.COM").
Tuttavia, nel mondo reale, il software maturo come risolutori del sistema operativo e principali browser ottenere questo diritto. Qualsiasi tipo di codice secondario potrebbe essere gestendo questo torto, e si rovinare.
http://tools.ietf.org/html/rfc1035 :
Per tutte le parti del DNS che fanno parte del protocollo ufficiale, tutti i I confronti tra stringhe di caratteri (ad esempio, etichette, i nomi di dominio, ecc) sono fatto in un modo maiuscole e minuscole. Allo stato attuale, questa regola è in vigore per tutto il sistema di dominio, senza eccezioni.
Si passa poi a dire che questo potrebbe cambiare in futuro. Penso che sia lecito ritenere che il dominio COM è altri domini permettendo l'uso di caratteri non ASCII potrebbero differire-maiuscole e minuscole, ma.
No, non c'è sensibilità caso per quanto riguarda l'identificatore di protocollo.
Potete vedere questo nel RFC per URL .
2.1. Le parti principali di URL
nomi Schema consistono in una sequenza di personaggi. Le lettere minuscole "A" - "z", cifre e caratteri più ( "+"), punto ( ""), e trattino ("-") sono ammessi. Per la resilienza, Programmi URL interpretariato dovrebbe trattare lettere maiuscole come equivalenti come minuscole nei nomi schema (ad esempio, consentire "HTTP", così come "http").