Каждый веб-запрос отправляет куки файлы браузера? - программирование

Каждый веб-запрос отправляет куки файлы браузера?

Каждый веб-запрос отправил куки файлы браузеров?

Я не говорю о просмотре страницы, а о запросе изображения, файла .js и т.д.

Обновление Если веб-страница содержит 50 элементов, это 50 запросов. Почему он отправляет SAME cookie для каждого запроса, не кэширует ли он или не знает, что он уже имеет его?

4b9b3361

Ответ 1

Да, если запрашиваемый URL-адрес находится в пределах одного домена и пути, определенного в файле cookie (и все остальные ограничения - безопасный, httponly, истек и т.д.), то cookie будет отправляться на каждый запрос.

Ответ 2

Как говорили другие, если соблюдены ограничения хоста, пути и т.д., он будет отправлен 50 раз.

Но вы также спросили, почему: поскольку файлы cookie являются функцией HTTP, а HTTP - без гражданства. HTTP предназначен для работы без сервера, сохраняющего любое состояние между запросами.

Фактически, у сервера нет твердого способа распознавания того, какой пользователь отправляет данный запрос; может существовать тысяча пользователей за одним прокси-сервером (и, следовательно, IP-адресом). Если файлы cookie не отправляются по каждому запросу, сервер не будет знать, какой пользователь запрашивает какой-либо ресурс.

Наконец, браузер не знает, нужен ли серверу файлы cookie или нет, он просто знает, что сервер поручил ему отправить cookie для любого запроса на foo.com, поэтому он делает это. Иногда изображения нуждаются в них (например, динамически генерируемые для каждого пользователя), иногда нет, но браузер не может сказать.

Ответ 3

Да. Каждый запрос отправляет файлы cookie, принадлежащие одному домену.

Например: у вас есть 4 файла cookie на www.stackoverflow.com. Если вы сделаете запрос на www.stackoverflow.com/images/logo.png, он также отправит файлы cookie.
Но если вы запрашиваете файл stackoverflow.com/images/logo.png или images.stackoverflow.com/logo.png, если в нем нет файлов cookie, поэтому куки файлы не будут отправляться.

Вы можете узнать больше о файлах cookie и образах, запрашивающих, например, эту статью в блоге StackOverflow.

Ответ 4

Нет. Не каждый запрос отправляет файлы cookie. Это зависит от конфигурации файла cookie и подключения клиент-сервер.

Например, если для параметра cookie secure установлено значение true, то оно должно передаваться через безопасное соединение HTTPS. Значит, когда вы видите этот веб-сайт с протоколом HTTP, эти куки файлы не будут отправляться браузерами, так как безопасный флаг является истинным.

Ответ 5

Прошло 3 года

Есть и другая причина, по которой браузер не отправляет файлы cookie. Некоторый код может использовать атрибут crossOrigin объекта для анонимного, чтобы предотвратить отправку файлов cookie.

Ответ 6

Я знаю, что это старый поток. Но я только заметил, что большинство браузеров не отправляют файлы cookie для домена, если вы добавляете конечную точку. Например, http://example.com. не получит файлы cookie, установленные для .example.com. С другой стороны, Apache рассматривает их как одного и того же хоста. Я считаю, что это полезно для более сложного отслеживания перекрестных доменов для внешних ресурсов, которые я включаю, но вы также можете использовать его по соображениям производительности. Обратите внимание на эту проверку валидации сертификатов https. Я провел несколько тестов с использованием браузеров и моих собственных устройств. Хак работает почти во всех браузерах, кроме сафари (мобильных и настольных), которые будут включать файлы cookie в запрос.

Ответ 7

Cookie имеет свойство "путь". Если "путь =/", ответ "Да".