是否每个Web请求都发送浏览器cookie?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (61)

是否每个Web请求都发送浏览器cookie?

我说的不是页面视图,而是对图像、.js文件等的请求。

如果网页有50个元素,即50个请求。为什么它会为每个请求发送相同的cookie,难道它不缓存或者不知道它已经拥有它了吗?

提问于
用户回答回答于

是的,只要URL请求在cookie中定义的相同域和路径内(以及所有其他限制--安全、httponly、未过期等)保持不变,那么每个请求都会发送cookie。

用户回答回答于

正如其他人所说,如果cookie的主机、路径等限制得到满足,它将被发送50次。

但是也问了为什么:因为cookie是HTTP特性,而HTTP是无状态的。HTTP设计为无需服务器在请求之间存储任何状态即可工作。

事实上,服务器没有一种可靠的方式来识别哪个用户正在发送一个给定的请求;一个Web代理(也就是IP地址)后面可能有上千个用户。如果不是每个请求都发送cookie,服务器将无法知道哪个用户请求任何资源。

最后,浏览器不知道服务器是否需要cookie,它只知道服务器指示它将cookie发送到foo.com,所以它就这样做了。有时图像需要它们(例如,每个用户动态生成),有时不需要,但浏览器无法分辨。

扫码关注云+社区