Кіріспе

Көп мақсатты Интернет поштасының кеңейтімдері (MIME) – бұл электрондық пошта хабарламаларының форматын ASCII емес таңбалар жиынтығындағы мәтінді, сондай-ақ аудио, бейне, кескіндер мен қосымша бағдарламалардың тіркемелерін қолдау үшін кеңейтетін стандарт. Хабардың мазмұны бірнеше бөліктен тұруы мүмкін, ал мақалалық ақпарат ASCII емес таңбалар жиынтығында берілуі мүмкін. MIME форматындағы электрондық пошта хабарламалары әдетте қарапайым пошта тасымалдау протоколы (SMTP), пошта кеңсесі протоколы (POP) және Интернеттік хабар алмасу протоколы (IMAP) сияқты стандартты протоколдар арқылы жіберіледі. MIME – Интернет стандарты. Ол пікірлерді сұрау сериясында сипатталған: , , , және . SMTP электрондық поштасымен интеграциясы туралы мәліметтер мынада келтірілген: және . MIME формализмі негізінен SMTP үшін жасалған болса да, оның мазмұн түрлері басқа байланыс протоколдарында да маңызды. Әлемдік желідегі (World Wide Web) HyperText Transfer Protocol (HTTP) үшін серверлер кез келген веб-таратудың басына MIME бас өрісін қосады. Клиенттер мазмұн түрін немесе медиа түрін анықтау үшін бас өрісті пайдаланып, көрсетілген деректер түріне сәйкес келетін қарау қосымшасын таңдайды.

Тарих

MIME Карнеги Меллон университетінде (CMU) жасалған Andrew жобасының бір бөлігі болған Andrew хабарламалар жүйесінен туындады, бұл Andrew-ге тән дерек форматына платформааралық балама ретінде әзірленген.

MIME нұсқасы

Бұл тақырып өрісінің болуы хабарламаның MIME форматында екенін көрсетеді. Мәні әдетте "1.0" болады. Өріс мынадай түрде көрінеді:
MIME нұсқасы: 1.0

MIME-нің авторы Натаниел Боренштейннің айтуынша, нұсқа нөмірі кейінгі нұсқаларда MIME протоколына өзгерістер енгізуге мүмкіндік беру үшін қосылды. Алайда, Боренштейн бұл мүмкіндікті іске асыруға кедергі келтіретін спецификациядағы кемшіліктерді мойындады: "Біз болашақ MIME нұсқасын қалай өңдеу керектігін жеткілікті түрде нақты көрсетпедік. Егер сіз 1.0 нұсқасын танитын нәрсе жазсаңыз, 2.0 немесе 1.1 нұсқаларына тап болсаңыз не істеуіңіз керек? Мен бұл мәселе анық деп ойладым, бірақ барлығы оны әртүрлі жолмен іске асырды. Соның салдарынан, Интернет ешқашан 2.0 немесе 1.1 нұсқасын анықтай алмайды".

Кодталған сөз

RFC 2822-ден бастап, сәйкес келетін хабарлама тақырыптарының атаулары мен мәндері ASCII таңбаларын қолданады; ASCII емес деректерді қамтитын мәндер әдеби тізбек орнына MIME кодталған сөз синтаксисін (RFC 2047) пайдалануы керек. Бұл синтаксис ASCII таңбаларынан тұратын тізбек түрінде болады, ол бастапқы таңбалар кодтамасын ("charset") және charset-тің байттарын ASCII таңбаларына түрлендіру үшін қолданылатын мазмұн беру кодтамасын көрсетеді. Форматы: "=?charset?encoding?кодталған мәтін?=". charset IANA тіркелген кез келген таңбалар жиынтығы болуы мүмкін. Әдетте, ол хабарламаның мәтінімен бірдей болады. encoding "Q" болып, цитаталанған басып шығаруға ұқсас Q кодтамасын, немесе "B" болып, base64 кодтамасын білдіруі мүмкін. кодталған мәтін – Q кодталған немесе base64 кодталған мәтін. Кодталған сөздің ұзындығы, charset, encoding, кодталған мәтін және айырғыштарды қоса алғанда, 75 таңбадан аспауы тиіс. Егер 75 таңбадан тұратын кодталған сөзге сыймайтын мәтінді кодтау қажет болса, бірнеше кодталған сөздерді (CRLF SPACE арқылы бөлінген) қолдануға болады.

Көп бөлшекті кіші типтері

