Sobes.tech
Назад к вопросам
Middle
3

Чем отличаются простые и сложные (preflight) запросы в контексте CORS?

Компании, где спрашивали
SimbirsoftSimbirsoft

Ответ от нейросети

sobes.tech AI

В контексте CORS (Cross-Origin Resource Sharing) различают простые и сложные (preflight) запросы:

  • Простые запросы — это HTTP-запросы, которые удовлетворяют определённым условиям:

    • Метод запроса: GET, POST или HEAD
    • Заголовки ограничены набором: Accept, Accept-Language, Content-Language, Content-Type (со значениями application/x-www-form-urlencoded, multipart/form-data или text/plain)
    • Отсутствие нестандартных заголовков

    Такие запросы браузер отправляет напрямую, и сервер отвечает с нужными CORS-заголовками.

  • Сложные (preflight) запросы — это запросы, которые не соответствуют критериям простых. Например, если используется метод PUT, DELETE или нестандартные заголовки, или Content-Type отличный от перечисленных выше.

    В этом случае браузер сначала отправляет preflight-запрос — OPTIONS-запрос к серверу, чтобы проверить, разрешён ли основной запрос. Сервер должен ответить с заголовками, разрешающими данный метод и заголовки.

Пример:

Если вы делаете POST с Content-Type: application/json, браузер сначала отправит OPTIONS-запрос (preflight), и только после успешного ответа выполнит основной запрос.

Это механизм безопасности, чтобы предотвратить нежелательные запросы между доменами.