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

Можно создать "инвертированный индекс", также

from collections import defaultdict
inverse= defaultdict( list )
for k, v in originalDict.items():
    inverse[v].append( k )

Теперь инверсия имеет значения; каждое значение имеет список применимых ключей.

for k in sorted(inverse):
    print k, inverse[k]
182
задан Rich 9 March 2019 в 18:00
поделиться

3 ответа

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

177
ответ дан 23 November 2019 в 06:05
поделиться

Да. Каждый запрос отправляет файлы cookie, принадлежащие одному домену. Они не кэшируются, поскольку HTTP не имеет состояния, а это означает, что каждого запроса должно быть достаточно, чтобы сервер определил, что с ним делать. Допустим, у вас есть изображения, доступные только определенным пользователям; вы должны отправлять свой cookie аутентификации с каждым из этих 50 запросов, чтобы сервер знал, что это вы, а не кто-то другой или гость из пула получаемых запросов.

Сказав это, Файлы cookie могут не отправляться из-за других ограничений, упомянутых в других ответах, таких как настройка HTTPS, путь или домен. Особенно важно отметить одну важную вещь: файлы cookie не используются между доменами. Это помогает уменьшить размер HTTP-вызовов для статических файлов, таких как изображения и сценарии, о которых вы упомянули.
Пример: у вас есть 4 файла cookie на www.stackoverflow.com ; если вы сделаете запрос на www.stackoverflow.com/images/logo.png , все эти 4 файла cookie будут отправлены.
Однако, если вы запросите stackoverflow.com/images/logo.png (обратите внимание на изменение субдомена) или images.stackoverflow.com/logo.png , эти 4 файла cookie не будут присутствуют, но, возможно, те, которые связаны с этими доменами, будут.

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

18
ответ дан 23 November 2019 в 06:05
поделиться

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

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

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

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

88
ответ дан 23 November 2019 в 06:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: