Sobes.tech
Back to questions
Middle+
2

Что такое CORS? Как он работает? В чём разница между простыми запросами (GET, POST) и предварительными запросами (preflight OPTIONS)? На что смотрит CORS при отправке запроса?

Companies where asked
SelectySelecty

Answer from AI

sobes.tech AI

CORS (Cross-Origin Resource Sharing) — это механизм безопасности браузера, который ограничивает выполнение веб-страницами запросов к ресурсам с другого домена, отличного от домена, с которого загружена страница.

Как работает CORS: Когда веб-страница пытается сделать запрос к другому домену, браузер проверяет, разрешает ли сервер этого домена такие запросы. Сервер должен в ответе содержать специальные заголовки (например, Access-Control-Allow-Origin), которые указывают, какие источники (домены) могут обращаться к его ресурсам.

Простые запросы и предварительные (preflight) запросы:

  • Простые запросы — это запросы с методами GET, POST или HEAD и с определённым набором заголовков и типов контента (например, application/x-www-form-urlencoded). Для таких запросов браузер сразу отправляет основной запрос и проверяет ответ.
  • Предварительные запросы (preflight OPTIONS) — это запросы с методом OPTIONS, которые браузер отправляет перед основным запросом, если он не является простым (например, используется метод PUT, DELETE, или нестандартные заголовки). Цель — проверить, разрешает ли сервер такой запрос.

На что смотрит CORS при отправке запроса:

  • Заголовок Origin — указывает источник запроса.
  • Сервер в ответе должен вернуть Access-Control-Allow-Origin с разрешённым источником или *.
  • Для preflight запросов сервер также должен вернуть Access-Control-Allow-Methods (разрешённые методы) и Access-Control-Allow-Headers (разрешённые заголовки).

Если эти условия не выполняются, браузер блокирует доступ к ответу из JavaScript, обеспечивая безопасность.