我有疑问,如果你能清除它,我将不胜感激。
缓存
什么是cookies?当描述为实体时,通常引用cookie的方式 在谈话中,你很容易被误导。 Cookie实际上只是一个扩展 HTTP协议。具体来说,还有两个额外的HTTP标头:Set-Cookie和 Cookie。这些cookie的操作最好用以下系列描述 事件:
客户端向服务器发送HTTP请求。
服务器使用Set-Cookie:foo = bar向客户端发送HTTP响应。
客户端向服务器发送带有Cookie:foo = bar的HTTP请求。
服务器向客户端发送HTTP响应。
因此,典型的场景涉及两个完整的HTTP事务。在步骤2中,服务器 要求客户在将来的请求中返回特定的cookie。在第3步,如果 用户的首选项设置为允许cookie,如果cookie对此特定有效 请求,浏览器再次请求资源但包含cookie。
现在我的问题是.......
为什么你无法确定在第一次请求期间是否将用户的偏好设置为允许cookie ????
答案 0 :(得分:5)
另一个答案已经是正确的,步骤3&没有“触发”它们的东西就不会发生4。当检测用户是否启用了cookie时,通常使用HTTP重定向,或者可能使用某些Javascript(例如,如果您还想检测到他们启用了Javascript)。
第一个请求是要求客户端设置cookie,第二个请求是检查客户端是否实际执行了您要求它执行的操作。
您无法检测是否在没有第二个请求的情况下启用Cookie的原因是因为许多客户端在看到“Set-Cookie”标头时会提示用户以查看是否需要接受与否。因此,客户端不可能在初始请求中包含特殊的“我接受cookie”或“我不接受”标题,因为在您实际使用cookie时,它只是不知道答案。/ p>
这种过程有许多相似之处:
等等。因此,要检查用户是否允许使用cookie,您必须尝试设置cookie。
答案 1 :(得分:2)
首先,除非用户专门触发它,否则不会发生刷新,因此步骤3和4是错误的。在任何情况下,浏览器都不会发送有关它是否接受服务器cookie的信息。浏览器自行决定是否存储cookie。