Extindere Mime pentru codificare, altele decât ascii - rețele de calculatoare

Extensie MIME pentru codare diferită de ASCII

De la: [email protected]
Asta: [email protected]
Subiect: Imagine a crepei delicioase.
Versiunea MIME: 1.0
Content-Transfer-Encoding: base64
Tip de conținut: imagine / jpeg

(date codate base64 ... ..

.... baza64 date codificate)

Din mesajul de mai sus, puteți afla că agentul de utilizator Alice a codat imaginea JPEG de bază64. Această metodă este standardizată de RFC 2045 ca modalitate de a converti codarea ASCII pe 7 biți.

O altă metodă de codare frecvent utilizată este conversia datelor codate ASCII pe 8 biți (de obicei, simbolurile alfabetelor naționale) în cele de 7 biți.

Să ne uităm la linia de antet Content-Type: header. Conform specificației MIME specificată în RFC 2046, formatul șirului este următorul:

Tip de conținut: tip / subtip; parametrii

Parametrii sunt parametri opționali. Conform specificațiilor, șirul de tip Content-Type: este utilizat pentru a specifica tipul de date transmise în mesaj și constă în nume de tip și subtip. În plus, șirul poate conține parametri destinați unei subtipuri rafinate și nu are un efect semnificativ asupra interpretării datelor. Desigur, fiecare subtip definește propriul set de parametri. Dezvoltarea MIME a fost realizată cu așteptarea extinderii viitoare și este posibil ca numărul de posibile perechi de tipuri și subtipuri să crească semnificativ în curând. Pentru a ordona cumva dezvoltarea de noi tipuri și subtipuri, MIME prevede necesitatea de a se înregistra la IANA (Internet Assigned Numbers Authority). Procesul de înregistrare este descris în RFC 2048.

În prezent, există șapte tipuri principale de date. Pentru fiecare tip de date, există un număr de subtipuri, numărul cărora crește rapid în fiecare an. Mai jos sunt descrise trei dintre cele șapte tipuri.

□ text. Acest tip indică agentului destinatarului că corpul mesajului conține informații text. Un tip / subtip foarte comun este text / simplu. Subtipul simplu înseamnă text simplu, adică textul nu conține comenzi sau directive de formatare. Acest text trebuie afișat "așa cum este"; Nu este necesar un software special pentru acest lucru. Singura condiție pentru afișarea corectă a textului este suportul pentru codarea de caractere utilizată. Dacă vă uitați la anteturile MIME ale mesajelor stocate în căsuța poștală, veți găsi aproape sigur următoarele linii: text / simplu; charset = "IS0-8859-l". Parametrii indică numele tabelului de simboluri utilizat pentru a crea textul. O altă pereche comună este text / html. Subtipul html indică faptul că cititorul de e-mail trebuie să interpreteze etichetele incluse în mesaj. Acest lucru vă permite să afișați mesajul sub forma unei pagini web care conține diferite fonturi, hyperlink-uri, appleturi și așa mai departe.

□ imagine. Acest tip indică faptul că informațiile din corpul mesajului sunt o imagine. Cele două perechi cele mai comune de tip / subtip pentru imagini sunt imaginea / gif și imaginea / jpeg. Recunoscând fiecare dintre aceste subtipuri, agentul utilizator aplică metoda de decompresie corespunzătoare a imaginii.

□ aplicație. Acest tip este pentru toate datele care nu pot fi atribuite celorlalte șase tipuri. De regulă, datele care sunt destinate prelucrării prin diverse programe de aplicații intră aici. De exemplu, dacă includeți un document Microsoft Word în mesajul dvs., agentul expeditorului îi va atribui o pereche ar-plication / msword. La procesarea mesajului, agentul destinatarului va apela Microsoft Word și îi va da datele decodificate.

Există un alt tip MIME foarte important, care merită luat în considerare separat și se numește multipart. La fel cum o pagină web poate include diferite tipuri de date (text, imagini, appleturi etc.), corpul mesajului poate consta și în informații eterogene. Rețineți că protocolul HTTP trimite fiecare obiect într-un mesaj separat de răspuns; secvența mesajelor de răspuns poate fi transmisă prin una sau mai multe conexiuni TCP, în funcție de tipul de conexiune (permanentă sau non-permanentă). SMTP, pe de altă parte, plasează toate obiectele (componentele) în corpul unui singur mesaj. În cazul în care mesajul conține mai multe obiecte (de exemplu, mai multe imagini, text și imagini, etc.), îi este atribuită o pereche de tip / subtip multipartit / amestecat. Pentru a procesa corpul unui astfel de mesaj, agentul utilizator are nevoie de informații despre locul în care se află începutul și sfârșitul fiecărui obiect, ce metode se codifică obiectele și ce tipuri și subtipuri de date conținute în obiecte. Structura unui mesaj compus conține simboluri speciale de separare inserate între obiecte și anteturile Content-Type: și Content-Transfer-Encoding: înainte de începerea datelor fiecărui obiect.

Pentru a înțelege mai bine principiul organizării unui mesaj compozit, luați în considerare următorul exemplu. Permiteți lui Alice să trimită o scrisoare lui Bob care conține două fragmente de text ASCII, precum și o imagine JPEG între aceste fragmente. Cu ajutorul agentului său, Alice intră în primul fragment de text, apoi atașează imaginea și intră în cel de-al doilea fragment de text. După comanda de trimitere, agentul generează un mesaj similar cu următorul:

De la: [email protected]
Asta: [email protected]
Subiect: Imagine a crepei delicioase cu comentarii
Versiunea MIME: 1.0
Tipul de conținut: multipart / mixt; Boundary = StartOfNextPart

-StartOfNextPart
Dragă Bob.
Găsiți o imagine a unei crepuri absolut scrupuloase.
-StartOfNextPart
Content-Transfer-Encoding: base64
Tip de conținut: imagine / jpeg

baze de date codificate 64 ... ..

.... baza64 date codificate
-StartOfNextPart
Dați-mi voie să știu dacă doriți rețeta.

După cum puteți vedea, primul rând al antetului Content-Type: indică secvența de caractere utilizate pentru a separa părțile diferite ale mesajului. Secvența de separare începe întotdeauna cu simbolurile

Răspunderea, pentru toate modificările aduse sistemului la sfatul acestui articol, vă asumați.