Краткий ответ: Браузеры применяют Access-Control-Max-Age
для каждого URL-адреса, а не для каждого источника.
по запросу a2, запрос OPTIONS будет отправлен?
Нет, потому что из-за Access-Control-Max-Age
заголовка для этого URL, браузер будет кэшировать результаты CORS предполетных , но только для этого http://example.com/01.mv
URL.
в запросе b1, запрос OPTIONS будет отправлен?
Да, потому что это для отличается URL, http://example.com/02.mv
.
Протокол CORS работает, делая preflights за URL, а не за происхождение, поэтому значение этого другого Access-Control-Max-Age
для URL запроса a1
не не относится к различным b1
URL.
в запросе b2, запрос OPTIONS будет отправлен?
Нет, по той же причине он не послал запрос a2
: из-за Access-Control-Max-Age
браузер будет кэшировать результаты предполетной CORS для http://example.com/02.mv
.
Насколько то, что спецификации CORS определяет соответствующие требования здесь, если проследить шаги в спецификации они отведут Вас к определению в спецификации на срок cache match:
Существует спичка кэша для запроса если происхождение является запрос «s происхождений, URL является запросом» s текущего URL ...
Других слова, в кэше предполетный будет использоваться только для запроса, если как:
- происхождение по просьбе совпадает начало для этого кэшируется предполетной
- и запроса-х URL совпадает с URL-адресом для кэшированного предполета
Почему b1 отправит запрос OPTIONS? они имеют одинаковое происхождение 'http: // example.com'. – look
Поскольку предварительные предписания OPTIONS инициируются * по URL-адресу *, а не по-началу. Браузеры не принимают результаты предполета, полученные от ответа на один URL-адрес из определенного источника, и повторно используют его для запросов ко всем другим URL-адресам из этого источника. Это не имеет смысла. Во-первых, владелец второго URL-адреса может полностью отличаться от владельца первой спецификации URL. Таким образом, разные владельцы должны иметь контроль над поведением CORS для своего собственного URL-пространства. И т. Д. – sideshowbarker
@look В конце моего ответа я теперь добавил ссылку на соответствующую часть авторитетного спектакля для CORS. – sideshowbarker