Kodowanie procentowe
Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte.
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu.
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.
Kodowanie procentowe (ang. percent-encoding), znane także jako kodowanie URL (ang. URL encoding) – mechanizm kodowania informacji w URI, obecnie definiowany w RFC3986[1]. Głównie jest używane do kodowania danych przesyłanych przez zapytanie GET w adresie URL. Nazwę zawdzięcza temu, że dany bajt po zakodowaniu zaczyna się znakiem procentu. Kodowanie bajtu polega na zamianie jego na dwucyfrową wartość heksadecymalną zapisaną w ASCII i poprzedzeniu tego procentem (czyli każdy zakodowany bajt jest zapisany za pomocą trójki znaków). Nie trzeba kodować znaków od A do Z, od a do z, od 0 do 9, oraz znaków „-”, „_”, „.”,„~”. Spację można zamienić na znak „+”. Jeśli znak ma specjalne znaczenie w URI (np. „/”), to nie jest kodowany, chyba że występuje w danych.
Przykład w zapytaniu GET
Mamy formularz HTML form.html
<meta charset="utf-8"/> <form action="http://www.w3schools.com/html/html_forms.asp" method="get"> <input type="text" name="imie" value="Karol Łukasz"> <input type="text" name="haslo/kod" value="4/2_a=8+4=_ ?"> <input type="submit" value="Wyslij"> </form>
Po kliknięciu w przeglądarce wyśle ona dane poprzez przejście na stronę: http://www.w3schools.com/html/html_forms.asp?imie=Karol+%C5%81ukasz&haslo%2Fkod=4%2F2_a%3D8%2B4%3D_+%3F 1. Jeśli znak „/” występuje w danych, to podlega on kodowaniu do „%2F”. Jeśli jednak ten znak ma specjalne znaczenie przy nazwie protokołu lub rozdziela katalogi, to nie podlega kodowaniu. Podobnie jest ze znakami specjalnymi „?”, „=”, „&”. 2. Litery spoza zakresu ASCII zostają zakodowane. W tym wypadku „Ł” jako „%C5%81”, ponieważ w UTF-8 ta litera jest zapisywana za pomocą dwóch bajtów, to obydwa trzeba było zakodować procentowo.
Przypisy
- ↑ RFC 3986 ↓, 2.1 Percent-Encoding.