Kín gan-an ni MIME type
MIME type, tí a tún ń pè ní media type, jẹ́ àmì kúkúrú tí ó ń sọ fún sọ́fítíwáà irú dátà tí fáìlì kan tàbí ara-ìránṣẹ́ kan ní. Ó bẹ̀rẹ̀ láti inú ẹrọ ìránṣẹ́ (email) (orúkọ náà ń dúró fún Multipurpose Internet Mail Extensions) ṣùgbọ́n lónìí ó ń farahàn níbi gbogbo lórí ayélujára. Àṣà rẹ̀ máa jẹ́ type/subtype nígbà gbogbo: ẹ̀ka gbòòrò, ìlà (slash), àti fọ́ọ̀mù pàtó. Nítorí náà text/html túmọ̀ sí "ọ̀rọ̀, ní fọ́ọ̀mù HTML", image/png túmọ̀ sí "àwòrán, ní fọ́ọ̀mù PNG", application/json sì túmọ̀ sí "dátà ìtòlẹ́sẹẹsẹ, tí a kọ ní JSON".
Ẹ̀ka gíga (type) wá láti inú àwọn àṣàyàn tí a ti ṣètò tí IANA, ibùjẹ́wọ́ oníṣẹ́ọ́, ń bójútó: text, image, audio, video, application, font, model, multipart, àti àwọn mìíràn tuntun bí i haptics. Ẹ̀ka kékeré (subtype) jẹ́ fọ́ọ̀mù pàtó náà. Àwọn ilé-iṣẹ́ lè fi tiwọn kún un pẹ̀lú ìṣáájú vnd. (bí àpẹẹrẹ application/vnd.ms-excel), àwọn irú àdánwò sì ti ń lo ìṣáájú x- ní ti ìtàn, bí ó tilẹ̀ jẹ́ pé a kì í fún ni níṣìírí àṣà yìí mọ́.

Níbi tí àwọn MIME type ṣe pàtàkì
Ibi tí ó ṣe pàtàkì jùlọ tí MIME type ń farahàn ni orí-ìwé ìdáhùn HTTP Content-Type. Nígbà tí sáfà kan bá fi ojú-ìwé, àwòrán, tàbí ẹrù data API ránṣẹ́, orí-ìwé yìí ń sọ fún aṣàwárí bí ó ṣe lè túmọ̀ àwọn byte náà. Bí orí-ìwé náà bá sọ pé text/html, aṣàwárí náà máa fi àmì hàn; bí ó bá sọ pé application/json, ìpè fetch() lè pín in; bí ó bá sọ pé application/pdf, ẹ̀rọ ìwòran tí ó ti wà nínú rẹ̀ máa ṣí. Orí-ìwé kan náà náà ń rìn ní ẹ̀gbẹ́ ìbéèrè náà pẹ̀lú: nígbà tí o bá fi fọ́ọ̀mù kan tàbí ara API ránṣẹ́ pẹ̀lú POST, Content-Type ń sọ fún sáfà náà bí ó ṣe lè ka ohun tí o fi ránṣẹ́.
Yàtọ̀ sí HTTP, àwọn MIME type ń darí àwọn ètò míràn. Àwọn app ẹrọ ìránṣẹ́ ń lò wọ́n láti pinnu bóyá àfikún kan jẹ́ àwòrán tí ó yẹ kí a wo ṣáájú tàbí fáìlì binary tí a yẹ kí a fi pamọ́. Àwọn olùdarí gbígbé fáìlì sókè ń ṣàyẹ̀wò ẹ̀ka tí a sọ láti gba tàbí kọ̀ àwọn fáìlì. Ètò-ẹ̀rọ tàbí aṣàwárí náà pẹ̀lú ń lo ẹ̀ka náà, kì í ṣe orúkọ ìdánimọ̀ fáìlì nìkan, láti yan app tí a lò fúnra rẹ̀. Èrò kan náà ni ó wà lábẹ́ bí àwọn sáfà ṣe ń jábọ àwọn àbájáde àti àṣìṣe pẹ̀lú àwọn kóòdù ipò HTTP — ìdáhùn 200 pẹ̀lú ẹ̀ka tí kò tọ́ lè bàjẹ́ gan-an gẹ́gẹ́ bí 404.
Àwọn tí ìwọ yóò lò lójoojúmọ́
Àwọn ẹ̀ka díẹ̀ ń bo púpọ̀ nínú gbogbo ìṣàn ojú-òpó gidi:
text/html— àwọn ojú-ìwé (orúkọ ìdánimọ̀.html)text/css— àwọn ìwé àkọ́sílẹ̀-ọ̀ṣọ́ (.css)text/javascript— ẹ̀ka tí a gbà nímọ̀ràn fún JavaScript (.js,.mjs)application/json— ẹ̀ka JSON ìjọba kan ṣoṣo, tí a tọ́ka nínú RFC 8259 (.json)image/png,image/jpeg,image/webp,image/svg+xml— àwọn fọ́ọ̀mù àwòrán tí ó wọ́pọ̀application/pdf— àwọn ìwé PDF (.pdf)application/octet-stream— ẹ̀ka gbogbogbò fún dátà binary tí a kò mọ̀ tàbí tí kò lẹ́ka pàtótext/plain— ẹ̀ka àdánidá fún ọ̀rọ̀ tí ó rọrùn tí kò ní ẹ̀ka tí ó jinlẹ̀ sí i
JSON yẹ kí a fi àkíyèsí kan sí i nítorí ó máa ń dàrú fún ènìyàn. Ẹ̀ka tí ó tọ́ nìkan ni application/json. Àkọ́sílẹ̀ àtijọ́ nígbà mìíràn ń lo text/json, text/plain, tàbí application/x-javascript, ṣùgbọ́n àwọn wọ̀nyí ti lọ, díẹ̀ lára àwọn olùgbà pẹ̀lú lè kọ̀ láti pín wọn. Kò sí ìdíwọ̀n charset fún JSON pẹ̀lú — ìlànà náà ń fipá mú UTF-8, nítorí náà kíkọ application/json; charset=utf-8 jẹ́ àṣejù bí ó tilẹ̀ jẹ́ pé kò léwu. Fún tábìlì kíkún ti àwọn fọ́ọ̀mù àti orúkọ ìdánimọ̀ fáìlì, wo àwọn tábìlì ìtọ́kasí wa.

