Jak poprawnie kodować parametry ciągu zapytania
Narzędzie ma dwa tryby. Komponent (encodeURIComponent) służy do pojedynczej nazwy lub wartości parametru, a Pełny URL (encodeURI) do całego adresu URL o już poprawnej strukturze. Pomylenie ich to najczęstsza przyczyna uszkodzonych ciągów zapytania.
Przykład krok po kroku
Tryb Pełny URL zostawia & wewnątrz wartości, więc serwer odczytuje dwa parametry zamiast jednego.
- Dane wejściowe
- https://example.com/search?q=salt & pepper&page=2
- Wynik ·
encodeURI() - https://example.com/search?q=salt%20&%20pepper&page=2
Parametry odczytywane przez serwer
- "q" = "salt "
- " pepper" = ""
- "page" = "2"
Zakodowanie wartości najpierw w trybie Komponent sprawia, że pozostaje ona jednym parametrem.
- Dane wejściowe
- salt & pepper
- Wynik ·
encodeURIComponent() - salt%20%26%20pepper
https://example.com/search?q=salt%20%26%20pepper&page=2
Parametry odczytywane przez serwer
- "q" = "salt & pepper"
- "page" = "2"
Tryb Komponent a Pełny URL – porównanie znak po znaku
| Znak | Komponent | Pełny URL |
|---|---|---|
| : | %3A | : |
| / | %2F | / |
| ? | %3F | ? |
| # | %23 | # |
| & | %26 | & |
| = | %3D | = |
| + | %2B | + |
| ␠ | %20 | %20 |
| é | %C3%A9 | %C3%A9 |
Jak działa narzędzie
- Koduj każdą nazwę i wartość parametru osobno w trybie Komponent, który zamienia na sekwencje & = ? # + i /.
- Połącz zakodowane pary w postaci nazwa=wartość znakiem & i dodaj wynik po znaku ? w adresie URL.
- Trybu Pełny URL używaj tylko dla całego adresu: zostawia on : / ? # & = + bez zmian, więc nie chroni wartości, która je zawiera.