← Wonke amathuluzi

Isiqondiso Sezinhlobo ze-MIME

Yiziphi izinhlobo ze-MIME, indlela i-type/subtype format esebenza ngayo, lapho i-Content-Type ibaluleke khona ku-HTTP nakwi-imeyili, izinhlobo ezivamile, nokuthi kungani okungalungile kudala izinkinga.
IsanduleloUhlobo lwe-MIME

Uhlobo lwe-MIME empeleni luyini

Uhlobo lwe-MIME, olubuye lubizwe ngokuthi uhlobo lwemidiya, iwuphawu olumfushane olutshela isofthiwe ukuthi ihlobo luni ledatha elikwifayela noma kumzimba womlayezo. Lwazalwa ku-imeyili (igama limele Multipurpose Internet Mail Extensions) kodwa namuhla luvela yonke indawo kuwebhu. Ifomethi ihlala njalo iyi-type/subtype: isigaba esibanzi, umugqa oyisiqingi, kanye nefomethi eqondile. Ngakho text/html kusho "umbhalo, ngefomu ye-HTML", image/png kusho "isithombe, ngefomu ye-PNG", futhi application/json kusho "idatha yohlelo, ibhalwe njenge-JSON".

Uhlobo lwaphezulu type luvela esethini ecacile ephethwe yi-IANA, irejista esemthethweni: text, image, audio, video, application, font, model, multipart, kanye nezinye ezisha njenge-haptics. I-subtype ifomethi eqondile. Abadayisi bangengeza abawubo ngesandulela se-vnd. (isibonelo application/vnd.ms-excel), futhi izinhlobo zokuhlola ngokomlando zisebenzisa isandulela se-x-, nakuba lelo siko manje selingakhuthazwa.

Izithonjana ezikhanyayo ezingeziwe ezingazinikhinjilizi zamafomethi wefayela ehlelwe kumathayela wesigaba onemibhalo phezu kwesizinda esimnyama se-indigo
Yonke ifomethi yefayela ivumelana nelebula ye-type/subtype.

Lapho amahlobo we-MIME ebalulekile khona

Indawo ebaluleke kunazo zonke lapho uhlobo lwe-MIME luvela khona ihedi ye-Content-Type yempendulo ye-HTTP. Uma iseva ithumela ikhasi, isithombe, noma umthwalo we-API, le hedi itshela ibhrawuza ukuthi ilihumushe kanjani igama lamabhithi. Uma ihedi ithi text/html, ibhrawuza inikeza umaka; uma ithi application/json, ukushaya i-fetch() kungahumusha; uma ithi application/pdf, umbukisi ohlanganisiwe uyavuleka. Ihedi efanayo ihamba nasohlangothini lwesicelo futhi: uma uthumela ifomu noma umzimba we-API nge-POST, i-Content-Type itshela iseva ukuthi ifunde kanjani lokho okuthumele.

Ngale kwe-HTTP, amahlobo we-MIME aqhuba ezinye izinhlelo eziningana. Amaklayenti we-imeyili awasebenzisa ukunquma ukuthi isithako yisithombe okumele sibukwe noma kuyi-binary okumele igcinwe. Amahlelela wokulayisha amafayela ahlola uhlobo olumenyeziwe ukwamukela noma ukwenqaba amafayela. Futhi uhlelo lokusebenza noma ibhrawuza kusebenzisa uhlobo, hhayi umsiko wefayela kuphela, ukukhetha uhlelo lokusebenza olujwayelekile. Umbono ofanayo usekela ukuthi amaseva abika kanjani imiphumela namaphutha ndawonye ne-amakhodi wesimo se-HTTP — impendulo engu-200 enohlobo olungalungile ingaphuka kanye nengu-404.

Lezo ozozisebenzisa nsuku zonke

Amahlobo ambalwa asibekela iningi lezokuxhumana zangempela:

  • text/html — amakhasi wewebhu (umsiko .html)
  • text/css — amashidi wesitayela (.css)
  • text/javascript — uhlobo olunconyiwe lwe-JavaScript (.js, .mjs)
  • application/json — uhlobo lwe-JSON olulodwa olusemthethweni, luchazwe ku-RFC 8259 (.json)
  • image/png, image/jpeg, image/webp, image/svg+xml — amafomethi wesithombe avamile
  • application/pdf — amadokumenti we-PDF (.pdf)
  • application/octet-stream — okubamba konke kokungaziwa noma idatha ye-binary engahleliwe
  • text/plain — okujwayelekile komugqa ongenawo uhlobo olucebile

I-JSON ifanelwe umbhalo ngoba icabangisa abantu. Uhlobo oluqondile olulodwa yi-application/json. Ikhodi yakudala ngezinye izikhathi yayisebenzisa text/json, text/plain, noma application/x-javascript, kodwa lezo sezingasetshenziswa futhi amanye amaklayenti azokwenqaba ukuwahumusha. Ayikho i-parameter ye-charset ye-JSON futhi — izinga liphoqa i-UTF-8, ngakho ukubhala application/json; charset=utf-8 kuyaphindaphinda nakuba kungenangozi. Ukuthola ithebula elipheleleyo lamafomethi nemisiko, bheka amathebula wethu wereferensi.

