Параметры медиа подтипа в параметрах заголовка 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