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.
Kako se koristi URL koder i dekoder
- Izaberi Kodiraj da tekst pretvoriš u oblik bezbedan za URL, ili Dekodiraj da procentno kodiran tekst vratiš u čitljive znakove.
- 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.
- Pri dekodiranju podataka koji dolaze iz HTML obrasca ili niza upita, uključi Tretiraj + kao razmak da znakovi
+postanu razmaci. - 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.
Srodni alati
- Base64 kodiranje i dekodiranje Besplatan Base64 koder i dekoder sa punom podrškom za UTF-8 i opcijom base64url. Radi u tvom pregledaču, ništa se ne otprema na server.
- JSON formater i validator Besplatan JSON formater i validator koji sređuje, minifikuje i proverava JSON u pregledaču, sa sintaksnim greškama prijavljenim po redu i koloni.