Можно создать "инвертированный индекс", также
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]
Да, если запрошенный URL-адрес находится в том же домене и пути, определенном в файле cookie (и все другие ограничения - безопасные, httponly, с неограниченным сроком действия и т. Д.), То cookie будет отправляться для каждого запроса.
Да. Каждый запрос отправляет файлы 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 .
Как говорили другие, если соблюдаются ограничения на хост, путь и т. д. файла cookie, он будет отправлен 50 раз.
Но вы также спросили, почему: потому что файлы cookie являются функцией HTTP, а HTTP не имеет состояния. HTTP разработан для работы без сохранения сервером какого-либо состояния между запросами.
Фактически, у сервера нет надежного способа распознать, какой пользователь отправляет данный запрос; за одним веб-прокси (и, следовательно, IP-адресом) может находиться тысяча пользователей. Если бы файлы cookie не отправлялись при каждом запросе, у сервера не было бы возможности узнать, какой пользователь запрашивает какой-либо ресурс.
Наконец, браузер не знает, нужны ли серверу файлы cookie или нет, он просто знает, что сервер проинструктировал его. для отправки cookie для любого запроса на foo.com, и он это делает. Иногда они нужны изображениям (например, динамически генерируемые для каждого пользователя), иногда нет, но браузер может '