Zabezpieczanie skrzynek
Adresy URL zachowują wielkość liter między klientem a serwerem. Jednak w niektórych adresach URL rozróżniana jest wielkość liter , w zależności od serwera, z kilku powodów.
Rozróżnianie wielkości liter
W poniższych pogrubionych częściach adresów URL może być rozróżniana wielkość liter, zależnie od konfiguracji witryny i / lub serwera.
http: // www. example.com /abc/def.ghi?jkl=mno#pqr
użytkownik @ example.com
Racjonalne uzasadnienie
Rozróżnianie wielkości liter w adresach URL może mieć kilka zastosowań. Głównie:
- Natywna kompatybilność z systemami plików z rozróżnianiem wielkości liter.
- Bardziej kompaktowe kodowanie danych w adresach URL, takie jak serializacja, haszowanie, identyfikatory, łącza bezpośrednie i skracacze adresów URL.
Jako programista uważam, że powyższe często można rozwiązać lepiej, ale rozumiem też, że istnieją przypadki, w których sytuacja może na to nie pozwolić.
Na przykład wyobraź sobie istniejący produkt, który wymaga dużej ilości danych umieszczonych w adresie URL „GET”, ale musi być zgodny z maksymalnymi długościami adresów URL wszystkich głównych serwerów, przeglądarek i mechanizmów buforowania / proxy. Aby zmieścić nawet ciąg poleceń o średniej długości (poniżej 1024 znaków w niektórych starszych przeglądarkach), musisz użyć każdego unikalnego znaku bezpiecznego adresu URL, który możesz (co w zasadzie jest kodowaniem base64url).
W idealnym świecie
To, czy adresy URL powinny być rozróżniana jest dyskusyjna. Osobiście uważam, że tak nie powinno być, dla uproszczenia (chociaż może tworzyć dłuższe adresy URL, mamy procenty ucieczki, aby łatwo obsłużyć przypadki, w których musimy zapewnić zachowanie dokładnych znaków, i istnieją sposoby przesyłania danych inne niż bezpośrednio w adresie URL) .
Wiele osób zgadza się z tym, że adresy URL bez rozróżniania wielkości liter są jawnie włączone dla wielu popularnych witryn i usług, w celu zwiększenia użyteczności. Najbardziej widocznym przykładem jest część adresów e-mail dotycząca nazwy użytkownika. Większość dostawców poczty e-mail zignoruje wielkość liter, a czasem nawet kropki i inne symbole (np. „J.smith@example.com” jest taki sam jak „JSMITH@example.com”). Mimo że w nazwach użytkowników wiadomości e-mail rozróżniana jest wielkość liter, zgodnie ze specyfikacją.
Jednak faktem jest, że pomimo tego, czego ja lub inni moglibyśmy chcieć, taki jest stan rzeczy, które obecnie działają. I chociaż na całym świecie możliwe jest z pewnością przejście na standard URL-a bez rozróżniania wielkości liter, prawdopodobnie zajmie to sporo czasu, ponieważ rozróżnianie wielkości liter jest obecnie szeroko stosowane w Internecie do różnych celów.
Najlepsze praktyki
Jeśli chodzi o najlepsze praktyki, jako użytkownik możesz rozsądnie trzymać się małych liter w większości sytuacji i oczekiwać, że wszystko zadziała. Głównymi wyjątkami byłyby adresy URL wykorzystujące kodowanie oparte na wielkości liter lub ścieżki dokumentów z bezpośrednimi odpowiednikami systemu plików. Jednak takie złożone adresy URL są zazwyczaj wklejane (lub po prostu klikane), a nie ręcznie.
Jako twórca stron internetowych, powinieneś rozważyć zachowanie URL-i bez rozróżniania wielkości liter. Chociaż wyraźnie istnieją pewne trudne do uniknięcia sytuacje, w zależności od kontekstu, jak wspomniano powyżej.