Является ли Content-Transfer-Encoding заголовком HTTP?

Я пишу веб-службу, которая возвращает файл PDF с кодировкой base64, поэтому мой план состоит в том, чтобы добавить в ответ два заголовка:

Content-Type: application/pdf
Content-Transfer-Encoding: base64

Мой вопрос: Является ли Content-Transfer-Encoding допустимым HTTP-заголовком? Я думаю, это может быть только для MIME. Если нет, как я должен обрабатывать свой HTTP-ответ, чтобы представить факт, что я возвращаю PDF-код в формате base64? Спасибо.

EDIT:

Похоже, что HTTP не поддерживает этот заголовок. Из RFC2616 Раздел 14:

Примечание: хотя определение Content-MD5 точно так же для HTTP как в RFC 1864 для объектов-объектов MIME, существует несколько способов применение сущностей-объектов Content-MD5 к HTTP отличается от приложение к объектам MIME. Один из них заключается в том, что HTTP, в отличие от MIME, делает не использовать Content-Transfer-Encoding и использует Transfer-Encoding и Content-Encoding.

Любые идеи, для чего я должен был установить свои заголовки? Спасибо.

РЕДАКТИРОВАТЬ 2

Многие примеры кода, найденные в комментариях этой страницы справочника PHP, похоже, предполагают, что это действительно допустимый HTTP-заголовок:

http://php.net/manual/en/function.header.php

Ответ 1

Согласно RFC 1341 (устарел RFC 2045):

Поле заголовка Content-Transfer-Encoding, которое можно использовать для укажите вспомогательную кодировку, которая была применена к данным, чтобы разрешить ему проходить через механизмы транспорта почты, которые могут иметь данных или ограничений набора символов.

и позже:

Многие типы контента, которые могут быть полезны для транспортировки по электронной почте представлены в их "естественном" формате в виде 8-битного символа или двоичные данные. Такие данные не могут передаваться по некоторым транспортным средствам протоколы. Например, RFC 821 ограничивает почтовые сообщения 7-битными Данные US-ASCII с 1000 символами.

Поэтому необходимо определить стандартный механизм для перекодирование таких данных в 7-битный короткий формат. (...) Поле Content-Transfer-Encoding используется для указания типа преобразование, которое использовалось для представления тела приемлемым образом для транспорта.

Поскольку у вас есть веб-сервис, который не имеет ничего общего с электронной почтой, вы не должны использовать этот заголовок.

Вы можете использовать заголовок Content-Encoding, который указывает, что перенесенные данные были сжаты (значение gzip).

Я думаю, что в вашем случае

Content-Type: application/pdf

. Кроме того, вы можете установить заголовок Content-Length, но, на мой взгляд, если вы строите webservice (это не сервер http/proxy server), то Content-Type достаточно. Пожалуйста, имейте в виду, что некоторые конкретные заголовки (например, Transfer-Encoding), если они не используются надлежащим образом, могут вызвать непредвиденные проблемы связи, поэтому, если вы не на 100% уверены в использовании какого-либо заголовка - если вам это действительно нужно или просто - t использовать его.