Что такое HTTP-метод OPTIONS и для чего он используется?

«Что такое HTTP-метод OPTIONS и для чего он используется?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

OPTIONS — это HTTP-метод, предназначенный для определения возможностей сервера или конкретного ресурса. Он возвращает список поддерживаемых методов (GET, POST, PUT и т.д.) и информацию о политиках CORS (Cross-Origin Resource Sharing).

Основное применение:

  • CORS Preflight: Браузер автоматически отправляет OPTIONS-запрос перед некоторыми кросс-доменными запросами, чтобы проверить, разрешён ли основной запрос сервером.
  • Документирование API: Узнать, какие методы доступны для эндпоинта.

Пример запроса и ответа:

curl -X OPTIONS https://api.example.com/users 
     -H "Origin: https://myapp.com" 
     -H "Access-Control-Request-Method: POST"

Важные заголовки в ответе сервера:

  • Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS
  • Access-Control-Allow-Headers: Content-Type, Authorization
  • Access-Control-Allow-Origin: https://myapp.com
  • Allow: GET, POST, PUT, DELETE, OPTIONS

Почему это важно для тестирования? Необходимо проверять, что OPTIONS-запросы возвращают корректные заголовки CORS, иначе кросс-доменные запросы из браузера будут блокироваться.