Prosenttikoodaus URL-osoitteissa: mitä %20, + ja %2F tarkoittavat
Prosenttikoodauksessa merkki, jota URL-osoite ei kuljeta turvallisesti, kirjoitetaan prosenttimerkin ja merkin tavuarvon heksadesimaalilukuna. Välilyönti on %20, &-merkki on %26 ja kauttaviiva on %2F. Koodaus suojaa linkin rakenteen, koska merkit kuten & ja = erottavat kyselyjonon osat toisistaan.
Mitkä merkit voi jättää ennalleen
URI-standardi (RFC 3986), jonka päälle URL-osoitteet on rakennettu, jättää joitakin merkkejä koskematta: kirjaimet A–Z ja a–z, numerot sekä neljä merkkiä - _ . ~. Näitä ei koskaan tarvitse koodata. Muilla merkeillä on tehtävä URL-osoitteessa. Kaksoispiste erottaa protokollan muusta osoitteesta, kauttaviiva erottaa polun osia, kysymysmerkki aloittaa kyselyn, risuaita aloittaa fragmentin, ja & ja = jakavat kyselyn nimiin ja arvoihin. Merkki, jolla on tehtävä, täytyy koodata silloin, kun sen tarkoitus on dataa eikä rakenne.
Siksi sama merkki voidaan koodata yhdessä paikassa mutta ei toisessa. Kyselyn arvossa &-merkki on oltava %26, muuten linkki katkeaa väärästä kohdasta. Linkin polussa se on pelkkä merkki.
Muut kuin englannin kielen kirjaimet
Perusenglannin ulkopuoliset kirjaimet koodataan UTF-8-tavuina, ja jokainen tavu kirjoitetaan prosenttikoodina. Sanan café é on kaksi tavua C3 ja A9, joten se muuttuu muotoon %C3%A9 ja koko sana muotoon caf%C3%A9.
Yksinkertainen esimerkki havainnollistaa sääntöjä. Teksti a b&c=d/é muuttuu komponenttina koodattuna muotoon a%20b%26c%3Dd%2F%C3%A9. Jokainen merkki, joka ei ole turvallinen kirjain, numero tai merkki, koodataan: välilyönti, &-merkki, yhtäsuuruusmerkki, kauttaviiva ja kirjain é.
Komponentti vai koko URL
Koodaukselle on kaksi tyyppiä, ja kummallakin on syynsä. Komponenttikoodaus käsittelee jokaista varattua merkkiä datana. Käytä sitä yhdelle arvolle, kuten hakusanalle tai linkin sisällä olevalle tiedostonimelle. Kun koodataan hakusanaksi ”rock & roll”, tuloksena on rock%20%26%20roll, joten &-merkki pysyy arvon sisällä.
Koko URL -koodaus säilyttää rakenteen. Kun koodataan https://example.com/a b, tuloksena on https://example.com/a%20b, ja kaksoispisteet sekä kauttaviivat jäävät ennalleen. Käytä sitä kokonaiselle osoitteelle, joka pitää tehdä kelvolliseksi, älä arvolle, joka menee linkin sisään.
URL-koodaus ja -purku -työkalussa on tätä varten asetukset Komponentti ja Koko URL. Koko URL -purku säilyttää myös koodatut rakennemerkit, kuten %26 ja %3D, joten linkki toimii purkamisen jälkeenkin.
Plus-merkit ja lomakedata
Verkkolomakkeet käyttävät eri käytäntöä. Kun lomake lähetetään lomakedatana, välilyönti kirjoitetaan muotoon + eikä %20. Varsinainen plus-merkki kirjoitetaan silloin muotoon %2B. Joten ilmaus C++ tips muuttuu lomakedatassa muotoon C%2B%2B+tips ja tavallisessa komponenttikoodauksessa muotoon C%2B%2B%20tips.
Purkaminen toimii samalla tavalla. Kyselyjonossa + tarkoittaa yleensä välilyöntiä. Linkin polussa + on plus-merkki. Työkalu lukee + välilyöntinä vain, kun Käytä + välilyöntinä (lomakedata) on valittuna, joten jätä asetus pois polkuja ja arvoja varten, joissa plus-merkki on todellinen.
Pitkän kyselyjonon lukeminen
Linkki kantaa usein asetuksiaan kysymysmerkin jälkeen. Ota esimerkiksi tämä:
https://shop.example/search?q=red%20shirt&size=M&tag=summer%2Bsale
Purettuna se kertoo, että haku koskee sanaa punainen paita, koko on M ja tunniste on summer+sale. %2B pysyy plus-merkkinä, koska se oli koodattu. Liitä linkki URL-koodaus ja -purku -työkaluun, ja se listaa jokaisen nimen ja arvon purettuna, mikä helpottaa pitkän linkin lukemista. Jos haluat vain lyhyemmän osoitteen ilman seurantaasetuksia, siivoa linkki ensin.
Kaksinkertainen koodaus
Yleisin virhe on koodata arvo kahteen kertaan. Tekstin %20 koodaaminen uudelleen antaa tuloksen %2520, koska prosenttimerkki itsessään koodataan muotoon %25. Sivu etsii sitten arvosta tekstiä %20, eikä haku tai sivu löydä mitään. Pura linkki kerran, tarkista tulos, ja koodaa arvo vain silloin, kun se on tarpeen.
Rikkinäiset escape-merkinnät
Prosenttimerkkiä on seurattava kahdella heksadesimaalinumerolla, ja numeroiden on muodostettava kelvollista UTF-8:aa kirjaimille, joissa on merkkejä. Lyhennetty linkki tai tekstiin vahingossa kirjoitettu ylimääräinen prosenttimerkki voi jättää rikkinäisen merkinnän, kuten %E0%A4%A. Työkalu purkaa sen, minkä pystyy, jättää rikkinäiset tavut täsmälleen kirjoitettuina ja kertoo, kuinka monta se ei pystynyt purkamaan. Se ei pysähdy ensimmäiseen virheeseen.
Erikoistapaukset
- Käsin kirjoitetut välilyönnit linkissä. Selaimen osoitepalkki koodaa välilyönnit puolestasi, mutta asiakirjaan kopioitu linkki voi silti sisältää raakoja välilyöntejä. Koodaa ne ennen kuin lähetät linkin eteenpäin.
- Ei-englanninkieliset verkkotunnukset. Ne käyttävät erillistä järjestelmää, punycodea, eikä polun tai kyselyn koodaaminen muuta palvelimen nimeä.
- Puolikas emoji. Rikkinäinen kopio voi jättää yhden surrogaattipuolikkaan, jota ei voi koodata. Työkalu korvaa sen korvausmerkillä ja kertoo siitä.
- Base64 linkeissä. Linkin Base64-arvo noudattaa omia sääntöjään, ja sen merkit -ja _ korvaavat merkit + ja /. Katso Base64 selitettynä.
Näin teet sen fixmintillä
- Liitä teksti tai linkki kenttään Teksti tai URL.
- Valitse Koodaa tai Pura, ja sen jälkeen Komponentti yhdelle arvolle tai Koko URL koko osoitteelle.
- Valitse Käytä + välilyöntinä (lomakedata) linkeille, jotka on kopioitu verkkolomakkeesta.
- Lue linkistä kohta Kyselyparametrit, purettuina, niin näet jokaisen nimen ja arvon.
- Kopioi tulos.
Pikavastaukset
Mitä %20 tarkoittaa?
Välilyönti. Sen tavuarvo on heksadesimaalilukuna 20.
Miksi linkissäni on + eikä %20?
Linkki on todennäköisesti peräisin lomakkeesta, jossa + tarkoittaa välilyöntiä. Asetus ”Käytä + välilyöntinä (lomakedata)” purkaa sen.
Miksi linkissäni näkyy %2520?
Arvo on koodattu kahteen kertaan. %20:n prosenttimerkki on koodattu uudelleen muotoon %25. Pura kerran, niin saat takaisin %20:n, ja uudelleen, niin saat välilyönnin.
Käännetty tekoälyn avulla: Englanninkielinen alkuperäisteos.
Kommentit
Ei vielä kommentteja. Ole ensimmäinen.


