Как разделить имена полей без кэширования HTTP Cache-Control? - PullRequest
0 голосов
/ 18 октября 2018

Синтаксис директивы HTTP Cache-Control без кэширования ответа допускает аргумент field-name.

RFC7234 # 5.2.2.2 говорит:

5.2.2.2.  no-cache

   Argument syntax:

      #field-name

   // ...

   If the no-cache response directive specifies one or more field-names,
   then a cache MAY use the response to satisfy a subsequent request,
   subject to any other restrictions on caching. 

   // ...

В спецификации указано, что директива no-cache может "указывать [y] одно или несколько имен полей".RFC7230 # 3.2 определяет field-name как токен.

Кажется, что спецификация не охватывает, как разделять / разделять несколько имен полей.

Как Cache-Control no-cache имена полей разделены / разделены?

Пример без имени поля (наиболее распространенное использование)

Cache-Control: no-cache

Пример с одним именем поля (никогда личновидел это, технически правильно)

Cache-Control: no-cache=foo

Несколько имен полей?

Cache-Control: no-cache=foo,bar
Cache-Control: no-cache=foo,bar
Cache-Control: no-cache=foo, bar
Cache-Control: max-age=60, private, no-cache=foo, bar, min-age=30
Cache-Control: max-age=60, private, no-cache="foo, bar", min-age=30

Для меня только последний приведенный выше пример (в двойных кавычкахno-cache значение) однозначно.

Какую правильную форму использовать?

Я спрашиваю, так как мне нужно правильно проанализировать произвольные Cache-Control значения заголовка.

1 Ответ

0 голосов
/ 15 января 2019

Я думаю, что это будет сделано так:

Cache-Control: max-age=60, private, no-cache=foo, no-cache=bar, min-age=30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...