Kí ló dé tí Content-Type tí kò tọ́ fi ń ba nǹkan jẹ́
Àwọn aṣàwárí àti olùgbà ń gbẹ́kẹ̀lé ẹ̀ka tí a sọ, nítorí náà ṣíṣe àṣìṣe rẹ̀ ní àbájáde gidi. Fi ìdáhùn API JSON ránṣẹ́ gẹ́gẹ́ bí text/html aṣàwárí náà lè gbìyànjú láti fi àmì hàn, tàbí olùgbà tí ó le lè jáde àṣìṣe pípín kí kóòdù rẹ tó sá kúrò rárá. Fi fáìlì CSS tàbí JavaScript ránṣẹ́ pẹ̀lú ẹ̀ka tí kò tọ́, àbùmọ́lẹ̀ ààbò tí a ń pè ní X-Content-Type-Options: nosniff yóò mú kí aṣàwárí náà kọ̀ láti lo, tí yóò ba ìṣàfihàn tàbí àwọn àkọ́sílẹ̀ ojú-ìwé rẹ jẹ́ láìjẹ́wọ́.
Ìgbàsílẹ̀ (downloads) ni àṣìṣe àpẹẹrẹ mìíràn. Bí o bá fẹ́ kí fáìlì kan gba ìgbàsílẹ̀ dípò kí ó fi àmì hàn, ẹ̀ka náà ṣe pàtàkì pẹ̀lú orí-ìwé Content-Disposition. PDF tí a fi ránṣẹ́ gẹ́gẹ́ bí application/octet-stream máa gba ìgbàsílẹ̀ gẹ́gẹ́ bí fáìlì gbogbogbò dípò kí ó ṣí nínú ẹ̀rọ ìwòran; àwòrán tí a fi ránṣẹ́ gẹ́gẹ́ bí text/plain ń farahàn gẹ́gẹ́ bí àwọn àmì tí kò ní ìtumọ̀. Ní ẹ̀gbẹ́ gbígbé sókè, fáìlì tí a kò fi àmì tí ó tọ́ sí lè kọjá àyẹ̀wò orúkọ ìdánimọ̀ tí kò jinlẹ̀, ìdí nìyí tí àwọn olùṣàyẹ̀wò tí ó le fi ń ṣàyẹ̀wò àwọn byte gidi (nọ́mbà idán) dípò kí wọ́n gbẹ́kẹ̀lé ẹ̀ka tí olùgbà fi hàn.
Ní ìtàn, àwọn aṣàwárí máa gbìyànjú láti fojú-inú-wò, tàbí "sniff", ẹ̀ka gidi náà nígbà tí orí-ìwé náà bá dà bí ẹni pé kò tọ́. Ìwà yẹn fa àwọn ihò ààbò, nítorí náà àṣà tí ó dára jùlọ lónìí ni láti máa fi Content-Type tí ó péye ránṣẹ́ nígbà gbogbo kí a sì dá sniffing dúró pẹ̀lú nosniff. Ní ọ̀rọ̀ kúkúrú: fi ẹ̀ka náà lélẹ̀ lọ́nà tí a mọ̀ dájú sórí ìdáhùn kọ̀ọ̀kan, ọ̀pọ̀lọpọ̀ àṣìṣe ìṣàfihàn, ìgbàsílẹ̀, àti pípín yóò sì pòórá.
Àwọn ìbéèrè tí ó wọ́pọ̀
Kín ni ìyàtọ̀ láàrin MIME type àti media type?
Wọ́n jẹ́ ohun kan náà. "MIME type" ni orúkọ àtijọ́ láti inú ẹrọ ìránṣẹ́, nígbà tí "media type" jẹ́ ọ̀rọ̀ tí IANA àti àwọn ìlànà HTTP ìsìnyí fẹ́ràn. Méjèèjì ń tọ́ka sí àmì type/subtype.
Kín ni MIME type tí ó tọ́ fún JSON?
Ó jẹ́ application/json, tí a tọ́ka nínú RFC 8259. Àwọn àṣàyàn àtijọ́ bí i text/json tàbí application/x-javascript ti lọ, díẹ̀ lára àwọn olùgbà yóò sì kọ̀ wọ́n sílẹ̀.
Kín ni application/octet-stream túmọ̀ sí?
Ó jẹ́ ẹ̀ka gbogbogbò fún dátà binary tí kò lẹ́ka pàtó tí kò sí àmì tí ó jinlẹ̀ sí i. Àwọn sáfà ń lò ó gẹ́gẹ́ bí ẹ̀yìn-ìdábò fún àwọn irú fáìlì tí a kò mọ̀, tí ó sábà máa fa ìgbàsílẹ̀ dípò ìṣàfihàn nínú aṣàwárí.
Kí ló dé tí fáìlì CSS tàbí JavaScript mi kò fi ṣí?
Ọ̀pọ̀lọpọ̀ ìgbà sáfà náà ń fi í ránṣẹ́ pẹ̀lú Content-Type tí kò tọ́. Pẹ̀lú X-Content-Type-Options tí a ṣètò sí nosniff, aṣàwárí náà kọ̀ láti lo CSS tí kì í ṣe text/css tàbí àwọn àkọ́sílẹ̀ tí kì í ṣe irú JavaScript kan. Tún ètò sáfà náà ṣe kí ẹ̀ka tí ó tọ́ kí a fi ránṣẹ́.
Ṣé mo lè fi charset kún MIME type kan?
Bẹ́ẹ̀ni, fún àwọn fọ́ọ̀mù ọ̀rọ̀, ní lílo ìdíwọ̀n bí i text/html; charset=utf-8. Fún JSON kò pọn dandan nítorí pé fọ́ọ̀mù náà máa jẹ́ UTF-8 nígbà gbogbo gẹ́gẹ́ bí ìlànà, bí ó tilẹ̀ jẹ́ pé fífi kún un kò léwu.
Ṣé orúkọ ìdánimọ̀ fáìlì ń pinnu MIME type?
Kì í ṣe lórí HTTP. Sáfà náà ni ó ń pinnu Content-Type tí ó máa fi ránṣẹ́, aṣàwárí náà sì ń gbẹ́kẹ̀lé orí-ìwé náà. Orúkọ ìdánimọ̀ náà kàn ń ṣiṣẹ́ gẹ́gẹ́ bí ìmọ̀ràn fún àwọn irinṣẹ́ àti ètò-ẹ̀rọ nígbà tí kò sí ẹ̀ka tí a sọ kedere.
