URL Encoding Version 2.0 Dokument: URL Encoding Version: 2.0 Dokumentnamn: URL_Encoding_sv.pdf Datum: 2008-08-21 Schenker AB, Stab IT Sida 2 av 4 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-08-21 2.0 Dokumentet uppdaterades. 1999-11-01 1.0 Detta är första gången denna dokumentation skrivs varför någon tidigare revisionshistorik ej finns. Innehållsförteckning REVISIONSHISTORIK............................................................................................................. 2 1. BAKGRUND..................................................................................................................... 3 2. GENERELLT .................................................................................................................... 3 2.1 URLEncode .................................................................................................................... 3 2.2 Teckenset ....................................................................................................................... 3 2.3 MIME-Type ..................................................................................................................... 3 2.4 Tillåtna tecken ................................................................................................................ 3 2.5 Hexadecimal konvertering .............................................................................................. 3 2.6 Containers ...................................................................................................................... 3 3. LÄS MER ......................................................................................................................... 4 Dokument: URL Encoding Version: 2.0 Dokumentnamn: URL_Encoding_sv.pdf Datum: 2008-08-21 Schenker AB, Stab IT Sida 3 av 4 1. Bakgrund I DB Schenkers WEB Development Rules (WDR) beskrivs kommunikation med Containers. När dessa används mellan två applikationer som kommunicerar med varandra med HTTP, behöver serialiseringen konverteras från 8-bitar till ett 7-bits-protokoll. Detta protokoll kallas URLencode. Det används idag främst för kommunikation mellan en webbläsare och en webbserver. Alla plattformar har (kan ha) olika teckenset som grund i sina system. För att två system skall kunna utbyta information mellan sig måste de vara överens om vilket teckenset som gäller. I WDR är det gemensamma teckensetet bestämt att vara ISO 8859-1, också benämt Latin-1. Detta teckenset stöds på de flesta plattformar, det är standard i Unix och Windows-världen. Det stora teckensetet Unicode använder Latin-1 som bas för sina två första block. Någon enstaka tjänst är justerad till UTF-8. 2. Generellt URLencode är en 7-bits kod för kommunikation med HTTP. Bortsett tillåtna tecken så ersätts alla andra med det hexadecimala värdet för tecknet med ett '%' /procent) som prefix. Undantag från denna regel är ' ' (blanktecken) som ersätts med ett '+' (plus). OBS !!!! Det är endast datamängden i ett serialiserat meddelande som skall URLencodas. De delimiters som ingår i meddelandet skall inte konverteras, dvs '=' (lika med) och '&' (Ampersand). 2.1 URLEncode Baseras på standarden RFC 1738. 2.2 Teckenset Kommunikationen baserar sig på ISO 8859-1 (Latin-1). 2.3 MIME-Type Application/x-www-form-urlencode 2.4 Tillåtna tecken Tillåtna tecken är 'A' till 'Z', 'a' till 'z', '0' till '9'. Dessa tecken behöver inte konverteras. Blanktecken skall konverteras till ett '+' (plus). Alla andra tecken skall konverteras. 2.5 Hexadecimal konvertering Alla tecken som skall konverteras skall göra det till tecknets hexadecimala värde (2-ställigt) med ett '%' (procent) som prefix. De hexadecimala tecknen 'A' - 'F' kan vara antingen gemena eller versala. Exempel: Utropstecken ('!') har i ISO 8859-1 det decimala värdet '31' och hexadecimala värdet '21'. Konverterat får det värdet '%21'. 2.6 Containers Containers består av en vektor där varje rad i vektorn består av två delar, dels ett namn på en nyckel, dels dess värde. Serialiserat har det formen Nyckel=Värde&. OBS !!! Det är endast namnet på nyckeln och dess värde som skall konverteras, inte de två skiljetecknen '=' och '&' Exempel: Dokument: URL Encoding Version: 2.0 Dokumentnamn: URL_Encoding_sv.pdf Datum: 2008-08-21 Schenker AB, Stab IT Sida 4 av 4 Om Du skall sända fältet "email" med värdet [email protected] och fältet "code" med värdet “k%9S2!” till en tjänst, Du kommer då att sända strängen “email=info%40schenker%2Ecom&code=k%259S2%21&”. 3. Läs mer Character entity references in HTML 4.0, 24.2 ISO 8859-1 http://www.w3.org/TR/REC-html40/sgml/entities.html Specification of URL, RFC 1738 http://www.faqs.org/rfcs/rfc1738.html