Параметры медиа подтипа в параметрах заголовка Accept

Accept Заголовок HTTP может указывать параметры для каждого типа носителя, на который он ссылается.

text/html;level=2;q=0.4, */*;q=0.5

Можно ли заключить параметр в кавычки так, чтобы он мог включать иные недопустимые символы?

В данный момент это в основном мысленный эксперимент, но вот мой пример использования:

Рассмотрим гипотетический мультимедийный тип мультимедиа. Назови это multipart/multiformat, Он имеет несколько предопределенных частей, назовите их apart а также bpart, Каждая из этих частей может иметь любой допустимый тип носителя.

То, что я хотел бы иметь, по сути, имитировать Accept заголовок в параметрах для типа носителя. Например:

multipart/multiformat;apart="text/html, */*;q=0.8";bpart="text/*", */*;q=0.4

В приведенном выше примере кавычки предназначены для разрешения чего-либо в параметрах. Конечно, даже если это сработает, у нас снова будут конфликтующие проблемы (на этот раз с двойными кавычками), если мы хотим использовать multipart/multiformat тип носителя как одна из частей верхнего уровня multipart/multiformat документ. Yay рекурсия.

Возможно ли то, что я пытаюсь сделать? Есть ли лучший подход?

1 ответ

Решение

Да, значением параметра типа носителя может быть строка в кавычках:

media-type     = type "/" subtype *( ";" parameter )
type           = token
subtype        = token

(см. http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html)

где "параметр" может быть:

parameter               = attribute "=" value
attribute               = token
value                   = token | quoted-string

(см. http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html)

Таким образом, конкретный пример, который вы упоминаете, определенно синтаксически допустим.

multipart/multiformat;apart="text/html, */*;q=0.8";bpart="text/*", */*;q=0.4
Другие вопросы по тегам