Skip to main content
CheckTown
Konwertery

Kodowanie i dekodowanie URL: Bezpieczne URL dla sieci web natychmiast

Opublikowano 5 min czytania
W tym artykule

Czym jest kodowanie URL?

Kodowanie URL (zwane też kodowaniem procentowym) przekształca znaki niebezpieczne lub zarezerwowane w URL-ach do bezpiecznego formatu. Każdy niebezpieczny znak jest zastępowany znakiem % po którym następuje jego dwucyfrowy szesnastkowy kod ASCII. Na przykład spacja staje się %20, a ampersand staje się %26.

URL-e mogą zawierać jedynie ograniczony zestaw znaków ASCII. Znaki spoza tego zestawu — w tym spacje, litery spoza ASCII i znaki specjalne — muszą być zakodowane procentowo, aby móc być bezpiecznie przesyłane w URL-u.

Jak działa kodowanie URL

Koder identyfikuje znaki niebezpieczne w URL-ach i zastępuje je odpowiednikami z kodowaniem procentowym.

  • Wykrywanie bezpiecznych znaków — litery, cyfry oraz - _ . ~ pozostają bez zmian
  • Obsługa znaków zarezerwowanych — ! * ' ( ) ; : @ & = + $ , / ? # [ ] są kodowane w większości kontekstów
  • Obsługa Unicode — znaki spoza ASCII są najpierw kodowane w UTF-8, a następnie każdy bajt jest kodowany procentowo

Wypróbuj za darmo — bez rejestracji

Zakoduj lub odkoduj URL →

Kiedy stosować kodowanie URL

Kodowanie URL jest wymagane zawsze, gdy w komponentach URL pojawiają się znaki specjalne.

  • Parametry zapytania — koduj wartości przekazywane jako parametry ciągu zapytania, szczególnie terminy wyszukiwania wprowadzane przez użytkownika
  • Zapytania API — koduj segmenty ścieżki i parametry podczas programowego konstruowania URL-i API
  • Dane formularzy — koduj dane formularza przed dołączeniem do URL-i w żądaniach GET

Najczęściej zadawane pytania

Jaka jest różnica między encodeURI a encodeURIComponent w JavaScript?

encodeURI koduje cały URL i pozostawia bez zmian znaki takie jak /, :, #, ponieważ mają one strukturalne znaczenie w URL-ach. encodeURIComponent koduje pojedynczy komponent URL (np. wartość parametru zapytania) i procentowo koduje również te znaki strukturalne. Do kodowania wartości poszczególnych parametrów zawsze używaj encodeURIComponent.

Dlaczego spacja jest czasem wyświetlana jako + zamiast %20?

Format application/x-www-form-urlencoded (używany przy przesyłaniu formularzy HTML) koduje spacje jako + zamiast %20. Jest to konwencja wywodząca się z wczesnych standardów webowych. W ciągach zapytań z formularzy HTML + oznacza spację; w innych kontekstach URL stosuje się %20. Oba są poprawne, ale kontekst decyduje, który należy użyć.

Czy muszę kodować cały URL, czy tylko jego części?

Koduj tylko poszczególne komponenty (segmenty ścieżki, wartości parametrów zapytania). Kodowanie całego URL zakodowałoby również znaki :, / i ?, które definiują strukturę URL, niszcząc ją. Zasada jest prosta: koduj wartości, a nie znaki strukturalne tworzące URL.

Powiązane narzędzia