This page was translated from English by the community. Learn more and join the MDN Web Docs community.
OPTIONS
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.
HTTP OPTIONS 메서드는 주어진 URL 또는 서버에 대해 허용된 통신 옵션을 요청합니다. 클라이언트는 이 방법으로 URL을 지정하거나 별표(*)를 지정하여 전체 서버를 참조할 수 있습니다.
구문
OPTIONS /index.html HTTP/1.1
OPTIONS * HTTP/1.1
예제
>허용된 요청 매서드 식별하기
서버가 지원하는 요청 방법을 찾으려면 아래와 같이 curl 명령어을 사용하여 OPTIONS 요청을 보내볼 수 있습니다.
curl -X OPTIONS https://example.org -i
그럼 응답은 허용된 메서드를 가지고 있는 Allow 헤더가 있습니다.
HTTP/1.1 204 No Content
Allow: OPTIONS, GET, HEAD, POST
Cache-Control: max-age=604800
Date: 2016年10月13日 11:45:00 GMT
Server: EOS (lax004/2813)
CORS 사전 요청
CORS에서 사전 요청은 OPTIONS 메서드를 통해 전송되므로 요청을 보낼 수 있는 경우라면 서버가 응답할 수 있습니다. 이번 예제에서는 다음 매개변수에 대한 권한을 요청합니다.
- 사전 요청에서 전송되는
Access-Control-Request-Method헤더는 서버에 실제 요청이 전송될 때POST메서드가 있음을 알려줍니다. Access-Control-Request-Headers헤더는 서버에 실제 요청이 전송될 때X-PINGOTHER와Content-Type헤더가 있음을 알려줍니다.
OPTIONS /resources/post-here/ HTTP/1.1
Host: bar.example
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
Connection: keep-alive
Origin: https://foo.example
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-PINGOTHER, Content-Type
이제 서버는 아래와 같은 상황에서 요청을 수락할 때 응답할 수 있습니다. 이 예제에세 서버의 응답은 다음과 같습니다.
Access-Control-Allow-Origin-
https://foo.example출처는 다음을 통해bar.example/resources/post-here/URL을 요청할 수 있습니다. Access-Control-Allow-Methods-
POST,GET그리고OPTIONS는 이 URL에 허용되는 메서드입니다. (이 헤더는Allow헤더와 유사하지만 CORS에만 사용됩니다.) Access-Control-Allow-Headers-
X-PINGOTHER및Content-Type은 URL에 대해 허용되는 요청 헤더입니다. Access-Control-Max-Age-
위 권한은 86,400초(1일) 동안 캐시될 수 있습니다.
HTTP/1.1 200 OK
Date: 2008年12月01日 01:15:39 GMT
Server: Apache/2.0.61 (Unix)
Access-Control-Allow-Origin: https://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
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
상태 코드
200 OK와 204 No Content 모두 허용되는 상태 코드이지만 일부 브라우저는 204 No Content가 실제 리소스에 적용된다고 잘못 판단하여 리소스를 가져오기 위한 다음 요청을 보내지 않습니다.
명세서
| Specification |
|---|
| HTTP Semantics> # OPTIONS> |
브라우저 호환성
Loading...