MIME стандарты хабардың әртүрлі бөліктерінің сипатын және олардың бір-бірімен байланысын анықтайтын, көп бөлімді хабардың әртүрлі кіші түрлерін анықтайды. Кіші түр жалпы хабарламаның қабағасында көрсетіледі. Мысалы, "digest" кіші түрін пайдаланатын көп бөлімді MIME хабарламасының қабағасы "multipart/digest" деп белгіленеді. RFC бастапқыда төрт кіші түрді анықтады: аралас, қорытынды, баламалы және параллель. Міндетті түрде қолдау көрсетуі тиіс қолданба аралас және қорытынды түрлерін қолдауы керек; басқа кіші түрлер міндетті емес. Қолданбалар танылмаған кіші түрлерді "multipart/mixed" деп қарауы тиіс. Қол қойылған және форма деректері сияқты қосымша кіші түрлер кейіннен басқа RFC-лерде бөлек анықталды.

аралас

multipart/mixed әртүрлі бас жазулары бар файлдарды (немесе қосымша ретінде) жіберу үшін қолданылады. Егер суреттер немесе оңай оқылатын басқа файлдар жіберілсе, көптеген пошта клиенттері оларды тікелей көрсетіп береді (егер Content Disposition: attachment арнайы көрсетілмесе, онда олар қосымша ретінде ұсынылады). Әрбір бөліктің әдепкі мазмұн түрі "text/plain" болып табылады. Бұл тип RFC 2046 стандартында сипатталған.

сұйықталған

multipart/digest – бірнеше мәтіндік хабарламаларды жіберудің оңай жолы. Әрбір бөліктің әдепкі мазмұн түрі "message/rfc822" болып табылады. MIME түрі RFC 2046 стандартында сипатталған.

баламалы

Көпбөлімді/баламалы кіші түрі әрбір бөлімнің бірдей (немесе ұқсас) мазмұнның әр түрлі форматтағы "баламалы" нұсқасы екенін көрсетеді, олардың әрқайсысы "Мазмұн түрі" тақырыбымен белгіленеді. Бөлімдердің реті маңызды. RFC1341 былай белгілейді: Әдетте, көпбөлімді/баламалы құрылымдарды құрастыратын пайдаланушы агенттері бөлімдерді артықшылықтың өсу ретімен орналастыруы керек, яғни ең қажетті форматты соңына қоюы керек. Жүйелер өздері өңдей алатын "ең жақсы" ұсынылымды таңдай алады; көбінесе бұл жүйе түсіне алатын соңғы бөлім болады, бірақ басқа факторлар да әсер етуі мүмкін. Клиент жай мәтін нұсқасынан нашаррақ нұсқаны жібергісі келмейтіндіктен, осы құрылым жай мәтін нұсқасын (бар болса) бірінші орынға қояды. Бұл көпбөлімді хабарламаларды түсінбейтін клиенттердің пайдаланушыларына қолайлы жағдай жасайды. Көп жағдайда, көпбөлімді/баламалы электрондық поштада екі бөлім болады: біреуі жай мәтін (text/plain), екіншісі HTML (text/html). Жай мәтін бөлігі кері үйлесімділікті қамтамасыз етеді, ал HTML бөлігі форматтау мен гиперсілтемелерді пайдалануға мүмкіндік береді. Көптеген электрондық пошта клиенттері пайдаланушыға HTML-ге қарағанда жай мәтінді таңдау опциясын ұсынады; бұл қолданба хабардың "ең жақсы" бөлімін қалай таңдауына жергілікті факторлардың әсер етуінің мысалы. Стандарттың мақсаты бойынша хабардың әр бөлігі бірдей мазмұнды білдіруі керек, бірақ оны қандай да бір жолмен міндетті түрде орындау талап етілмейді. Кез келген уақытта, спамға қарсы сүзгілер хабарламаның text/plain бөлігін ғана тексерді, себебі оны text/html бөлігінен талдау оңай. Бірақ спамдер бұл мүмкіндікті пайдаланып, сырттай зиянсыз text/plain бөлігі және text/html бөлігінде жарнамалық хабарламалары бар хабарламалар жасады. Спамға қарсы бағдарламалық қамтамасыз ету ақырында осы әдіске көз жеткізіп, көпбөлімді/баламалы хабарламада мәтіні өте әртүрлі хабарламаларды жаза бастады.

байланысты

