URL virknes kodētājs
URL String Escaper Tool
Ievads
Interneta attīstībā un komunikācijās URL (Uniform Resource Locators) spēlē nozīmīgu lomu, identificējot resursus tīmeklī. Tomēr URL ir ierobežojumi attiecībā uz tajos varošo simbolu skaitu. Dažiem simboliem ir īpaša nozīme, bet citi ir nedroši URL lietošanai, jo pastāv iespēja, ka tie tiks nepareizi interpretēti vai sabojāti pārsūtīšanas laikā.
URL kodēšana, kas pazīstama arī kā procentu kodēšana, ir mehānisms, kas paredzēts, lai pārvērstu īpašos simbolus formātā, ko var pārsūtīt pa internetu. Šis rīks ļauj jums ievadīt URL virkni un aizsargāt īpašos simbolus, nodrošinot, ka URL ir derīgs un to var pareizi interpretēt tīmekļa pārlūkprogrammas un serveri.
URL kodēšanas izpratne
Kas ir URL kodēšana?
URL kodēšana ietver nedrošu ASCII simbolu aizstāšanu ar %
, kam seko divi heksadecimālie cipari, kas attēlo simbola ASCII kodu. Tas nodrošina, ka informācija tiek pārsūtīta pa internetu bez izmaiņām.
Piemēram, atstarpe simbols ' '
tiek aizstāts ar %20
.
Kāpēc ir nepieciešama URL kodēšana?
URL var nosūtīt pa internetu, izmantojot tikai ASCII rakstzīmju kopu. Tā kā URL bieži satur simbolus ārpus šī kopuma, tie jākonvertē derīgā ASCII formātā. URL kodēšana garantē, ka īpašie simboli neradīs nevēlamus efektus vai kļūdas tīmekļa pieprasījumos.
Simboli, kas jākodē
Saskaņā ar RFC 3986 specifikāciju šādi simboli ir rezervēti URL un tiem jābūt procentuāli kodētiem, ja tie tiek izmantoti burtiski:
- Vispārējie delimitatori:
:
,/
,?
,#
,[
,]
,@
- Apakšdelimitatori:
!
,$
,&
,'
,(
,)
,*
,+
,,
,;
,=
Turklāt jebkuras ne-ASCII rakstzīmes, tostarp rakstzīmes Unicode, jākodē.
Kā darbojas URL kodēšana?
Kodēšanas process
-
Identificēt īpašos simbolus: Analizēt URL virkni un identificēt simbolus, kas nav ne rezervētās ASCII rakstzīmes (burti, cipari,
-
,.
,_
,~
). -
Pārvērst uz ASCII kodu: Katram īpašajam simbolam iegūt tā ASCII vai Unicode kodu punktu.
-
Pārvērst uz UTF-8 baitiem (ja nepieciešams): Ne-ASCII rakstzīmēm kodēt simbolu vienā vai vairākos baitos, izmantojot UTF-8 kodēšanu.
-
Pārvērst heksadecimālā: Katru baitu pārvērst tā divciparu heksadecimālajā ekvivalentā.
-
Pievienot procentu simbolu: Katram heksadecimālā baitam pievienot
%
simbolu.
Piemērs kodēšanai
-
Simbols:
' '
(atstarpe)- ASCII kods:
32
- Heksadecimālais:
20
- URL kodēts:
%20
- ASCII kods:
-
Simbols:
'é'
- UTF-8 kodēšana:
0xC3 0xA9
- URL kodēts:
%C3%A9
- UTF-8 kodēšana:
Malu gadījumi, kas jāņem vērā
-
Unicode rakstzīmes: Ne-ASCII rakstzīmes jākodē UTF-8 un pēc tam procentuāli jākodē.
-
Jau kodēti procentu simboli: Procentu simboli, kas ir daļa no procentu kodējumiem, nedrīkst tikt atkārtoti kodēti.
-
Rezervētie simboli vaicājumu virknes: Daži simboli ir īpašas nozīmes vaicājumu virknes un tiem jābūt kodētiem, lai novērstu struktūras izmaiņas.
URL dekodēšana
Kas ir URL dekodēšana?
URL dekodēšana ir pretējs process URL kodēšanai. Tā pārvērš procentuāli kodētus simbolus atpakaļ to sākotnējā formā, padarot URL lasāmu un interpretējamu cilvēkiem un sistēmām.
Dekodēšanas process
-
Identificēt procentu kodēšanas secības: Atrast visus
%
simbolus, kam seko divi heksadecimālie cipari URL virknes. -
Pārvērst heksadecimālo uz baitiem: Pārvērst katru heksadecimālo vērtību tās atbilstošajā baitā.
-
Dekodēt UTF-8 baitus (ja nepieciešams): Apvienot baitus un dekodēt tos, izmantojot UTF-8 kodēšanu, lai iegūtu sākotnējo simbolu.
-
Aizstāt kodētās secības: Aizstāt procentuāli kodētās secības ar dekodētajiem simboliem.
Piemērs dekodēšanai
-
Kodēts:
hello%20world
%20
pārvēršas par atstarpi' '
- Dekodēts:
hello world
-
Kodēts:
J%C3%BCrgen
%C3%A4
pārvēršas par'ü'
UTF-8- Dekodēts:
Jürgen
URL dekodēšanas nozīme
URL dekodēšana ir būtiska, apstrādājot lietotāju ievadi no URL, lasot vaicājumu parametrus vai interpretējot datus, kas saņemti no tīmekļa pieprasījumiem. Tā nodrošina, ka informācija, kas iegūta no URL, ir tās pareizajā, paredzētajā formā.
Lietošanas gadījumi
Tīmekļa attīstība
-
Vaicājumu parametri: Kodējot lietotāju ievadi vaicājumu parametros, lai novērstu kļūdas vai drošības ievainojamības.
-
Ceļa parametri: Droši iekļaujot dinamiskos datus URL ceļos.
Datu pārsūtīšana
-
API un tīmekļa pakalpojumi: Nodrošinot, ka uz API nosūtītie dati ir pareizi formatēti.
-
Internacionalizācija: Atbalstot URL ar rakstzīmēm no dažādām valodām.
Drošība
- Ievainojamību novēršana: Kodējot ievades datus, lai mazinātu risku no skriptu (XSS) un citu ievainojamību uzbrukumiem.
Alternatīvas
Lai gan URL kodēšana ir būtiska, ir scenāriji, kad citas kodēšanas metodes var būt piemērotākas:
-
Base64 kodēšana: Izmanto, lai kodētu bināros datus URL ietvaros vai kad nepieciešama augstāka informācijas blīvuma pakāpe.
-
UTF-8 kodēšana bez procentu kodēšanas: Dažas sistēmas izmanto tieši UTF-8 kodēšanu, bet tas var radīt problēmas, ja to pareizi neapstrādā.
Apsveriet jūsu lietojumprogrammas specifiku, lai izvēlētos vispiemērotāko kodēšanas metodi.
Vēsture
URL kodēšana tika ieviesta ar agrīnajām URL un URI (Uniform Resource Identifier) standartiem 1990. gados. Nepieciešamība pēc konsekventas īpašo simbolu kodēšanas radās no dažādām sistēmām un rakstzīmju kopām, kas tika izmantotas visā pasaulē.
Galvenie notikumi ietver:
-
RFC 1738 (1994): Definēja URL un ieviesa procentu kodēšanu.
-
RFC 3986 (2005): Atjaunināja URI sintaksi, precizējot kodēšanas noteikumus.
Laika gaitā URL kodēšana ir kļuvusi par neatņemamu tīmekļa tehnoloģiju sastāvdaļu, nodrošinot uzticamu saziņu starp dažādām sistēmām un platformām.
Koda piemēri
Šeit ir piemēri, kā veikt URL kodēšanu dažādās programmēšanas valodās:
' Excel VBA piemērs
Function URLEncode(ByVal Text As String) As String
Dim i As Integer
Dim CharCode As Integer
Dim Char As String
Dim EncodedText As String
For i = 1 To Len(Text)
Char = Mid(Text, i, 1)
CharCode = AscW(Char)
Select Case CharCode
Case 48 To 57, 65 To 90, 97 To 122, 45, 46, 95, 126 ' 0-9, A-Z, a-z, -, ., _, ~
EncodedText = EncodedText & Char
Case Else
If CharCode < 0 Then
' Apstrādāt Unicode rakstzīmes
EncodedText = EncodedText & "%" & Hex(65536 + CharCode)
Else
EncodedText = EncodedText & "%" & Right("0" & Hex(CharCode), 2)
End If
End Select
Next i
URLEncode = EncodedText
End Function
' Lietošana:
' =URLEncode("https://example.com/?name=Jürgen")
Piezīme: Izvade var nedaudz atšķirties atkarībā no tā, kā katra valoda apstrādā rezervētos simbolus un atstarpes (piemēram, kodējot atstarpes kā %20
vai +
).
SVG diagramma par URL kodēšanas procesu
Drošības apsvērumi
Pareiza URL kodēšana un dekodēšana ir kritiska drošībai:
-
Ievainojamību novēršana: Kodējot lietotāju ievadi, palīdz novērst ļaunprātīgas koda izpildi, mazinot riskus, piemēram, skriptu (XSS) un SQL injekciju.
-
Datu integritāte: Nodrošina, ka dati tiek pārsūtīti bez izmaiņām vai bojājumiem.
-
Atbilstība standartiem: Ievērojot kodēšanas standartus, tiek novērstas savietojamības problēmas starp sistēmām.
Atsauces
- RFC 3986 - Uniform Resource Identifier (URI): https://tools.ietf.org/html/rfc3986
- Kas ir URL kodēšana un kā tā darbojas? https://www.urlencoder.io/learn/
- Procentu kodēšana: https://en.wikipedia.org/wiki/Percent-encoding
- URL standarts: https://url.spec.whatwg.org/
- URI.escape ir novecojusi: https://stackoverflow.com/questions/2824126/why-is-uri-escape-deprecated
Secinājums
URL kodēšana ir būtiska tīmekļa attīstības un interneta komunikāciju sastāvdaļa. Pārvēršot īpašos simbolus drošā formātā, tā nodrošina, ka URL tiek pareizi interpretēti pārlūkprogrammās un serveros, saglabājot datu pārsūtīšanas integritāti un drošību. Šis rīks nodrošina ērtu veidu, kā aizsargāt īpašos simbolus jūsu URL, uzlabojot saderību un novēršot potenciālas kļūdas vai drošības ievainojamības.