Ukubhala Nokuhumusha kwe-URL, Kuchazelwe Abathuthukisi
Faka isikhala ku-URL, noma igama lesi-Cyrillic, noma uphawu lwe-ampersand oluyingxenye yedatha yakho hhayi yekheli ngokwalo, futhi okuthile kufanele kudlule. Iwebhu iqinisekisa kuphela ukuthuthwa okuphephile kohlu oluncane, oluqondwayo lwezinhlamvu ze-ASCII. Konke okunye kufanele kusongwe ngefomethi amaruta, amaseva kanye neziphequluli zonke ezivumelana ngayo. Leyo fomethi ukubhala ngamaphesenti, evamise ukubizwa ngokuthi i-URL encoding, futhi leli khasi likuvumela ukuguqula umbhalo ngazo zombili izindlela ngqo esipheqululini sakho.

Yini ngempela ukubhala ngamaphesenti
Umthetho uyinkambiso futhi ulula ukulandela. Noma iyiphi inhlamvu engenakuvela njengoba injalo ibuyiselwa ngophawu lwe-% olulandelwa amadijithi amabili e-hexadecimal achaza inani le-byte lalolo hlamvu. Isikhala siphenduka %20. Uphawu lwe-plus luphenduka %2B. Uphawu lwenombolo luphenduka %23. Uma uhlamvu lumela ama-byte amaningi, njengoba kwenzeka kumbhalo ongewona i-ASCII ngaphansi kwe-UTF-8, uthola nje amaqoqo amaningi alandelanayo: uphawu lwe-euro luphenduka %E2%82%AC. Ukuhumusha kuphenduphendula lolu hlelo, kufunda iqoqo ngalinye libuyele ku-byte yalo yangempela.
Le nkambiso ichazwe ku-URI specification (RFC 3986) futhi kuhloswe ngayo ukuba ijwayelekile. Ukujwayeleka yikho okubalulekile. Wonke ikhasimende ne-server ye-HTTP eziziphatha kahle emhlabeni wonke zisebenzisa imithetho efanayo, ngakho isixhumanisi esibhalwe kahle endaweni eyodwa sifika singatholanga inkinga kwenye indawo.
Kungani kudingeka ibe khona
Ama-URL athwala uhlobo lwezinhlamvu ezimbili ezinemisebenzi ehlukene kakhulu. Izinhlamvu ezigodliwe ezifana ne-/, ?, #, &, = kanye ne-: zakhiwo. Zitshela umhlaziyi lapho indlela iphela khona nalapho uhlu lwemibuzo luqala khona, noma lapho enye ipharamitha iyekayo enye iqala khona. Uma idatha yakho yangempela iqukethe olunye lwalezo zimpawu, kufanele ibhalwe ngamaphesenti ukuze umhlaziyi angayithathi njengomaka. Inombolo yodwa efana ne-A&B/2024 efakwe njengoba injalo ohlwini lwemibuzo izobhekwa njengezingxenye ezimbili nengxenye yendlela.
Bese kunezinhlamvu ezingaphephile nezingewona i-ASCII: izikhala, izimpawu zokucaphuna, amabhrikithi angezansi, unobumba onezimpawu, ama-emoji, noma yini engaphandle kwesikhala se-ASCII elula. Lezi azinandaba yokuvela njengoba zinjalo ku-URL, ngoba ziyalimala uma zidluliswa noma ngoba azinawo umfanekiso ochaziwe. Ukuzibhala ngamaphesenti kugcina izixhumanisi zihlanzekile futhi ziqondwa kalula esikhundleni sokushiya umphumela ungaqondiwe.
Lapho okuvela khona emsebenzini wangempela
Uhlu lwemibuzo yisibonelo esidume kakhulu. Nani ngalinye olengeza ku-?key=... kufanele libhalwe ngamaphesenti ukuze okufakwe umsebenzisi kungakwazi ukuphula isakhiwo. Okufanayo kusebenza kuma-form submissions e-HTML athunyelwa njenge-application/x-www-form-urlencoded, lapho isiphequluli sibhala amanani ensimu ngamaphesenti ngokuzenzakalela (futhi, ngenkambiso yomlando, kuphendula izikhala zibe + esikhundleni se-%20). Uzohlangana nakho futhi lapho wakha izixhumanisi ezikhomba amakhasi anezihloko ezingezona ezesiLatin, lapho wakha izicelo ze-API ngesandla, lapho udlulisa izinjongo zokuphindiselwa njengama-parameter, kanye nalapho uxazulula ukuthi kungani isicelo esibukeka silungile kubha lekheli sifika sixubevangile eseva.

