Подтвердить что ты не робот

Каковы все возможные значения для заголовка HTTP Content-Type?

Мне нужно проверить значение заголовка Content-Type, прежде чем передавать его в HTTP-запрос.

Существует ли конкретный список для всех возможных значений Content-Type?

В противном случае существует способ проверки типа содержимого перед его использованием в HTTP-запросе?

4b9b3361

Ответ 1

Вы можете найти каждый тип контента здесь: http://www.iana.org/assignments/media-types/media-types.xhtml

Наиболее распространенный тип:

  1. Тип приложения

    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  
    
  2. Введите аудио

    audio/mpeg   
    audio/x-ms-wma   
    audio/vnd.rn-realaudio   
    audio/x-wav   
    
  3. Введите изображение

    image/gif   
    image/jpeg   
    image/png   
    image/tiff    
    image/vnd.microsoft.icon    
    image/x-icon   
    image/vnd.djvu   
    image/svg+xml    
    
  4. Тип multipart

    multipart/mixed    
    multipart/alternative   
    multipart/related (using by MHTML (HTML mail).)  
    
  5. Введите текст

    text/css    
    text/csv    
    text/html    
    text/javascript (obsolete)    
    text/plain    
    text/xml    
    
  6. Введите видео

    video/mpeg    
    video/mp4    
    video/quicktime    
    video/x-ms-wmv    
    video/x-msvideo    
    video/x-flv   
    video/webm   
    
  7. Тип 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")