Kodowanie procentowe

Wikipedia:Weryfikowalność
Ten artykuł od 2014-10 wymaga zweryfikowania podanych informacji.
Należy podać wiarygodne źródła w formie przypisów bibliograficznych.
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)
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

  1. RFC 3986 ↓, 2.1 Percent-Encoding.

Linki zewnętrzne

  • T.T. Berners-Lee T.T., R.R. Fielding R.R., L.L. Masinter L.L., Uniform Resource Identifier (URI): Generic Syntax, STD 66, RFC 3986, IETF, styczeń 2005, DOI: 10.17487/RFC3986, ISSN 2070-1721, OCLC 943595667  (ang.).