HTTP-метод OPTIONS используется для описания параметров соединения с целевым ресурсом. Клиент может указать особый URL для обработки метода OPTIONS, или * (зведочку) чтобы указать весь сервер целиком.

Запрос имеет тело Нет
Успешный ответ имеет тело Да
Безопасный Да
Идемпотентный Да
Кэшируемый Нет
Допускается в HTML-формах Нет

Синтаксис

OPTIONS /index.html HTTP/1.1
OPTIONS * HTTP/1.1

Примеры

Определение разрешенных сервером методов запроса

Для того что бы узнать какие методы запросов поддерживаются сервером, можно возпользоваться curl направить OPTIONS запрос:

curl -X OPTIONS http://example.org -i

Ответ на запрос содержит Allow заголовок с поддерживаемыми методами:

HTTP/1.1 200 OK
Allow: OPTIONS, GET, HEAD, POST
Cache-Control: max-age=604800
Date: Thu, 13 Oct 2016 11:45:00 GMT
Expires: Thu, 20 Oct 2016 11:45:00 GMT
Server: EOS (lax004/2813)
x-ec-custom-error: 1
Content-Length: 0

Предзапросы по технологии CORS

По технологии CORS, с помощью метода OPTIONS направляется предварительный запрос, поэтому сервер может ответить приемлемо ли отправлять запросы этим методом. Access-Control-Request-Method заголовок уведомляет сервер в составе предварительного запроса о том что, запрос  OPTIONS будет отправляться на сервер вместе с POST запросом. Access-Control-Request-Headers заголовок уведомляет сервер о том, что при отправке фактического запроса, он будет отправлен с помощью пользовательских заголовков X-PINGOTHER и Content-Type.  В этом случае сервер имеет возможность определять возможно ли принять запрос с такими параметрами.

OPTIONS /resources/post-here/ HTTP/1.1 
Host: bar.other 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Connection: keep-alive 
Origin: http://foo.example 
Access-Control-Request-Method: POST 
Access-Control-Request-Headers: X-PINGOTHER, Content-Type

Ответ сервера содержит параметр Access-Control-Allow-Methods и сообщает, что  POST, GET, и OPTIONS методы являются приемлемыми для данного ресурса. Этот заголовок похож на заголовок Allow , но используется строго в контексте CORS.

HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 01:15:39 GMT 
Server: Apache/2.0.61 (Unix) 
Access-Control-Allow-Origin: http://foo.example 
Access-Control-Allow-Methods: POST, GET, OPTIONS 
Access-Control-Allow-Headers: X-PINGOTHER, Content-Type 
Access-Control-Max-Age: 86400 
Vary: Accept-Encoding, Origin 
Content-Encoding: gzip 
Content-Length: 0 
Keep-Alive: timeout=2, max=100 
Connection: Keep-Alive 
Content-Type: text/plain

Спецификации

Спецификация Заголовок
RFC 7231, секция 4.3.7: OPTIONS Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidiOS SafariSamsung Internet
Базовая поддержкаChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка ДаIE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка ДаOpera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: jellymary, mtrsv, marks12
Обновлялась последний раз: jellymary,