Content-Transfer-Encoding Заголовок MIME с HTTP
У меня есть сомнения относительно отправки MIME-вложений по HTTP:
в спецификации http цитируется следующее:
"C.4 Нет Content-Transfer-Encoding: HTTP не использует поле Content-Transfer-Encoding (CTE) в RFC 1521. Прокси-серверы и шлюзы из MIME-совместимых протоколов в HTTP должны удалять любые не идентифицирующие CTE (" цитируемый кодирование "printable" или "base64") до доставки ответного сообщения клиенту HTTP. Прокси-серверы и шлюзы от HTTP до MIME-совместимых протоколов отвечают за обеспечение того, чтобы сообщение было в правильном формате, и за кодировку для безопасной передачи по этому протоколу, где "безопасная передача" определяется ограничениями используемого протокола. Такой прокси-сервер или шлюз должны пометить данные с помощью соответствующего Content-Transfer-Encoding, если это повысит вероятность безопасной передачи по протоколу назначения ".
Означает ли это, что специально для отправки MIME-вложений только по протоколу http мы не должны указывать кодировку передачи содержимого как кавычку-печатную или base64?
Кроме того, каково поведение кодирования с передачей содержимого, когда я отправляю такие вложения через другие транспорты, такие как JMS или по почте? Например, в сообщении SOAP через JMS?
Также найдены следующие актуальные из RFC 4130:
"5.2. Неиспользуемые заголовки MIME и операции 5.2.1. Content-Transfer-Encoding не используется в транспортном HTTP-протоколе HTTP может обрабатывать двоичные данные, поэтому нет необходимости использовать кодировки передачи содержимого MIME [1]. Эта разница обсуждается в [3], раздел 19.4.5. Однако допустимо, но не обязательно, двоичное или 8-битное значение кодирования передачи контента. Отсутствие этого заголовка НЕ ДОЛЖНО приводить к сбою транзакции. Также допускается кодирование передачи содержимого частей тела MIME в теле сообщения AS2 ".
Поэтому я в основном полностью сбит с толку поведением вложений mime, характерных для протокола HTTP, и хотел бы уточнить его поведение.
1 ответ
HTTP не MIME, он просто заимствует из формата сообщения MIME. Полезные данные в HTTP являются двоичными, и в них просто нет поля заголовка Content-Transfer-Encoding. Вы можете указать это, но это имеет нулевой эффект и продолжает отвлекать людей, смотрящих на следы проводов.