🌐 DA

🔗 URL-enkoder/afkoder

Kod eller afkod URL'er sikkert. Håndter specialtegn, internationale tegn og mellemrum i forespørgselsparametre for at skabe gyldige URL'er.

GUIDE

Laes mere

01

1. Hvad er URL-kodning?

URL-kodning (procentkodning) er processen med at omdanne usikre tegn i URL'er til % efterfulgt af hexadecimale koder. Da URL'er kun tillader ASCII-tegn, skal koreansk, specialtegn og mellemrum kodes. For eksempel bliver mellemrum til %20, @ bliver til %40, og tegnet é kodes som %C3%A9. Ifølge RFC 3986-standarden skal tegn, der ikke er A-Z, a-z, 0-9, -, _, ., ~, kodes. Forskellige dele af URL'er (forespørgselsparametre, stier, fragments) har forskellige kodningsregler.

02

2. Hvorfor kode specialtegn

Specialtegn i URL'er har særlige betydninger, så de skal kodes, når de bruges som værdier. For eksempel er & en parameterskilletegn, så hvis du vil have & i en værdi, skal du kode det som %26. = er en nøgle-værdi-skilletegn, ? starter forespørgsler, # starter fragments. Mellemrum kodes som + eller %20. Uden kodning af koreansk eller andre specialtegn kan servere fejle i analysen eller returnere 404-fejl. Kod altid, når du inkluderer søgetermer eller brugerinput i URL'er.

03

3. Kodning af forespørgselsparametre

Forespørgselsparametre er den del af URL'er, der oftest kodes. Eksempel: https://example.com/search?q=search&category=IT. Både "search" og "IT" bør kodes. Ved at bruge JavaScripts encodeURIComponent() kodes =, &, ?, hvilket gør det sikkert til værdier i forespørgselsparametre. encodeURI() er til at kode hele URL'er, men koder ikke =, &, ?, og er derfor ikke egnet til forespørgselsværdier. Kod altid nøgler og værdier enkeltvis med encodeURIComponent().

04

4. encodeURI vs encodeURIComponent

JavaScript har to URL-kodningsfunktioner. encodeURI() koder hele URL'er og koder ikke URL-strukturtegn som :, /, ?, &, =. Brug den til komplette URL'er. encodeURIComponent() koder URL-komponenter (parameter-værdier osv.) og koder alle strukturtegn. Brug den til enkelte komponenter som forespørgselsparametre og stisegmenter. I de fleste tilfælde er det sikrere at bruge encodeURIComponent(). Afkod med henholdsvis decodeURI() og decodeURIComponent().

05

5. Internationaliserede domænenavne (IDN)

Domænenavne på koreansk eller andre sprog (f.eks. hanguk.com) konverteres til Punycode. Punycode repræsenterer Unicode-domæner i ASCII ved hjælp af præfikset xn--. Eksempel: "hanguk.com" bliver til "xn--3e0b707e.com". Browseren udfører automatisk denne konvertering, men ved direkte håndtering i kode er et Punycode-bibliotek nødvendigt. Bemærk, at URL-stier og forespørgsler bruger almindelig procentkodning, mens domæner bruger Punycode.

06

6. Bedste praksis for URL-kodning

Vigtige hensyn ved URL-kodning: Kod altid brugerinput for at forhindre XSS-angreb. Vær opmærksom på ikke at dobbeltkode allerede kodede URL'er. Når du konstruerer URL'er, skal hver del kodes enkeltvis og derefter kombineres. HTTP-klienter som fetch() og axios koder ofte automatisk, så undgå dobbeltkodning. Servere understøtter som regel automatisk afkodning, så eksplicit afkodning er oftest unødvendig. Når du logger eller fejlsøger URL'er, er det nemmere at læse den afkodede form.

Ofte stillede sporgsmal

Skal jeg vælge komponentkodning eller fuld URL-kodning?
Brug "komponentkodning", når du kun koder en del af en URL, som en værdi i en forespørgselsparameter. Brug "fuld URL-kodning" kun, når du håndterer en hel, komplet URL.
Hvorfor skal ikke-engelske URL'er kodes?
URL'er tillader kun ASCII-tegn, så ikke-ASCII-tegn (som é, koreansk eller kinesisk tekst) skal konverteres til procentkodning (f.eks. %C3%A9) for at servere kan analysere dem korrekt.
Hvad sker der, hvis jeg koder en URL, der allerede er kodet?
Du får dobbeltkodning, hvor % bliver kodet igen som %25, og den oprindelige værdi ødelægges. Tjek, om en streng allerede er kodet, før du koder den igen.
Hvad skal jeg gøre, hvis afkodning viser fejlen "Invalid URL encoding"?
Tjek for ufuldstændige procentsekvenser i dit input (f.eks. %2 uden nok efterfølgende hexadecimale cifre). Kun korrekt kodede strenge kan afkodes.
Hvordan kodes mellemrum?
Mellemrum kodes typisk som + i forespørgselsstrenge eller %20 i stier. Dette værktøj bruger standardformatet %20 til procentkodning.