Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKsenia Dziekoński Został zmieniony 11 lat temu
1
MIME Multipurpose Internet Mail Extensions RFC 1521
Michał Rajkowski Jan Dudziec
2
Plan prezentacji Definicja MIME MIME, a inne RFC Format wiadomości
Pola nagłówka Typy zawartości Podsumowanie RFC MIME
3
Definicja MIME MIME - Multipurpose Internet Mail Extensions
- Standard poczty elektronicznej - Mechanizmy specyfikacji i opisu formatu zawartości wiadomości internetowych RFC 1521 Uzupełnia wcześniejsze publikacje i rozszerza standardy o mechanizmy pozwalające na przesyłanie różnych typów zawartości RFC MIME
4
Wcześniejsze publikacje (1)
RFC 822 – Standard opisujący format wiadomości internetowych (1982r.) Treść: - Protokół reprezentacji wiadomości - Specyfikacja nagłówka - Format i zawartość wiadomości – 7 bitowy kod ASCII Wady: - wiadomości tekstowe – brak formatowania (czcionek itp) - wiadomości nie tekstowe – odrzucane lub konwertowane na ASCII -> utrata informacji RFC MIME
5
Wcześniejsze publikacje (2)
RFC 1341 i RFC 1342 – pierwsze publikacje i definicje MIME RFC MIME (Multipurpose Internet Mail Extensions): Mechanisms for Specifying and Describing the Format of Internet Message Bodies RFC Representation of Non-ASCII Text in Internet Message Headers RFC 1521 zostało wprowadzone, aby zastąpić RFC 1341, RFC 1342. RFC MIME
6
RFC 1521 RFC MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies Zmiana formatu wiadomości Opis mechanizmów pozwalających na przesyłanie obiektów różnego typu bez straty informacji Zawartość specyfikacji: Version Header Field Content-Type Header Field Content-Transfer-Encoding Header Field Additional Content-Header Fields Content-ID Header Field Content-Description Header Field RFC MIME
7
Format wiadomości HEADER { BODYPART Bodypart header {
MIME-version: 1.0 Content-type: multipart/mixed; boundary="frontier" This is a multi-part message in MIME format. --frontier Content-type: text/plain Content-type: application/octet-stream Content-transfer-encoding: base64 Pgh0bWw+CiAgPGhlYWQ+CiAgPC9oZWF kPgogIDxib2R5PgogICAgPHA+VGhpcyBpc yB0aGugYm9keSBvZiB0aGUgbWVzc2FnZ S48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg= --frontier-- BODYPART Bodypart header { Bodypart header { Body { RFC MIME
8
MIME-Version Header Field
Nowe pole nagłówka Określa numer wersji formatu zawartości wiadomości Wartość dla standardu zgodnego z RFC1521: Ogólna postać: MIME-Version: 1.0 version := "MIME-Version" ":" 1*DIGIT "." 1*DIGIT RFC MIME
9
Content-Type Header Field
content := "Content-Type" ":" type "/" subtype *(";" parameter) type := "application" / "audio" / "image" / "message"/ "multipart" / "text" / "video" / extension-token extension-token := x-token / iana-token iana-token := <publiczny i zarejestrowany w IANA> x-token := < "X" -token or "x" -token> subtype := token parameter := attribute "=" value attribute := token value := token token := 1*<any (ASCII) CHAR except SPACE, CTLs, or tspecials> tspecials := "(" / ")" / "<" / ">" / "," / ";" / ":" / "\" “<">"/" / "[" / "]" / "?" / "=" Pole zdefiniowane po raz pierwszy w RFC 1049 Określa typ danych zawartych w ciele wiadomości Jest zbiorem parametrów Parametry obowiązkowe: TYP i PODTYP Typ- rodzaj zawartości: text,multipart,application, message, audio,video, image, experimental Podtyp- np. format Przykład: “ image/jpg” RFC MIME
10
Content-Transfer-Encoding Header Field
encoding := "Content-Transfer-Encoding" ":"mechanism Nowo zdefiniowane pole Wskazuje typ transformacji ciała wiadomości użyty na potrzeby transportu wiadomości Domyślna wartość - “7bit” Część nagłówka wiadomości i nagłówka ciała wiadomości mechanism := "7bit" "quoted-printable" "base64" "8bit" "binary" x-token Przykład: Content-Type: text/plain; charset=ISO Content-transfer-encoding: base64 RFC MIME
11
Content-Transfer-Encoding Header Field
“7bit”,”8bit”,”binary” => brak kodowania Quoted-printable Standardowo do przesyłania tekstu Drukowalne znaki ASCII Znaki o kodach >127 -> 3 znaki Przykład: Ó (ISO ) => “=F3” Base64 stosowany głownie do plików binarnych (grafika, dźwięk) możliwy do zastosowania także dla zwykłego tekstu RFC MIME
12
Content-Transfer-Encoding Header Field
The Base64 Alphabet RFC MIME
13
Additonal Content-Header Fields
Optional Content-ID Header Field Etykieta zawartości Analogiczne wykorzystanie jak “Message-ID” Obowiązkowy dla typu “message/external-body” Optional Content-Description Header Field Opisowe informacje Standardowo w postaci US-ASCII, RFC-1522 posiada mechanizm pozwalający na korzystanie z innego kodowania niż US-ASCII Przykład: Description := “Content-Description “:” *text RFC MIME
14
Typy zawartosći Text Multipart Message Application Image Audio Video
Experimental RFC MIME
15
TEXT Zasadniczo do przesyłania zawartości tekstowej
CHARSET - krytyczny parametr używany do zdefiniowania podtypów Domyślnie - “text/plain;charset=us-ascii” Zdefiniowane wartości charset: US-ASCII, ISO-8859-X Przykład: text-type := "text" "/" text-subtype [";" "charset" "=" charset] text-subtype := "plain" charset := "us-ascii"/ "iso "/ "iso "/ "iso " / "iso "/ "iso "/ "iso "/ "iso " / "iso " / "iso " RFC MIME
16
MULTIPART Umożliwia przesyłanie kilku różnych typów danych w 1 wiadomości Każda część to osobne “bodypart” z osobnym nagłówkiem Enkapsulacja- każda część oddzielona granicami boundary := 0*69<bchars> bcharsnospace W przypadku wystapienia średnika „:” - Dozwolone kodowania- “7bit”, “8bit”, “binary” Podtyp: “mixed” (podstawowy),“alternative”, “digest”, ”parallel” Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08jU534c0p RFC MIME
17
MULTIPART-przykład From: Nathaniel Borenstein <nsb@bellcore.com>
To: Ned Freed Subject: Formatted text mail MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=boundary42 --boundary42 Content-Type: text/plain; charset=us-ascii ---TEKST niesformatowany---- Content-Type: text/richtext ---TEKST w fromacie richtext--- Content-Type: text/x-whatever --Oryginalna postać tekstu---- --boundary42-- RFC MIME
18
MESSAGE Dołączenie innej wiadomości
Możliwe podtypy: “rfc822”, “partial” , “external- body” Wymaga kodowania “7bit”, “8bit”,”binary” Message header: us-ascii (zawsze) Partial – umożwilia przesyłanie duży obiektów podzielonych na części (łączenie po “content-id”) External-body-obowiązkowy parametr “acces-type” Parametry opcjonalne: “expiration”, “size”,”permission”, “name”,”site”, “directory”,”mode”, “server”,”subject” RFC MIME
19
MESSGE-przykład 1 X-Weird-Header-1: Foo From: Bill@host.com
To: Subject: Audio mail Message-ID: MIME-Version: 1.0 Content-type: message/partial; number=1; total=2 X-Weird-Header-1: Bar X-Weird-Header-2: Hello Message-ID: Content-type: audio/basic Content-transfer-encoding: base64 Message-ID: number=2; total=2 RFC MIME
20
Message-przykład 2 From: Whomever To: Someone Subject: whatever
MIME-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary=42 Content-ID: --42 Content-Type: message/external-body; name="BodyFormats.ps"; site="thumper.bellcore.com"; access-type=ANON-FTP; directory="pub"; mode="image"; expiration="Fri, 14 Jun :13: (EDT)" Content-type: application/postscript Content-ID: access-type=mail-server get RFC-MIME.DOC --42-- RFC MIME
21
APPLICATION Przesyłanie danych nie zakwalifikowanych do pozostałych kategorii Przetwarzanie zawartosci przed pokazaniem jej uzytkownikowi Podtypy: “octet-stream”(dane binarne), “Postscript”(program napisany w jezyku Postscript/Postscript2 – Adobe Systems Inc.) “octet-stream” - parametry: “type”, “padding” Kolejne typy mają być zdefiniowane w przyszłości RFC MIME
22
IMAGE, AUDIO, VIDEO IMAGE Do przesyłania obrazów
Podtyp- format obrazu: “jpeg”, “gif” itp. AUDIO Podstawowy podtyp “basic”- kodowanie 8 bitowe [PCM] VIDEO Do przesyłania plików video (dopuszczalnie z dźwiękiem) Podtyp- format video: “mpeg” RFC MIME
23
EXPERIMENTAL Eksperymentalne podtypy Zaczynają się na “X-”
Formaty bez jednoznacznej i publicznej definicji Prywatne wartości Odradza się tworzenie nowych typów – powinno się stosować rozszerzanie już istniejących RFC MIME
24
Zasady korzystania z MIME
Agent pocztowy używający MIME musi: Zawsze tworzyć pole “"MIME-Version: 1.0"” Rozpoznawać “Content-Transfer-Encoding” i przeprowadzić odpowiednie dekodowanie Rozpoznawać i odpowiednio prezentować dane inne niż “text” “Text”- wyświetlać za pomocą US-ASCII, jak nie zna podtypu to prezentować nieprzetworzone dane, rozpoznawać “charset”, rozpoznawać “ISO-8859-X” “Message”- rozpoznawać podtyp “822” “Multipart”- rozpoznawać podtyp “mixed” i “alternative” “Application”- rozpoznawać podtyp i umieszczać zawartość w pliku RFC MIME
25
Podsumanie MIME jest powszechnie stosowanym standardem do przesyłania i przetwarzania wiadomości RFC 1521 jest pierwszym i podstawowym dokumentem opisującym przesyłanie różnych typów wiadomości Dalsze wersje: RFC Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies RFC 2046-Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types RFC MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text RFC 2048-Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures RFC 2049-Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples RFC MIME
26
Pytania na kolokwium W przypadku stosowania Quoted-printable, co się dzieje gdy mamy znak o wartości większej od 127 Nie jest on przesyłany Jest kodowany za pomocą 3 znaków Ani a), ani b) Co jest typem podstawowym dla Multipart? Parallel Mixed Digest Czy możemy ustawić (dla typu zawartości Message) message header inny niż us-ascii? Tak, jeżeli użyjemy kodowania 7 bit Tak, jeżeli użyjemy kodowania 8bit lub binary RFC MIME
27
Dziękujemy za uwagę. RFC MIME
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.