Шаг 2 - О RFC 822

Данный документ описывает стандарт APRA INTERNET сообщений. Создан он в 1982 году.

Сообщение состоит из строк текста. Нет никаких условий для таблиц, рисунков и так далее. Нет никакого сжатия или замены полей кодами. Синтаксис полей жестко определен в заголовочной секции.

Сообщение состоит из заголовка и тела. Тело это просто последовательность строк ASCII, которое выделяется из заголовка нулевой линией CRLF.

Область загаловка должна формироваться символами ASCII от 33 до 126, а область тела из любых символов кроме CR или LF.

Область заголовка можно представить как линии ASCII. Вот пример из почты.

References: <003e01bf624a$034c57a0$ab95fea9@uuobat>
Subject: Re: 
Date: Wed, 19 Jan 2000 08:16:31 +0300

Каждое поле область имеет имя. Это имя ограничего символом ":" (двоеточие). Вот пример двух полей FROM и TO. Дальше идет содержание и возврат каретки.

From: <aaa@mail.ru>
To:   <bbb@mail.ru>

Само заполнение поля может быть не структуризированно, как в случае с Subject: например. Другие поля могут быть структуризированными.

Разбор строится анализатором, и вот на чем он основываеться:

		; (  Octal, Decimal.)
CHAR	=	; (  0-177,  0.-127.)
ALPHA	=	; (101-132, 65.- 90.)
		; (141-172, 97.-122.)
DIGIT	=	; ( 60- 71, 48.- 57.)
CTL	=	; (  0- 37,  0.- 31.)
		; (    177,     127.)
CR	=	; (     15,      13.)
LF	=	; (     12,      10.)
SPACE	= 	; (     40,      32.)
HTAB	=	; (     11,       9.)
<">	=	; (     42,      34.)
CRLF	=	CR LF
specials	=	"(" / ")" / " < " / " > " / "@"  	 ; 
		/  "," / ";" / ":" / "\" / < ">  ;  
		/  "." / "[" / "]"              ;  
и так далее 
.......

Оговаривается заключение в скобки.

<  ffffff   >

fffff - Определяет адресную ссылку, например, адрес электронной почты. Дальше оговариваются поля.

RFC 822 описывает все эти подробности. На данный момент наверно всё это не очень нужно. Вот только главное из этого нужно извлечь. Сервер и клиент HTTP обмениваются между собой данными используя сообщения такого рода. Есть заголовок. Есть поле сообщения. Нам необходимо научиться получать и отправлять сообщения с заголовками, и использовать эти заголовки для получения информации приминительно к HTTP. Клиент всегда посылает заголовок серверу при запросе информации и сервер всегда пересылает информацию с заголовком. Вот пример заголовка для запроса серверу.

GET /data/cat/cat.htm /1.0
Accept: text/thml
Accept: *.*
User-Agent: Mozilla/2.0

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.