Ipakethe yedatha ekhanyayo ephawulwe ngengxenye engazinikhinjilizi yohlobo igeleza phezu koxhumano lwenethiwekhi
I-Content-Type ihamba nomthwalo phezu kwe-HTTP.

Kungani i-Content-Type engalungile yephula izinto

Amabhrawuza namaklayenti athembela uhlobo olumenyeziwe, ngakho ukuluphambanisa kunemiphumela eqondile. Thumela impendulo ye-API ye-JSON njenge-text/html futhi ibhrawuza ingase izame ukuyinikeza, noma iklayenti eliqinile lingaphonsa iphutha lokuhumusha ngaphambi kokuthi ikhodi yakho isebenze. Thumela ifayela le-CSS noma le-JavaScript ngohlobo olungalungile futhi isici sokuphepha esibizwa X-Content-Type-Options: nosniff lizokwenza ibhrawuza yenqabe ukulisebenzisa, ithule iphule isitayela sekhasi lakho noma amasikripthi.

Ukulayishwa (downloads) yikhona okunye ukwehluleka okujwayelekile. Uma ufuna ifayela lilayishwe kunokuba libonakaliswe, uhlobo lubalulekile kanye nehedi ye-Content-Disposition. I-PDF ethunyelwe njenge-application/octet-stream ilayishwa njengefayela elijwayelekile esikhundleni sokuvuleka kumbukisi; isithombe esithunyelwe njenge-text/plain sibonakala njengezinhlamvu ezingasho lutho. Ohlangothini lokulayisha, ifayela eliphathwe ngokungalungile lingedlula okuhlolwa okulula komsiko, yingakho izikhali ezizinzile zihlola amabhithi angempela ("inombolo yomlingo") esikhundleni sokwethemba uhlobo olunikezwe iklayenti.

Ngokomlando, amabhrawuza ayezama ukuqagela, noma "ukuhogela", uhlobo lwangempela uma ihedi ibonakala ingalungile. Lokuziphatha kwadala imikhawulo yokuphepha, ngakho izinqubo eziphambili zesimanje uhlala uthumela i-Content-Type enembile futhi ukhubaze ukuhogela nge-nosniff. Ngamafuphi: hlela uhlobo ngamabomu kuyo yonke impendulo, futhi iningi lamaphutha okunikeza, okulayisha, nokuhumusha ayanyamalala.

Imibuzo evame ukubuzwa

Umehluko phakathi kohlobo lwe-MIME nohlobo lwemidiya uyini?

Ziyafana. "Uhlobo lwe-MIME" yigama lakudala elivela ku-imeyili, kuyilapho "uhlobo lwemidiya" liyigama i-IANA nezincazelo zesimanje ze-HTTP ezilikhethayo. Zombili zibhekiselele elebuleni ye-type/subtype.

Uhlobo lwe-MIME oluqondile lwe-JSON luyini?

Yi-application/json, luchazwe ku-RFC 8259. Izinye izinketho zakudala njenge-text/json noma i-application/x-javascript sezingasetshenziswa futhi amanye amaklayenti azowenqaba.

I-application/octet-stream isho ukuthini?

Iwuhlobo olujwayelekile lwedatha ye-binary engahleliwe engenayo ilebula eqondile kakhulu. Amaseva ayisebenzisa njengendlela yokugcina amahlobo wamafayela angaziwa, okuvamise ukubangela ukulayisha esikhundleni sokubonakaliswa kwibhrawuza.

Kungani ifayela lami le-CSS noma le-JavaScript lingalayeki?

Ngokuvamile iseva iyithumela ngo-Content-Type ongalungile. Ngo-X-Content-Type-Options usethelwe ku-nosniff, ibhrawuza yenqaba ukusebenzisa i-CSS engeyona i-text/css noma amasikripthi angewona uhlobo lwe-JavaScript. Lungisa isilungiselelo seseva ukuze uhlobo olulungile luthunyelwe.

Ngingayengeza yini i-charset kuhlobo lwe-MIME?

Yebo, kumafomethi ombhalo, usebenzisa i-parameter enjenge-text/html; charset=utf-8. Kwe-JSON akudingekile ngoba ifomethi ihlala njalo iyi-UTF-8 ngokwesivumelwano, nakuba ukuyengeza kungenangozi.

Umsiko wefayela unquma uhlobo lwe-MIME?

Hhayi phezu kwe-HTTP. Iseva inquma ukuthi i-Content-Type iyiphi ezoyithumela, futhi ibhrawuza iyayithemba leyo hedi. Umsiko usebenza njengesikhombisi samathuluzi kanye nezinhlelo zokusebenza lapho kungekho uhlobo oluqondile olunikeziwe.