Введение
Cors означает В росс- O ригин R esource S харинг Это система, которая состоит из передачи заголовков HTTP. Он определяет, блокируют ли браузеры код JavaScript от доступа к ресурсам межоооооооооооригина. Тот же политика безопасности Происхождения запрещает перекрестный доступ к ресурсам. Запрос по перекрестному происхождению является запросом на другой URL. CORS дает веб -серверам возможность разрешить Frontend JavaScript код в браузерах получить доступ к своим ресурсам.
Обзор
Когда вы получаете доступ к ресурсу в том же веб -домене, используя код Frontend JavaScript, вы можете получить к нему доступ с кодом статуса 200. Когда вы пытаетесь получить доступ к ресурсу в другом домене, используя фронтальный код JavaScript, он может вернуть вам ошибку CORS, в зависимости от конфигурации веб -сервера. Браузер не разрешает Froderend JavaScript код для доступа к ресурсам межоотранного происхождения (ресурсы в другом домене), если только веб-сервер не позволил. Вы можете разрешить перекрестные запросы происхождения на своем веб -сервере, указав происхождение Cors как *
или конкретный URL, который вы хотите разрешить запросам перекрестного происхождения.
Предварительное выполнение запросов
Нестандартные заголовки HTTP, такие как Положить
, Патч
и Удалить
нужно быть предварительно подготовленным. Это просто проверка безопасности, чтобы убедиться, что запрос безопасен для перейти на сервер. Браузер автоматически знает, когда выполнить запрос. Когда он предупреждает запрос, он включает в себя Параметры
HTTP -глагол, содержащий начало имени в заголовках. Затем веб -сервер ответит, что он делает или не разрешает запрос. Приведенный выше метод неэффективен в некоторых случаях, еще один метод обработки нестандартных заголовков HTTP заключается в следующем: Веб-сервер может ответить с помощью заголовка максимального возраста ( access-control-max-age: 3600
), что позволяет браузеру кэшировать предварительный полевой фантастик в течение определенного количества времени. Запрос будет кэширован таким образом, чтобы на сервере и базе данных было вызвано никакого расхождения (подробнее об этом в [Кэши] )
Заголовки CORS
Заголовок CORS-Felististiced
Принять
, Принятие языка
, Контент-языка
и Контент-тип
Являются ли CORS-Felistististed Заголовки запросов. При сохранении только этих заголовков запрос не должен отправлять запрос на предварительный полете на веб -сервер в контексте CORS. Больше заголовков можно безопасно с помощью Access-Control-Allow-Headers
заголовок. Заголовки должны следовать определенным требованиям, чтобы быть защищенными от CORS. Требования:
Принятие языка
иКонтент-языка
заголовки : Может иметь значения, состоящие только из0-9
,A-Z
,A-Z
, пространство или* -. ; , =
Принять
иКонтент-тип
Заголовки : не может содержать байт заголовка CORS-UNSAFEКонтент-тип
: Он должен иметь тип типа миме своего проанализированного значения любогоПриложение/X-WWW-FORM-URLENCODED
илиMultipart/Form-Data
илиТекст/Plain
Чтобы обмануть вышеуказанные требования для заголовков по умолчанию, вы должны указать заголовки по умолчанию вКонтроль доступа
заголовок.
Заголовок ответа CORS
Это заголовок HTTP в ответе CORS, он изображает, что ответ считается безопасным для подверженности клиентским сценариям. Только заголовки ответов в безопасности доступны для веб -страниц. Заголовки от ответа, отобранные CORS, включают в себя следующие заголовки:
Контроль кэша
Контент-языка
Длина контента
Тип содержимого
Истекает
Последнее изменение
Прагма
Вы можете расширить список заголовков ответов, отобранных CORS, указав заголовки вКонтроль Access-Control-Expose Headers
заголовок.
Оригинал: «https://dev.to/hamiecod/cors-explained-1168»