|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Множественное содержимое
Основная статья: MIME Протокол HTTP поддерживает передачу нескольких сущностей в пределах одного сообщения. Причём сущности могут передаваться не только в виде одноуровневой последовательности, но в виде иерархии с вложением элементов друг в друга. Для обозначения множественного содержимого используются медиатипы multipart/*. Работа с такими типами осуществляется по общим правилам, описанным в RFC 2046 (если иное не определено конкретным медиатипом). Если получателю не известно как работать с типом, то он обрабатывает его так же, как multipart/mixed. Параметр boundary означает разделитель между различными типами передаваемых сообщений. Например передаваемый из формы параметр DestAddress передает значение e-mail адреса, а последущий за ним элемент AttachedFile1 отправляет двоичное содержимое изображения формата.jpg Со стороны сервера сообщения со множественным содержимым могут посылаться в ответ на частичные GET при запросе нескольких фрагментов ресурса. В этом случае используется медиатип multipart/byteranges. Со стороны клиента при отправке HTML-формы чаще всего пользуются методом POST. Типичный пример: страницы отправки электронных писем со вложенными файлами. При отправке такого письма браузер формирует сообщение типа multipart/form-data, интегрируя в него как отдельные части, введённые пользователем, тему письма, адрес получателя, сам текст и вложенные файлы: POST /send-message.html HTTP/1.1Host: mail.example.comReferer: http://mail.example.com/send-message.htmlUser-Agent: BrowserForDummies/4.67bContent-Type: multipart/form-data; boundary="Asrf456BGe4h"Content-Length: (суммарный объём, включая дочерние заголовки) Connection: keep-aliveKeep-Alive: 300 (пустая строка)(отсутствующая преамбула) --Asrf456BGe4hContent-Disposition: form-data; name="DestAddress" (пустая строка) brutal-vasya@example.com—Asrf456BGe4hContent-Disposition: form-data; name="MessageTitle" (пустая строка) Я негодую—Asrf456BGe4hContent-Disposition: form-data; name="MessageText" (пустая строка) Привет, Василий! Твой ручной лев, которого ты оставилу меня на прошлой неделе, разодрал весь мой диван.Пожалуйста, забери его скорее!Во вложении две фотки с последствиями.--Asrf456BGe4hContent-Disposition: form-data; name="AttachedFile1"; filename="horror-photo-1.jpg"Content-Type: image/jpeg (пустая строка)(двоичное содержимое первой фотографии) --Asrf456BGe4hContent-Disposition: form-data; name="AttachedFile2"; filename="horror-photo-2.jpg"Content-Type: image/jpeg (пустая строка)(двоичное содержимое второй фотографии) --Asrf456BGe4h-- (отсутствующий эпилог)В примере в заголовках Content-Disposition параметр name соответствует атрибуту name в HTML-тегах <INPUT> и <TEXTAREA>. Параметр filename равен исходному имени файла на компьютере пользователя. Более подробная информация о формировании HTML-форм и вложении файлов в RFC 1867. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |