Предварительный запрос файла
Перед Preflight File Request
отправкой запроса операция запрашивает правила общего доступа к ресурсам независимо от источника (CORS) для Файлы Azure.
Веб-браузер или другой агент пользователя отправляет предварительный запрос, включающий домен источника, метод и заголовки для запроса, который агент хочет выполнить. Если функция CORS включена для Файлы Azure, Файлы Azure оценивает предварительный запрос на соответствие правилам CORS, настроенным владельцем учетной записи с помощью параметра Set File Service Properties. Файлы Azure затем принимает или отклоняет запрос.
Дополнительные сведения о CORS и предварительном запросе см. в спецификации CORS и поддержке CORS для службы хранилища Azure.
Доступность протокола
Включенный протокол общей папки | Доступно |
---|---|
SMB | |
NFS |
Запрос
Можно указать Preflight File Request
следующим образом. Замените <account-name>
именем своей учетной записи хранения. Замените <file-resource>
общим ресурсом, каталогом или файлом, который будет целевым для запроса.
HTTP-команда | Универсальный код ресурса (URI) запроса | параметр "Версия HTTP" |
---|---|---|
OPTIONS |
http://<account-name>.file.core.windows.net/<file-resource> http://<account-name>.file.core.windows.net/<file-resource>?restype=share http://<account-name>.file.core.windows.net/<file-resource>?restype=directory |
HTTP/1.1 |
Универсальный код ресурса (URI) всегда должен включать косую черту (/), чтобы отделить имя узла от частей пути и запроса URI. В случае этой операции путь может быть пустым или указывать на любой Файлы Azure ресурс. Если ресурс Файлы Azure является общим ресурсом или каталогом, restype
параметр запроса является обязательным.
Ресурс может существовать или не существовать на момент отправки предварительного запроса. Предварительный запрос оценивается на уровне службы в соответствие с правилами CORS службы, поэтому наличие или отсутствие имени ресурса не влияет на успешность или сбой операции.
Параметры универсального кода ресурса (URI)
Нет.
Заголовки запросов
В следующей таблице описаны обязательные и необязательные заголовки запросов.
Заголовок запроса | Описание |
---|---|
Origin |
Обязательный. Указывает источник, из которого будет выдан запрос. Источник проверяется по правилам CORS службы с целью определить, успешен или ошибочен предварительный запрос. |
Access-Control-Request-Method |
Обязательный. Указывает метод (или HTTP-команду) для запроса. Метод проверяется по правилам CORS службы с целью определить, успешен или ошибочен предварительный запрос. |
Access-Control-Request-Headers |
Необязательный элемент. Указывает заголовки запросов, которые будут отправлены. Если он отсутствует, служба предполагает, что запрос не содержит заголовков. |
x-ms-allow-trailing-dot: { <Boolean> } |
Необязательный элемент. Версия 2022-11-02 и более поздние. Логическое значение указывает, следует ли обрезать завершающую точку в URL-адресе запроса. Дополнительные сведения см. в разделе Именование общих папок, каталогов, файлов и метаданных и ссылки на нее. |
Текст запроса
Нет.
Ответ
Ответ включает код состояния HTTP и набор заголовков ответа.
Код состояния
Успешная операция возвращает код состояния 200 (ОК).
Заголовки ответов
Ответ для этой операции включает следующие заголовки. Ответ также может содержать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.
Дополнительные сведения о заголовках предварительных запросов см. в спецификации CORS.
Заголовок ответа | Описание |
---|---|
Access-Control-Allow-Origin |
Указывает разрешенный источник, который соответствует заголовку источника в запросе при успешном выполнении предварительного запроса. |
Access-Control-Allow-Methods |
Если предварительный запрос завершается успешно, для этого заголовка задается значение или значения, указанные для заголовка Access-Control-Request-Method запроса . |
Access-Control-Allow-Headers |
Если предварительный запрос завершается успешно, для этого заголовка задается значение или значения, указанные для заголовка Access-Control-Request-Headers запроса . |
Access-Control-Max-Age |
Указывает период времени, в течение времени, когда агенту пользователя разрешено кэшировать предварительный запрос для будущих запросов. |
Access-Control-Allow-Credentials |
Указывает, можно ли выполнить запрос с помощью учетных данных. Этот заголовок всегда имеет значение true . |
Текст ответа
Нет.
Авторизация
Операция Preflight File Request
всегда выполняется анонимно. Он не требует авторизации и игнорирует учетные данные, если они предоставлены.
Примечание
Если вы включили аналитику Preflight File Request
службы хранилища Azure и регистрируете метрики, вызов операции регистрируется как AnonymousSuccess
. По этой причине при просмотре метрик в портал Azure вы увидитеAnonymousSuccess
, что зарегистрировано для Preflight File Request
. Эта метрика не указывает на то, что ваши личные данные были скомпрометированы, а только Preflight File Request
на успешность операции с кодом состояния 200 (ОК).
Пример запроса и ответа
В следующем примере отправляется предварительный запрос для источника www.contoso.com
. Для метода запроса задано значение PUT
, а заголовки запроса имеют значение content-type
и accept
.
OPTIONS http://myaccount.file.core.windows.net/myshare/myfile
HTTP/1.1
Accept: */*
Origin: www.contoso.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: content-type, accept
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Content-Length: 0
Ответ указывает, что cors включен для службы и что правило CORS соответствует предварительному запросу:
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 60
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Headers: accept,content-type
Комментарии
Если cors включена для службы и правило CORS соответствует предварительному запросу, служба отвечает на предварительный запрос с кодом состояния 200 (ОК). Ответ содержит обязательные заголовки Access-Control
. В этом случае счет за запрос выставляется.
Если CORS не включен или нет правила CORS, которому соответствует предварительный запрос, то служба отправляет код состояния 403 (Запрещено). В этом случае плата за запрос не взимается.
OPTIONS
Если запрос имеет неправильный формат, служба отвечает с кодом состояния 400 (недопустимый запрос), и плата за запрос не взимается. Примером запроса с неправильным форматом является запрос, который не содержит обязательные Origin
заголовки и Access-Control-Request-Method
.
Предварительный запрос — это механизм для запроса возможности CORS службы хранилища, связанной с определенной учетной записью хранения. Предварительный запрос не нацелен на конкретный ресурс.