encodeURI kanye ne-encodeURIComponent
I-JavaScript ithumela abahleli abababili, futhi ukukhetha ongafanele iphutha elivamile. Umehluko usemkhawulweni wokusetshenziswa. I-encodeURIComponent yesigaba esisodwa sedatha, njengenani elilodwa lohlu lwemibuzo. Ibhala cishe konke, kufaka nezinhlamvu ezigodliwe i-/, ?, :, @, &, =, + ne-#. Yilokho kanye okudinga uma idatha ivumelekile ukuthi iqukathe lezo zimpawu njengombhalo ojwayelekile.
I-encodeURI yekheli lonke oye wafuna ukuligcina lisebenza. Ishiya izinhlamvu zesakhiwo njengoba zinjalo, ngakho ama-slash, ama-colon kanye nemibuzo ebamba i-URL ndawonye ayasinda. Isebenzise uma unekheli eligcwele futhi ufuna kuphela ukuhlanza izikhala noma izinhlamvu ezingewona i-ASCII; sebenzisa i-encodeURIComponent noma nini uma ufaka inani ohlwini olukhulu lwe-URL. Umthetho olula: bhala isixhumanisi sonke nge-encodeURI, bhala izingxenye ozifaka phakathi nge-encodeURIComponent.
Konke kuhlala emshinini wakho
Leli thuluzi lisebenza ngokuphelele ngaphakathi kwesiphequluli sakho. Umbhalo owunamathiselayo ubhalwa noma uhunyushwa ngamaphesenti endaweni ngokusebenzisa izinhlelo ezifanayo ezijwayelekile futhi awulokothi uye eseva, okwenza kuphephe amathokheni, ama-parameter asayiniwe noma noma yini enye ongathandi ukuyithumela emgudwini. Uma usebenza nezinye izinguquko zombhalo, umguquli we-Base64 ulele eceleni kwalo, futhi ungaphequlula uhlu olugcwele lwama-thuluzi omthuthukisi lokusiza ngokuvamile.
Imibuzo evame ukubuzwa
Kusho ukuthini u-%20 ku-URL?
Yisikhala esibhalwe ngamaphesenti. Uphawu lwesikhala aluvumelekile njengoba lunjalo ku-URL, ngakho luyabuyiselwa ngophawu lwephesenti kanye nenani le-hexadecimal elithi 20, okuyinani le-byte lesikhala.
Kungani ngesinye isikhathi ngibona uphawu lwe-plus esikhundleni se-%20?
Idatha ye-form ye-HTML yohlobo lwe-application/x-www-form-urlencoded ibhala izikhala njengophawu lwe-plus ngenkambiso yomlando. Endleleni noma ohlwini lwemibuzo ejwayelekile, isikhala sibhalwa njenge-%20. Zombili ziyahunyushelwa zibuyele esikhaleni endaweni yazo eqondile.
Nini okumele ngisebenzise i-encodeURIComponent esikhundleni se-encodeURI?
Sebenzisa i-encodeURIComponent yenani elilodwa olifaka ku-URL, njengepharamitha yohlu lwemibuzo, ngoba ibhala nezinhlamvu ezigodliwe. Sebenzisa i-encodeURI yekheli eliphelele uma ufuna ukugcina ama-slash, ama-colon kanye nemibuzo ebamba lona ndawonye.
Ingabe ukubhala kwe-URL kuguqula incazelo yedatha yami?
Cha. Ukubhala kuyaphenduka ngokuphelele. Ukuhumusha umphumela kubuyisela umbhalo wangempela wasekuqaleni ngokuphelele, ibyte ngebyte, uma uhlelo lwezinhlamvu olufanayo lusetshenziswa kuzo zombili izinhlangothi.
Zibanjwa kanjani izinhlamvu ezingewona ze-ASCII njengezimpawu noma ama-emoji?
Ziqala ziphendulwe zibe ama-byte e-UTF-8, bese ibyte ngayinye iphenduka iqoqo layo lamaphesenti. Uhlamvu olunophawu olulodwa noma i-emoji lingase lisabalale libe amaqoqo amaningi omphumela obhalwe ngamaphesenti.
Ingabe umbhalo wami uthunyelwa eseva uma ngisebenzisa leli thuluzi?
Cha. Ukubhala nokuhumusha kwenzeka ngokuphelele ngaphakathi kwesiphequluli sakho. Akukho lutho olunamathiselayo oludluliswa, ngakho kuphephile ukusebenzisa nemibhalo eyimfihlo noma ebucayi.
