Ответ
HTTP-метод OPTIONS
используется для получения информации о доступных опциях и требованиях к коммуникации для определённого URL (ресурса) на сервере.
У него есть два основных назначения:
-
Проверка возможностей сервера: Клиент может запросить, какие HTTP-методы (например,
GET
,POST
,PUT
,DELETE
) сервер поддерживает для данного ресурса. Сервер вернёт их в заголовкеAllow
. -
Предварительный запрос в CORS (Preflight Request): Это наиболее частое применение. Перед отправкой "сложного" кросс-доменного запроса (например,
PUT
,DELETE
или запроса с нестандартными заголовками), браузер автоматически отправляетOPTIONS
запрос. Цель — проверить, разрешает ли сервер такой запрос с другого домена, чтобы избежать проблем с безопасностью.
Пример CORS Preflight Request:
-
Браузер отправляет предварительный запрос:
OPTIONS /api/items/1 HTTP/1.1 Host: api.example.com Origin: https://my-app.com Access-Control-Request-Method: PUT Access-Control-Request-Headers: X-Custom-Header, Content-Type
-
Сервер отвечает, разрешая запрос:
HTTP/1.1 204 No Content Access-Control-Allow-Origin: https://my-app.com Access-Control-Allow-Methods: GET, POST, PUT, DELETE Access-Control-Allow-Headers: X-Custom-Header, Content-Type Access-Control-Max-Age: 86400
Если ответ сервера положительный, браузер отправляет основной PUT
запрос.