Utilia

URL koder i dekoder

Besplatan URL koder i dekoder. Procentno kodiraj parametre upita ili cele adrese, dekodiraj %XX sekvence i tretiraj + kao razmak. Radi u pregledaču.

Režim

Kako se koristi URL koder i dekoder

  1. Izaberi Kodiraj da tekst pretvoriš u oblik bezbedan za URL, ili Dekodiraj da procentno kodiran tekst vratiš u čitljive znakove.
  2. Pri kodiranju izaberi Režim: Komponenta za jednu vrednost (kao parametar upita ili segment putanje) ili Ceo URL da kodiraš kompletnu adresu uz očuvanje njene strukture.
  3. Pri dekodiranju podataka koji dolaze iz HTML obrasca ili niza upita, uključi Tretiraj + kao razmak da znakovi + postanu razmaci.
  4. Nalepi tekst i kopiraj rezultat. Ako je procentna sekvenca neispravna, alat prijavljuje grešku umesto da pogađa.

Šta je URL kodiranje?

URL-ovi smeju da sadrže samo ograničen skup ASCII znakova. Neki znakovi, kao /, ?, #, & i =, su rezervisani jer razdvajaju delove adrese: putanju, niz upita i fragment. Drugi, kao razmaci, navodnici, slova sa dijakriticima ili emodži, jednostavno nisu dozvoljeni. URL kodiranje, zvano i procentno kodiranje, rešava oba problema tako što svaki problematičan bajt zamenjuje znakom % iza kojeg slede dve heksadecimalne cifre.

Tekst se prvo pretvara u UTF-8 bajtove, a svaki bajt se kodira posebno. Razmak postaje %20, ampersand postaje %26, é (dva bajta u UTF-8) postaje %C3%A9, a emodži 😀 (četiri bajta) postaje %F0%9F%98%80. Nerezervisani znakovi, to jest slova, cifre i - _ . ~, nikada ne moraju da se kodiraju.

Režim komponente ili celog URL-a

Izbor pravog režima je najvažnija odluka, a pogrešan izbor je klasičan izvor grešaka.

Režim komponente radi kao JavaScript-ov encodeURIComponent. Kodira svaki rezervisan znak, pa se rezultat bezbedno može staviti unutar jednog dela URL-a. Koristi ga za vrednosti parametara upita, segmente putanje ili bilo šta što je korisnik ukucao. Na primer, pojam za pretragu rock & roll postaje rock%20%26%20roll. Da nisi kodirao &, server bi roll pročitao kao početak novog parametra.

Režim celog URL-a radi kao encodeURI. Pretpostavlja da je unos već kompletna adresa i čuva znakove koji joj daju strukturu, kao : / ? # & i =, dok kodira razmake i znakove van ASCII. Koristi ga da urediš adresu kao https://example.com/café menu?q=tea u https://example.com/caf%C3%A9%20menu?q=tea. Ne koristi ga na pojedinačnim vrednostima: & unutar vrednosti ostao bi nekodiran i pokvario bi niz upita.

Dobro pravilo: gradi URL-ove iz delova, svaku vrednost kodiraj u režimu komponente, a režim celog URL-a koristi samo za adrese koje primaš već sastavljene.

Znak + i kodiranje obrazaca

HTML obrasci poslati sa application/x-www-form-urlencoded kodiraju razmake kao + umesto %20. Zato adrese pretrage često izgledaju kao ?q=hello+world. Standardno procentno dekodiranje ostavlja + nepromenjen, jer je u putanji plus samo plus. Kada dekodiraš niz upita ili podatke obrasca, uključi Tretiraj + kao razmak da dobiješ hello world. Ostavi isključeno za putanje i vrednosti kod kojih je doslovan + bitan, kao telefonski brojevi ili Base64 podaci. Pravi znak plus u podacima obrasca šalje se kao %2B, pa se u oba slučaja ispravno dekodira.

Privatnost

Kodiranje i dekodiranje se u potpunosti izvršavaju u tvom pregledaču. Ništa što nalepiš, uključujući URL-ove koji mogu sadržati tokene, ID-jeve sesija ili lične podatke, ne šalje se na server niti se čuva.

Česta pitanja

Zašto dekodiranje ne uspeva sa greškom „neispravno“?

Iza % moraju slediti tačno dve heksadecimalne cifre, a dobijeni bajtovi moraju činiti ispravan UTF-8. Stringovi kao 100%, %G1 ili skraćena sekvenca kao %E2%82 ne mogu pouzdano da se dekodiraju, pa alat prijavljuje problem umesto da pravi pogrešan tekst. Da uključiš doslovan znak procenta, kodiraj ga kao %25.

Koja je razlika između %20 i +?

Oba mogu da predstavljaju razmak, ali u različitim kontekstima. %20 važi svuda u URL-u. + znači razmak samo u nizovima upita kodiranim kao obrazac; drugde je to doslovan znak plus.

Treba li da kodiram ceo URL u režimu komponente?

Samo ako je ceo URL sam vrednost unutar drugog URL-a, na primer parametar redirect=. U tom slučaju režim komponente je tačno ono što treba: https://a.com/?x=1 postaje https%3A%2F%2Fa.com%2F%3Fx%3D1.

Zašto je moj tekst kodiran dvaput?

Dvostruko kodiranje nastaje kada se već kodiran tekst kodira ponovo, pa %20 postaje %2520. Dekodiraj jednom da proveriš i pobrini se da se svaka vrednost kodira tek u trenutku kada se umeće u URL.

Da li URL kodiranje skriva ili štiti podatke?

Ne. Procentno kodiranje je potpuno povratno i ne pruža nikakvu bezbednost. Osetljive vrednosti u URL-ovima mogu završiti u istoriji pregledača i serverskim logovima, zato uopšte izbegavaj da tajne stavljaš u URL-ove.