Протокол HTTP 1.1
Категория реферата: Рефераты по коммуникации и связи
Теги реферата: мировая экономика, bestreferat
Добавил(а) на сайт: Jakimenko.
Предыдущая страница реферата | 7 8 9 10 11 12 13 14 15 16 17 | Следующая страница реферата
В канонической форме медиаподтипы типа "text" используют CRLF в
качестве метки конца строки. HTTP ослабляет это требование и позволяет
передавать текст размеченный таким образом, что еденичные CR или LF могут
быть метками конца строки, правда это правило должно быть выполнено для
всего тела объекта (entity-body). HTTP приложения должны воспринимать CRLF, просто CR и просто LF как представление конца строки в текстовых типах, переданных по HTTP. Кроме того, если текст представляется в кодовой
таблице, которая не использует октеты 13 и 10 для CR и LF соответственно, что имеет место в некоторых многобайтовых кодовых таблицах, то HTTP
позволяет использовать любые последовательности октетов, определенные этим
набором символов для представления эквивалентов CR и LF в качестве кода
конца строки. Эта гибкость в отношении концов строк применима только к
текстовым типам в теле объекта; просто CR или просто LF не должны заменять
CRLF внутри любой управляющей структуры HTTP (например поля заголовка и
разделителей типа multipart).
Если тело объекта кодируется при помощи Content-Encoding, то основные данные должны быть в определенной выше форме до кодирования.
Параметр "charset" используется с некоторыми медиатипами для указания
кодовой таблицы, используемой для представления данных. Если параметр
"charset" не указан отправителем, то при получении по HTTP медиаподтипы
типа "text" имеют значение "charset", по умолчанию равное "ISO-8859-1".
Данные в кодовых таблицах или их подмножествах, отличных от "ISO-8859-1", должны быть помечены соответствующим значением "charset".
Некоторое программное обеспечение HTTP/1.0 неправильно интерпретировало заголовок Content-Type без параметра "charset", как означающее "должен предположить получатель". Отправители, желающие предусмотреть такое поведение могут включать параметр "charset" даже когда charset равен ISO-8859-1 и должны сделать это, если известно, что это не запутает получателя.
К сожалению, некоторые старые HTTP/1.0 клиенты не работали правильно с определением параметра "charset". HTTP/1.1 получатели должны отдавать приоритет метке "charset", поставленной отправителем; и те агенты пользователей, которые имеют возможность "предположить" charset должны при первоначальном отображении документа использовать charset из поля content- type, если они поддерживают такой charset, а затем использовать собственные установки.
3.7.2 Типы Multipart.
MIME предусматривает ряд типов "multipart" - формирующих пакет из
одного или нескольких объектов внутри тела одного сообщения. Все типы
mulptipart используют общий синтаксис, определеный в MIME, и должны
содержать разделительный параметр частью значения медиатипа. Тело сообщения
- самостоятельный элемент протокола и, следовательно, должно использовать
только СRLF для представления концов строк между частями тела (body-parts).
В отличие от MIME, заключение (epilogue) любого multipart сообщения должно
быть пустым; HTTP приложения не должны передавать заключение (даже если
первоначальный multipart содержит заключение).
В HTTP части тела (body-parts) типа multipart могут содержать поля заголовка, которые являются значащими в примнении к этой части. Поле заголовка Content-Location следует включать в часть тела (body-part) каждого включенного объекта, который может быть идентифицирован URL.
Вообще говоря, HTTP агенту пользователя належит действовать так же
как поступил бы MIME агент пользователя после получения типа multipart.
Если приложение получает незарегистрированный подтип multipart, оно должно
обрабатывать его как подтип "multipart/mixed".
Тип "multipart/form-data" был специально определен для передачи данных
формы, подходящих для обработки методом запроса POST, что описано в RFC
1867.
3.8 Маркеры продуктов (Product Tokens).
Маркеры продуктов используются, чтобы обеспечить коммуникационным приложениям возможность идентифицировать себя названием и версией программного обеспечения. Большинство полей, использующих маркеры продуктов также допускает перечисление подпрограмм, которые формируют значительную часть приложения, и которые перечисляются через пробел. В соответствии с соглашением, подпрограммы перечисляются в порядке их значения для идентификации приложения.
product = token ["/" product-version] product-version = token
Примеры:
User-Agent: CERN-LineMode/2.15 libwww/2.17b3 Server: Apache/0.8.4
Маркеры продуктов должны быть короткими и по сути - использование их для рекламы или другой несущественной информации однозначно запрещено. Хотя в лексеме product-version может встречаться любой символ, все же ее следует использовать только для идентификатора версии (то есть, последовательным версиям одной и той же программы надлежит иметь отличия только в части product-version лексемы product.
3.9 Величины качества (Quality Values).
HTTP использует короткие числа "с плавающей точкой" для указания относительной важности ("веса") различных оговоренных параметров. Вес - это нормализованое вещественное число в диапазоне от 0 до 1, где 0 - минимальное, а 1 - максимальное значение. HTTP/1.1 приложения не должны генерировать более трех цифр после десятичной точки. Пользовательским конфигурациям этих значений следует также ограничиваться этим режимом.
qvalue = ( "0" [ "." 0*3DIGIT ] ) | ( "1" [ "." 0*3("0") ] )
"Величины качества" - не корректное название, так как эти значения просто представляют отношение снижения производительности к желательному качеству.
3.10 Метки языков (Language Tags).
Метка языка идентифицирует естественный язык: разговорный, письменный, или другой используемый людьми для обмена информацмей с другими людьми.
Машинные языки являются исключением. HTTP использует метки языков внутри
полей Accept-Language и Content-Language.
Синтаксис и запись меток языка в HTTP те же, что определены в RFC
1766. То есть, метка языка состоит из одной или нескольких частей: метка
первичного языка и, возможно пустой, ряд подчиненных меток:
language-tag = primary-tag *( "-" subtag )
primary-tag = 1*8ALPHA subtag = 1*8ALPHA
Рекомендуем скачать другие рефераты по теме: бесплатные рефераты, изложение 4 класс.
Предыдущая страница реферата | 7 8 9 10 11 12 13 14 15 16 17 | Следующая страница реферата