Sarrafa da Fassara URL, Bayani ga Masu Haɓaka Software
Ka rubuta sarari a cikin URL, ko kalma ta Cyrillic, ko wata alamar "&" da take na bayananka maimakon ta adireshin da kanta, sai wani abu ya zama dole. Yanar gizo tana tabbatar da amintaccen jigilar haruffa na ASCII kaɗan ne kawai, masu iya hasashe. Duk sauran abin dole ne a naɗe shi cikin tsari da matatun sadarwa (routers), sabobi, da burauzoci duk suka amince da shi. Wannan tsari shi ne sarrafa kaso (percent-encoding), wanda aka fi sani da sarrafa URL, kuma wannan shafi yana bar ka ka canza nassi zuwa kowace hanya kai tsaye a cikin burauzarka.

Menene ainihin sarrafa kaso
Ƙa'idar tana da sauƙi kuma mai sauƙin biyowa. Kowace haruffa da ba za ta iya bayyana kai tsaye ba ana maye gurbinta da alamar % tare da lambobi biyu na hexadecimal da suke bayyana ƙimar byte na wannan haruffa. Sarari yana zama %20. Alamar plus tana zama %2B. Alamar lamba tana zama %23. Idan haruffa yana danganta da byte da yawa, kamar yadda mafi yawan nassi wanda ba na ASCII ba yake yi ƙarƙashin UTF-8, sai a sami ƙungiyoyi da yawa jere da jere: alamar Euro tana zama %E2%82%AC. Fassarawa tana juyar da tsari, tana karanta kowace ƙungiya na uku-uku ta koma zuwa ainihin byte ɗinta.
An bayyana wannan al'ada a cikin ƙa'idar URI (RFC 3986) kuma ta yi haka ne da gangan don ta zama mai sauƙi da tabbaci. Sauƙi shi ne ainihin manufar. Kowace kayan aiki na HTTP mai kyawawan halaye a duniya yana aiwatar da ƙa'idodi ɗaya, don haka wata mahaɗa da aka sarrafa daidai a wani wuri za ta iso ba tare da lalacewa a duk sauran wurare ba.
Me ya sa dole ne ta wanzu
URLs suna ɗauke da nau'i biyu na haruffa masu ayyuka daban-daban. Haruffan da aka tsare kamar /, ?, #, &, = da : suna da muhimmancin tsari. Suna gaya wa mai nazari (parser) inda hanya ta ƙare kuma inda jerin tambaya ya fara, ko inda wani sigi ya tsaya kuma na gaba ya fara. Idan ainihin bayananka na ɗauke da ɗaya daga cikin waɗannan alamomi, dole ne a sarrafa shi domin mai nazari kada ya kuskura ya ɗauka a matsayin alamar rubutu. Wani lambar oda kamar A&B/2024 idan aka saka shi kai tsaye a cikin jerin tambaya za a fassara shi kuskure a matsayin sigi biyu da wani sashin hanya.
Sannan akwai haruffa marasa aminci da waɗanda ba na ASCII ba: sarari, alamomin faɗi, kusurwoyin baka, haruffa masu lamba, emoji, duk wani abu a wajen kewayon ASCII na yau da kullum. Waɗannan ba su da wani buƙata na bayyana kai tsaye a cikin URL, ko dai saboda suna lalacewa yayin tafiya ko saboda ba su da tsari tabbatacce. Sarrafa su yana kiyaye mahaɗoɗi tsafta da tabbatacce maimakon barin sakamakon ga sa'a.
Inda take bayyana a ainihin aiki
Jerin tambaya su ne misalin gargajiya. Kowace ƙima da ka haɗa zuwa ?key=... ya kamata a sarrafa ta domin shigar mai amfani kada ta karya tsarin. Haka kuma yana faruwa da sallamawar fom na HTML da aka aika a matsayin application/x-www-form-urlencoded, inda burauza take sarrafa ƙimomin fanni ta atomatik (kuma, ta al'adar tarihi, tana mayar da sarari zuwa + maimakon %20). Za ka kuma haɗu da wannan yayin ginin mahaɗoɗi da suke nunawa zuwa shafuka masu taken da ba Latin ba, yayin ginin buƙatun API da hannu, yayin wucewa da wuraren komawa (redirect targets) a matsayin sigofi, da yayin binciken dalilin da ya sa buƙata da take kama da lafiya a jerin adireshi take isowa sabar cikin lalacewa.

encodeURI da encodeURIComponent
JavaScript tana da masu sarrafawa guda biyu, kuma zaɓar wanda ba daidai ba matsala ce ta gama-gari. Bambancin yana kan iyaka. encodeURIComponent na wani ɓangare guda ne na bayani, kamar ƙima ɗaya ta jerin tambaya. Tana sarrafa kusan komai, ciki har da haruffan da aka tsare /, ?, :, @, &, =, + da #. Wannan shi ne ainihin abin da kake so idan bayanan aka yarda su ƙunshi waɗannan alamomi a matsayin nassi na yau da kullum.
encodeURI na dukkan adireshin da kake son ya ci gaba da aiki. Tana barin haruffan tsari kamar yadda suke, don haka slashes, colons, da alamun tambaya masu riƙe da URI tare suna tsira. Yi amfani da ita idan kana da cikakken URL kuma kawai kake son ka tsaftace sarari ko haruffa marasa ASCII; yi amfani da encodeURIComponent duk lokacin da kake sakawa ƙima cikin babban URL. Wata ƙa'ida mai sauƙi: sarrafa dukkan mahaɗa da encodeURI, sarrafa ɓangarorin da kake sakawa da encodeURIComponent.
Komai yana zama a na'urarka
Wannan kayan aikin yana gudana gaba ɗaya a cikin burauzarka. Nassin da ka manna ana sarrafa shi ko fassara shi a gida ta amfani da irin waɗannan ƙa'idojin na yau da kullum kuma ba ya taɓa zuwa wata sabar, wanda yake sanya shi amintacce ga alamomin shaida, sigofi da aka sa hannu, ko wani abu da ba ka son ka aika ta hanyar sadarwa. Idan kana aiki da wasu canje-canjen nassi, mai canza Base64 yana kusa da wannan kayan aikin, kuma za ka iya bincika cikakken tarin kayan aikin mai haɓakawa domin sauran taimako na yau da kullum.
Tambayoyin da ake yawan yi
Menene ma'anar %20 a cikin URL?
Sarari ne da aka sarrafa. Ba a yarda da haruffar sarari kai tsaye a cikin URL, don haka an maye gurbinta da alamar kaso da ƙimar hexadecimal 20, wanda shi ne ƙimar byte na sarari.
Me ya sa wani lokaci nake ganin alamar plus maimakon %20?
Bayanan fom na HTML na nau'in application/x-www-form-urlencoded suna sarrafa sarari zuwa alamar plus ta al'adar tarihi. A cikin hanya ko jerin tambaya na yau da kullum, ana sarrafa sarari zuwa %20. Su biyun suna fassara zuwa sarari a cikin daidai muhallinsu.
Yaushe ya kamata in yi amfani da encodeURIComponent maimakon encodeURI?
Yi amfani da encodeURIComponent domin wata ƙima guda ɗaya da kake sakawa cikin URL, kamar sigi na jerin tambaya, saboda tana kuma sarrafa haruffan da aka tsare. Yi amfani da encodeURI domin cikakken adireshi idan kana son kiyaye slashes, colons, da alamun tambaya masu riƙe da shi tare.
Shin sarrafa URL yana canza ma'anar bayanaina?
A'a. Sarrafawa tana iya juyawa gaba ɗaya. Fassara sakamakon yana ba da ainihin nassin, byte don byte, muddin an yi amfani da tsarin haruffa iri ɗaya a bangarorin biyu.
Ta yaya ake sarrafa haruffa marasa ASCII kamar alamomin lafazi ko emoji?
Da farko ana mayar da su zuwa byte na UTF-8, sannan kowace byte take zama nata ƙungiya ta kaso guda. Haruffar da take da alamar lafazi ko emoji guda ɗaya na iya faɗaɗawa zuwa ƙungiyoyi da yawa a cikin fitarwar da aka sarrafa.
Shin ana tura nassina zuwa wata sabar yayin amfani da wannan kayan aikin?
A'a. Sarrafawa da fassarawa suna faruwa gaba ɗaya a cikin burauzarka. Babu abin da ka manna da ake turawa, don haka yana da aminci a yi amfani da shi ga jerin haruffa masu sirri ko masu mahimmanci.
