🌐 NO

🔗 URL-enkoder/dekoder

Kode eller dekode URL-er trygt. Behandle spesialtegn, internasjonale tegn og mellomrom i spørringsparametere for å lage gyldige URL-er.

GUIDE

Les mer

01

1. Hva er URL-koding?

URL-koding (prosentkoding) er prosessen med å konvertere utrygge tegn i URL-er til % etterfulgt av heksadesimale koder. Siden URL-er bare tillater ASCII-tegn, må koreansk, spesialtegn og mellomrom kodes. For eksempel blir mellomrom %20, @ blir %40, og tegnet é kodes som %C3%A9. Definert i RFC 3986-standarden må tegn andre enn A-Z, a-z, 0-9, -, _, ., ~ kodes. Ulike deler av URL-er (spørringsparametere, stier, fragmenter) har ulike kodingsregler.

02

2. Hvorfor kode spesialtegn

Spesialtegn i URL-er har egne betydninger, så de må kodes for å brukes som verdier. For eksempel er & en parameterseparator, så for å inkludere & i en verdi må den kodes som %26. = er en nøkkel-verdi-separator, ? starter spørringer, # starter fragmenter. Mellomrom kodes som + eller %20. Uten koding kan koreansk eller andre spesialtegn føre til at serveren ikke tolker dem riktig eller returnerer 404-feil. Kode alltid når du inkluderer søkeord eller brukerinput i URL-er.

03

3. Koding av spørringsparametere

Spørringsparametere er den delen av URL-er som oftest kodes. Eksempel: https://example.com/search?q=search&category=IT. Både "search" og "IT" bør kodes. Ved å bruke JavaScripts encodeURIComponent() kodes =, &, ? slik at det er trygt for verdier i spørringsparametere. encodeURI() er for å kode hele URL-er, men koder ikke =, &, ?, og er derfor ikke egnet for spørringsverdier. Kode alltid nøkler og verdier hver for seg med encodeURIComponent().

04

4. encodeURI vs encodeURIComponent

JavaScript har to funksjoner for URL-koding. encodeURI() koder hele URL-er og koder ikke URL-strukturtegn som :, /, ?, &, =. Bruk den for komplette URL-er. encodeURIComponent() koder URL-komponenter (parameterverdier osv.) og koder alle strukturtegn. Bruk den for enkelte komponenter som spørringsparametere og stisegmenter. I de fleste tilfeller er det tryggere å bruke encodeURIComponent(). Dekode med henholdsvis decodeURI() og decodeURIComponent().

05

5. Internasjonaliserte domenenavn (IDN)

Domenenavn på koreansk eller andre språk (f.eks. hanguk.com) konverteres til Punycode. Punycode representerer Unicode-domener i ASCII ved hjelp av prefikset xn--. Eksempel: "hanguk.com" blir "xn--3e0b707e.com". Nettlesere utfører denne konverteringen automatisk, men når du håndterer det direkte i kode, trengs et Punycode-bibliotek. Merk at URL-stier og -spørringer bruker vanlig prosentkoding, mens domener bruker Punycode.

06

6. Beste praksis for URL-koding

Viktige hensyn ved URL-koding: Kode alltid brukerinput for å forhindre XSS-angrep. Pass på å ikke kode en allerede kodet URL på nytt. Når du setter sammen URL-er, kode hver del for seg og kombiner dem deretter. HTTP-klienter som fetch() og axios koder ofte automatisk, så unngå dobbelkoding. Servere støtter vanligvis automatisk dekoding, så eksplisitt dekoding er som regel unødvendig. Når du logger eller feilsøker URL-er, er den dekodede formen lettere å lese.

Vanlige sporsmal

Bør jeg velge komponentkoding eller full URL-koding?
Bruk "komponentkoding" når du bare koder en del av en URL, for eksempel en verdi i en spørringsparameter. Bruk "full URL-koding" bare når du håndterer en hel, komplett URL.
Hvorfor må URL-er på andre språk kodes?
URL-er tillater bare ASCII-tegn, så ikke-ASCII-tegn (som é, koreansk eller kinesisk tekst) må konverteres til prosentkoding (f.eks. %C3%A9) for at servere skal kunne tolke dem riktig.
Hva skjer hvis jeg koder en URL som allerede er kodet?
Du får dobbeltkoding, der % blir kodet på nytt som %25 og ødelegger den opprinnelige verdien. Sjekk om en streng allerede er kodet før du koder den igjen.
Hva gjør jeg hvis dekoding gir feilen "Invalid URL encoding"?
Se etter ufullstendige prosentsekvenser i inndataene dine (f.eks. %2 uten nok etterfølgende heksadesimale sifre). Bare riktig kodede strenger kan dekodes.
Hvordan kodes mellomrom?
Mellomrom kodes vanligvis som + i spørringsstrenger eller %20 i stier. Dette verktøyet bruker standardformatet %20 for prosentkoding.