Көпбөлімді/байланысты түрі әр хабарлама бөлігінің жиынтық тұтастың құрамдас бөлігі екенін көрсету үшін пайдаланылады. Бірнеше өзара байланысты компоненттерден тұратын күрделі объектілер үшін, құрамдас бөліктерді жеке-жеке көрсету арқылы дұрыс бейнелеуге қол жеткізу мүмкін емес. Хабарлама басқа бөліктерге сілтеме жасайтын түбірлік бөліктен (әдетте бірінші) тұрады, ол өз кезегінде басқа бөліктерге сілтеме жасай алады. Хабарлама бөліктері көбінесе Content ID арқылы сілтемеленеді. Сілтеменің синтаксисі белгіленбеген, оның орнына бөлікте қолданылатын кодтау немесе протоколмен анықталады. Осы типтің кең таралған қолданылуының бірі – бір хабарламада суреттерімен бірге толық веб-бетті жіберу. Түбірлік бөлік HTML құжатын қамтиды және кейінгі бөліктерде сақталған суреттерге сілтеме жасау үшін сурет тегтерін пайдаланады. Бұл тип RFC 2387 стандартында анықталған.

есеп беру

multipart/report – пошта сервері оқи алатын форматтағы деректерді қамтитын хабарлама түрі. Ол мәтін/жай (немесе басқа оңай оқылатын мазмұн/тип) және пошта сервері оқи алатын форматтағы деректерді қамтитын хабарлама/жеткізу мәртебесі бөліміне бөлінеді. Бұл тип RFC 6522 стандартында анықталған.

қол қойылған

Көпбөлімді/қол қойылған хабарлама хабарламаға цифрлық қолтаңба тіркеу үшін қолданылады. Онда дәл екі бөлік болады: мазмұн бөлігі және қолтаңба бөлігі. Мазмұн бөлігінің барлығы, мим өрістерін қоса алғанда, қолтаңба бөлігін жасау үшін пайдаланылады. Көптеген қолтаңба түрлері мүмкін, мысалы "application/pgp қолтаңбасы" (RFC 3156) және "application/pkcs7 қолтаңбасы" (S/MIME). Түрі RFC 1847 стандартында анықталған.

шифрланған

Көпбөлімді/шифрланған хабарлама екі бөліктен тұрады. Бірінші бөлікте екінші бөлімді – қосымша/октат ағынын шифрлау үшін қажетті басқару ақпараты болады. Қолтаңбаланған хабарламалар сияқты, басқару бөлігі үшін жеке мазмұн түрлерімен анықталатын әртүрлі іске асырылымдар бар. Ең көп таралған түрлері – "қосымша/pgp шифрланған" (RFC 3156) және "қосымша/pkcs7 mime" (S/MIME). MIME түрі RFC 1847 стандартында анықталған.

нысан-деректер

MIME түріндегі көпбөлімді/форма деректері нысан арқылы жіберілген мәндерді білдіру үшін қолданылады. Алғашында HTML 4.0 стандартында анықталған, көбінесе HTTP арқылы файлдарды жіберу үшін пайдаланылады. Бұл RFC 7578 стандартында сипатталған, RFC 2388 стандартын жаңартады. мысал

x-аралас-орындау

Мөлшерлі/x аралас алмастыру мазмұны HTTP арқылы серверлік итерілуді және ағынды таратуды имитациялау технологиясының бір бөлігі ретінде әзірленді. Аралас алмастыру хабарламасының барлық бөліктері бірдей семантикалық мағынаға ие. Дегенмен, әрбір бөлік толыққаннан кейін алдыңғы бөліктерді "құлатып", жаңалайды. Клиенттер жеке бөліктерді олар түскен кезде өңдеуі керек және хабарламаның толық аяқталуын күтуі қажет емес. Бастапқыда Netscape компаниясымен әзірленген, қазіргі күні Mozilla, Firefox, Safari және Opera қолдайды. Ол IP камераларда MJPEG ағыны үшін MIME түрі ретінде кеңінен қолданылады. Chrome браузері 2013 жылға дейін негізгі ресурстарды қолдады (суреттерді осы мазмұн түрін пайдаланып көрсетуге болады).

Байтеранж

Көпбөлімді/байтылық диапазон бір хабарламаның үзіліссіз емес байт диапазондыларын көрсету үшін қолданылады, ол HTTP сервер бірнеше байт диапазондыларын қайтарғанда пайдаланылады және RFC 2616 стандартында сипатталған.