Dlaczego w adresie URL nie jest rozróżniana wielkość liter?
Rozumiem, że może to wyglądać jak prowokujący (i „diabelski adwokat”) retoryczne pytanie, ale myślę, że warto to rozważyć. Projekt HTTP polega na tym, że „klient”, który zwykle nazywamy „przeglądarką internetową”, prosi „serwer sieciowy” o dane.
Wydano wiele, wiele różnych serwerów WWW. Microsoft wydał IIS z systemami operacyjnymi Windows Server (i innymi, w tym Windows XP Professional). Unix ma duże wagi, takie jak nginx i Apache, nie wspominając o mniejszych ofertach, takich jak wewnętrzny httpd OpenBSD, thttpd lub lighttpd. Ponadto wiele urządzeń z obsługą sieci ma wbudowane serwery sieciowe, których można używać do konfigurowania urządzenia, w tym urządzenia przeznaczone do określonych celów w sieci, takie jak routery (w tym wiele punktów dostępu Wi-Fi i modemów DSL) oraz inne urządzenia, takie jak drukarki lub UPS (zasilacze bezprzerwowe zasilane bateryjnie), które mogą mieć połączenie sieciowe.
Pytanie „Dlaczego w adresach URL rozróżniana jest wielkość liter?” Brzmi zatem: „Dlaczego serwery WWW traktują adres URL jako rozróżniający małe i wielkie litery?” Właściwa odpowiedź brzmi: nie wszyscy tak robią. Co najmniej jeden serwer WWW, który jest dość popularny, zwykle NIE rozróżnia wielkości liter. (Serwer WWW to IIS.)
Kluczowy powód różnych zachowań między różnymi serwerami internetowymi sprowadza się prawdopodobnie do prostoty. Prostym sposobem na stworzenie serwera WWW jest zrobienie tego samego, co w przypadku sposobu, w jaki system operacyjny komputera / urządzenia lokalizuje pliki. Wiele razy serwery sieciowe lokalizują plik w celu udzielenia odpowiedzi. Unix został zaprojektowany na komputerach wyższej klasy, więc Unix zapewniał pożądaną funkcjonalność pozwalającą na pisanie wielkimi i małymi literami. Unix postanowił traktować wielkie i małe litery jako różne, ponieważ, cóż, są różne. To jest prosta, naturalna rzecz do zrobienia. Historia Windows nie uwzględnia wielkości liter ze względu na chęć obsługi już utworzonego oprogramowania, a historia ta sięga wstecz do DOS, który po prostu nie obsługiwał małych liter, być może w celu uproszczenia rzeczy z mniej wydajnymi komputerami, które zużywały mniej pamięci. Ponieważ te systemy operacyjne są różne, w rezultacie proste (wczesne wersje) serwerów WWW odzwierciedlają te same różnice.
Teraz, z całym tym tłem, oto kilka konkretnych odpowiedzi na konkretne pytania:
Kiedy adresy URL zostały po raz pierwszy zaprojektowane, dlaczego rozróżniana jest wielkość liter?
Dlaczego nie? Jeśli wszystkie standardowe serwery internetowe nie rozróżniają wielkości liter, oznaczałoby to, że serwery WWW przestrzegały zestawu reguł określonych przez standard. Po prostu nie było reguły, która mówi, że przypadek należy zignorować. Powodem braku reguły jest po prostu brak takiej reguły. Po co zawracać sobie głowę niepotrzebnymi zasadami?
Pytam o to, ponieważ wydaje mi się (np. Laikowi), że rozróżnianie wielkości liter byłoby preferowane, aby zapobiec niepotrzebnym błędom i uprościć i tak już skomplikowany ciąg tekstu.
Adresy URL zostały zaprojektowane dla maszyn do przetwarzania. Chociaż dana osoba może wpisać pełny adres URL w pasku adresu, nie była to znacząca część zamierzonego projektu. Zamierzony projekt polega na tym, że ludzie będą podążać za (hiperłączami). Jeśli robią to przeciętny laicy, to naprawdę nie obchodzi ich, czy niewidoczny adres URL jest prosty czy skomplikowany.
Ponadto, czy istnieje rzeczywisty cel / korzyść posiadania adresu URL z rozróżnianiem wielkości liter (w przeciwieństwie do zdecydowanej większości adresów URL, które prowadzą do tej samej strony bez względu na wielkie litery)?
Piąty numer odpowiedzi Williama Hay'a wymienia jedną zaletę techniczną: adresy URL mogą być skutecznym sposobem, aby przeglądarka internetowa wysłała trochę informacji do serwera internetowego, a więcej informacji można dołączyć, jeśli istnieją mniejsze ograniczenia, więc rozróżniaj wielkość liter ograniczenie ograniczyłoby ilość informacji, które można zawrzeć.
Jednak w wielu przypadkach wrażliwość na wielkość liter nie jest szczególnie atrakcyjna, o czym świadczy fakt, że usługi IIS zwykle nie przejmują się tym.
Podsumowując, najbardziej przekonującym powodem jest prawdopodobnie po prostu prostota dla tych, którzy zaprojektowali oprogramowanie serwera WWW, szczególnie na platformie rozróżniającej wielkość liter, takiej jak Unix. (HTTP nie był czymś, co wpłynęło na oryginalny design Uniksa, ponieważ Unix jest znacznie starszy niż HTTP).