Каковы все возможные значения для заголовка HTTP Content-Type?
Мне нужно проверить значение заголовка Content-Type
, прежде чем передавать его в HTTP-запрос.
Существует ли конкретный список для всех возможных значений Content-Type
?
В противном случае существует способ проверки типа содержимого перед его использованием в HTTP-запросе?
Ответы
Ответ 1
Вы можете найти каждый тип контента здесь: http://www.iana.org/assignments/media-types/media-types.xhtml
Наиболее распространенный тип:
-
Тип приложения
application/EDI-X12
application/EDIFACT
application/javascript
application/octet-stream
application/ogg
application/pdf
application/xhtml+xml
application/x-shockwave-flash
application/json
application/ld+json
application/xml
application/zip
-
Введите аудио
audio/mpeg
audio/x-ms-wma
audio/vnd.rn-realaudio
audio/x-wav
-
Введите изображение
image/gif
image/jpeg
image/png
image/tiff
image/vnd.microsoft.icon
image/x-icon
image/vnd.djvu
image/svg+xml
-
Тип multipart
multipart/mixed
multipart/alternative
multipart/related (using by MHTML (HTML mail).)
-
Введите текст
text/css
text/csv
text/html
text/javascript (obsolete)
text/plain
text/xml
-
Введите видео
video/mpeg
video/mp4
video/quicktime
video/x-ms-wmv
video/x-msvideo
video/x-flv
video/webm
-
Тип VND:
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.graphics
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.mozilla.xul+xml
Ответ 2
Как определяется в RFC 1341:
В расширенной нотации BNF RFC 822 поле заголовка Content-Type значение определяется следующим образом:
Content-Type: = type "/" подтип * [ ";" параметр]
type: = "application "/" audio" /"image "/" message" /"multipart "/" text" / "video" /x -token
x-токен: = < Последовали два символа "X-", без пробел пробела, любым значком >
подтип: = токен
параметр: = атрибут "=" значение
атрибут: = токен
значение: = токен/кавычка
токен: = 1 *
tspecials: = "( "/" ) "/" < "/" > "/" @"; Должно быть в /", "/" ; "/" : "/" \"/<" > , строка с кавычками, / "/" /"[ "/" ] "/" ? "/" ."; использовать в знак равно значения параметров
И список известных типов MIME, которые могут следовать за ним (или, как замечает Джо, источник IANA).
Как вы можете видеть, список слишком велик для вас, чтобы проверить его на всех. То, что вы можете сделать, это проверить на общий формат и атрибут type
, чтобы убедиться, что это правильно (набор параметров невелик), и просто предположите, что то, что следует за ним, является правильным (и, конечно, поймать любые исключения, с которыми вы можете столкнуться, когда вы положили его на фактическое использование).
Также обратите внимание на комментарий выше:
Если по какой-либо причине будет использоваться другой первичный тип, ему должно быть присвоено имя, начинающееся с "X-", чтобы указать его нестандартный статус и избежать любого потенциального конфликта с будущим официальным именем.
Вы заметите, что многие HTTP-запросы/ответы содержат заголовок X-
определенного типа, который определяется самим собой, помните об этом при проверке типов.
Ответ 3
Заголовок Content-Type в HTTP-запросе или ответе описывает содержимое
для тела сообщения. Заголовок Accept в запросе сообщает серверу
типы содержимого, ожидаемые клиентом в теле ответа. Типы содержимого
представленный с использованием типа интернет-носителя. Тип интернет-носителя (также известный как
тип MIME) указывает тип данных, которые содержит файл. Вот пример:
Content-Type: text/html
Этот заголовок указывает, что содержимое тела представлено в формате html.
формат значений типа контента является основным типом/подтипом, за которым следует необязательный
пары значений атрибута с разделителями с запятой (известные как параметры).
Типы интернет-СМИ широко классифицируются по следующим категориям на основе первичного (или начального) заголовка Content-Type:
- текст. Этот тип указывает, что содержимое является простым текстом, и для чтения содержимого не требуется специальное программное обеспечение. Подтип представляет более конкретные сведения о содержимом, которые могут быть использованы клиентом для специальной обработки, если таковые имеются. Например, Content-Type: text/html указывает, что содержимое тела - html, и клиент может использовать этот подсказку для запуска механизма рендеринга при отображении ответа.
- multipart. Как видно из названия, этот тип состоит из нескольких частей независимых типов данных. Например, Content-Type: multipart/form-data используется для отправки форм, содержащих файлы, данные, отличные от ASCII, и двоичные данные.
- сообщение. Этот тип инкапсулирует больше сообщений. Он позволяет сообщениям содержать другие сообщения или указатели на другие сообщения. Например, тип Content-Type: message/partial content позволяет разбить большие сообщения на более мелкие сообщения. Затем полное сообщение может быть прочитано клиентом (пользовательским агентом), помещая все сломанные сообщения вместе.
- image. Этот тип представляет данные изображения. Например, Content-Type: image/png указывает, что содержимое тела является .png-изображением.
- аудио. Этот тип указывает аудиоданные. Например, Content-Type: audio/mpeg указывает, что содержимое тела является MP3 или другим аудио MPEG.
- видео. Этот тип указывает видеоданные. Например, Content-Type:, video/mp4 указывает, что контент тела - видео MP4.
- приложение. Этот тип представляет данные приложения или двоичные данные. Например, Content-Type: application/json; charset = utf-8 обозначает содержимое, которое должно быть в формате JavaScript Object Notation (JSON), закодированном с кодировкой символов UTF-8.
Чтобы обратиться к полному списку, посетите веб-сайт Администрирование номеров Интернета (IANA) Типы мультимедиа
Ответ 4
Я бы постарался охватить подмножество возможных значений типа "контент-тип", вопрос, по-видимому, фокусируется на определении известных типов контента.
@Jeroen RFC 1341 замечательно, но для довольно исчерпывающего списка IANA сохраняет
веб-страница официально зарегистрированных типов носителей здесь.
Ответ 5
Если вы используете jaxrs или любой другой, то перед отправкой запроса и сравнением его с этим будет класс, называемый mediatype.User-перехватчик.
Ответ 6
Поместите этот код для получения типа содержимого во время выполнения:
vb.net:
dim ContentType = Web.MimeMapping.GetMimeMapping("c:\MyArchive.zip")
или
dim ContentType = Web.MimeMapping.GetMimeMapping(".zip")