Jaki był tutaj wybór projektu? Dlaczego w adresach URL nie rozróżniana jest wielkość liter?
Na przykład: po wpisaniu „gaming.stackexchange.com” zabiorę mnie do Arqade.SE. Jeśli wpiszesz „GaminG.StackExchangE.CoM”, zabierze mnie to tego samego miejsca.
Rozumiem, że istnieją na to niektóre kontrprzykłady, jak wskazano poniżej .
/
i\
; (2)1
i (I
al
więc takżei
iL
); (3)0
iO
(więc takżeo
); ... i tak dalej.Odpowiedzi:
RFC 1035 sekcja 2.3.3 stwierdza, że nazwy DNS nie rozróżniają wielkości liter. Oznacza to, że część hosta (i tylko część hosta) adresów URL nie rozróżnia wielkości liter.
Nie znam dokładnego sposobu myślenia za tą decyzją, ale standard został napisany w 1987 r., Kiedy systemy z ograniczoną obsługą zestawów znaków wieloznacznych były wciąż stosunkowo powszechne.
źródło
Mogę wymyślić dwa powody, które niekoniecznie mają związek z pierwotną decyzją.
Wyobraź sobie, że musisz pamiętać różnicę między:
google Google GOogle GooGle GoogLe GooglE (....)
To raczej niepraktyczne, jeśli Host.com oznacza coś zupełnie innego niż host.com. Nazwa DNS ma być etykietą, a posiadanie znaków specjalnych lub rozróżnianie wielkich i małych liter tylko komplikuje to bez praktycznego zastosowania.
źródło
Możliwe przyczyny:
Bezpieczeństwo: w nazwach DNS jest tylko 37 prawidłowych znaków *. Małe litery mają ustawiony bit 6, więc biblioteka tłumacząca lub serwer DNS mogą natychmiast i względnie po prostu zdezynfekować dane wejściowe poprzez ANDing z binarnym 0100 0000 i wyrzucając wszystko, co nie jest ASCII 45, 48 do 57 (cyfry) lub 65 do 90 (litery). Po napotkaniu kropki skończyłeś. Nie musisz odkrywać, co to jest i ignorować białe znaki, tokenizować lub wykonywać inne piękne i przepełnione buforami czynności związane z parsowaniem tekstu. Pomaga to także wyraźny limit 63 (?) Znaków w nazwach hostów.
DNS jako całość jest ogromny i musi działać szybko. Jestem pewien, że pomaga to przyspieszyć indeksowanie i przeszukiwanie baz danych DNS pod kątem nazwy DNS zawierającej ograniczoną liczbę znaków. Prawdopodobnie podobną rzecz można powiedzieć o rozmiarze. Biorąc pod uwagę możliwości komputerów w momencie wynalezienia DNS, jestem pewien, że ograniczenie rzeczy do „absolutnego minimum” było postrzegane jako konieczne.
Wydaje mi się, że mniej więcej w czasie wynalezienia DNS istniały komputery i terminale, które nie mogły wyświetlać małych liter (myślę, że tutaj Apple II, ale jestem pewien, że niektóre stare komputery mainframe z tamtych czasów miały równie stare terminale).
* Widziałeś wcześniej nazwy domen Unicode? Są to międzynarodowe nazwy domen - rozszerzenie zbudowane na tym. Naprawdę wewnętrznie składają się one z „xn--”, a następnie łańcucha zakodowanego w Punycode przy użyciu standardowego zestawu znaków DNS i są renderowane jako Unicode przez zgodną przeglądarkę.
źródło