Можно ли запретить отправку файлов cookie в каждом HTTP-запросе?

Я недавно нашел (здесь: каждый веб-запрос отправляет куки-файлы браузера?) что каждый HTTP-запрос содержит куки, связанные с доменом, каждый раз, когда запрос сделан в тот же домен.

учитывая это, что происходит, когда запрос отправляется не через браузер, а из узла.js, например? Возможно ли, чтобы в запросе не было никакой информации? Можно ли также предотвратить его отправку в запросах браузера?

3 ответов


браузеры

невозможно запретить браузеру отправлять cookies.

вот почему это вообще рекомендовано (Yahoo developer Best practice, см. раздел использование доменов без файлов Cookie для компонентов) для обслуживания статического контента, такого как css, изображения, из другого домена, свободного от файлов cookie.

когда браузер делает запрос на статическое изображение и отправляет куки вместе с запросом, сервер не имеет никакого использования для этих cookies. Так они только создать сетевой трафик без уважительной причины. Вы должны убедиться, что статические компоненты запрашиваются с запросами без файлов cookie. Создайте поддомен и разместите там все свои статические компоненты.


программно

С любого языка программирования, вместо вы можете выбрать Если вы хотите отправить файлы cookies или нет.

управление файлами Cookie выполняется программистом, поскольку библиотеки записываются для выполнения отдельных запросов.

поэтому, если вы делаете первый запрос, который возвращает куки, вам нужно явно прочитать их, удерживать их локально где-то и в конечном итоге поместить их во второй запрос на тот же сервер, если вам нужно.

поэтому из NodeJS, если вы явно не добавляете cookies в свои запросы, http-вызов не удерживает их.


вы можете удалить cookies с прокси-сервера. Например, наш продукт Уингейт позволит вам изменить запросы (и ответы), и вы можете использовать это, чтобы очистить заголовок в запросах.

однако это предотвратит правильное функционирование большого количества веб-сайтов, так как cookies используются для транспортировки идентификаторов сеансов, чтобы сервер мог идентифицировать каждое соединение / запрос, который делает ваш браузер, как из того же "сеанса". Сам HTTP не имеет любая концепция сессии.

отказ от ответственности: я работаю на Qbik, которые делают WinGate.


Вы Можете Использовать Fetch с credentials параметр установлен в omit см.

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API