MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Tradução em progresso.

O método HTTP OPTIONS é utilizado para que um cliente possa descobrir quais as opções de requisição permitidas para um determinado recurso em um servidor. O cliente pode especificar uma URL específica no método OPTIONS ou um asterisco(*) indicando que se refere ao servidor como um todo para sanar suas dúvidas em relação as opções de requisição permitidas.

Request possui corpo Não
Resposta bem sucedida possui corpo Não
Seguro Sim
Idempotente Sim
Cacheável Não
Permitido em formulários HTML Não

Sintaxe

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

Exemplos

Descobrindo quais tipos de requisição são permitidas

Para descobrir quais tipos de requisição um servidor suporta, é possível utilizar o curl e enviar uma requisição OPTIONS:

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

A resposta terá um cabeçalho  Allow com os métodos permitidos:

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

Requisições Preflighted no CORS

No CORS, uma requisição preflight com o método OPTIONS é enviada para que o servidor possa indicar se é possível enviar uma requisição específica com os parâmetros informados. No exemplo abaixo, o cabeçalho Access-Control-Request-Method indica para o servidor que quando a requisição específica for enviada, ela será enviada como uma requisição POST. O cabeçalho Access-Control-Request-Headers indica para o servidor que quando a requisição específica for enviada, ela será enviada com os cabeçalhos customizados X-PINGOTHER e Content-Type. A partir desta requisição com o método OPTIONS, o servidor possui a oportunidade de indicar se a requisição específica será aceita da forma como foi indicada pelos parâmetros supracitados (o método POST e os dois cabeçalhos customizados).

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

Em nosso exemplo, o servidor responde com  Access-Control-Allow-Methods indicando que os métodos POST, GET, e OPTIONS são permitidos para utilização em relação ao recurso em questão. Este cabeçalho é similar ao cabeçalho de resposta Allow , no entanto ele somente é utilizado no contexto do 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

Especificações

Especificação Título
RFC 7231, section 4.3.7: OPTIONS Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

Compatibilidade entre navegadores

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)
FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

Veja também

Etiquetas do documento e colaboradores

 Colaboradores desta página: Mega85
 Última atualização por: Mega85,