每个网络请求都会发送浏览器的cookie吗?

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

更新 如果一个网页有50个元素,那就是50个请求。为什么它会为每个请求发送相同的cookie(s),它不是缓存或知道它已经有了它吗?


当前回答

不。并不是每个请求都发送cookie。这取决于cookie配置和客户-服务器连接。

例如,如果cookie的安全选项设置为true,那么它必须通过安全HTTPS连接传输。意味着当你看到该网站与HTTP协议,然后这些cookie不会被浏览器发送,因为安全标志是真的。

其他回答

三年过去了

There's another reason why a browser wouldn't send cookies. You can add a crossOrigin attribute to your <script> tag, and the value to "anonymous". This will prevent cookies to be sent to the destination server. 99.9% of the time, your javascripts are static files, and you don't generate that js code based on the request's cookies. If you have 1KB of cookies, and you have 200 resources on your page, then your user is uploading 200KB, and that might take some time on 3G and have zero effect on the result page. Visit HTML attribute: crossorigin for reference.

简短的回答是肯定的。下面的代码行来自JS文档

cookie曾经被用于一般的客户端存储。虽然当它们是在客户端上存储数据的唯一方式时,这是合法的,但现在建议使用现代存储api。cookie随每个请求一起发送,因此它们会降低性能(特别是对于移动数据连接)。

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

Cookie有一个“path”属性。如果“path=/”,答案是Yes。

不。并不是每个请求都发送cookie。这取决于cookie配置和客户-服务器连接。

例如,如果cookie的安全选项设置为true,那么它必须通过安全HTTPS连接传输。意味着当你看到该网站与HTTP协议,然后这些cookie不会被浏览器发送,因为安全标志是真的。