Z których znaków specjalnych można bezpiecznie korzystać w adresie URL?
Z których znaków specjalnych można bezpiecznie korzystać w adresie URL?
Odpowiedzi:
Bezpiecznymi znakami są az, AZ, 0-9 i _ - (podkreślenie i minus), które oprócz znaków zastrzeżonych używanych dla parametrów.
Inne postacie sprawią problemy w pewnym stopniu. przykład: jeśli jeden parametr jest tablicą, ?param=array[content]
tzn. pokaże adres URL w zakodowanym nawiasie kwadratowym, który wygląda brzydko i nie można go dyktować.
Problem polega nie tylko na tym, że jest brzydki, ale powiedzmy, że masz plik jpg ze znakiem obok bezpieczniejszych, wiele razy przeglądarka nie będzie mogła go pobrać, otrzymując 404. Jest to problem starszych przeglądarek i niektórych przeglądarek mobilnych.
Jak to przetestować?
Mam skrzynkę odbiorczą z 14000 e-mailami potwierdzającymi mój punkt widzenia.
Następujące znaki mają specjalne znaczenie w komponencie ścieżki adresu URL (komponent ścieżki to wszystko przed „?”):
";" | "/" | "?"
Oprócz nich następujące znaki mają specjalne znaczenie w części zapytania w adresie URL (wszystko po „?”). Dlatego jeśli są po „?” musisz uciec od nich:
":" | "@" | "&" | "=" | "+" | "$" | ","
Aby uzyskać bardziej szczegółowe wyjaśnienie, zobacz RFC .
Odpowiedzi tutaj są dobre, ale jest jeszcze jeden wyjątek, który moim zdaniem warto wspomnieć - znaki inne niż angielski. Odnosząc się tutaj do tego pytania SF , znaki takie jak ñ (jak w języku Español) są całkowicie uzasadnione, JEŻELI zostały poprawnie zakodowane w systemie DNS.
Musisz użyć Punycode w swoim DNS, aby je rozwiązać w nowoczesnych przeglądarkach (wpis dla español to xn--espaol-zwa
), ale teraz są one całkowicie bezpieczne w nazwach domen, ponieważ są łatwe do pisania także dla osób nieanglojęzycznych .