客户端如何知道应将哪些Cookie发送到服务器

kor*_*s59 3 cookies http response request

当我转到HTTPS 服务器时,可以在开发人员工具(或Fiddler)中看到由客户端发送到服务器的 请求cookie。但是,如果服务器未发送响应cookie,客户端如何知道应该发送哪个cookie。至少我在开发人员工具或Fiddler中看不到任何响应cookie。

Pau*_*hai 5

首先,每个域在cookie罐/ cookie存储中都有自己的cookie。每当浏览器向服务器发出请求时,商店中该域或子域的所有cookie都将发送到服务器。

安全cookie与不安全cookie

仅在通过ssl(https协议)建立的连接上发送安全cookie。普通的cookie将同时通过http和https协议发送。

会话Cookie与持久性Cookie

  • 会话cookie-只要打开浏览器会话,这些cookie就会持续存在。这意味着一旦您清除缓存或关闭浏览器,它们就会丢失。

  • 永久性Cookie-即使浏览器关闭并再次打开,它们也将持续存在,除非您已将浏览器设置为在退出时清除Cookie,在这种情况下,它们的行为类似于会话Cookie。

第一方Cookie与第三方Cookie

  • 第一方Cookie-由当前作为主文档打开的域生成-这表示它们与您的浏览器中显示的域具有相同的域。
  • 第三方Cookie-由不同的域生成,然后由浏览器当前打开(在地址栏中),但在iframe或各种资源调用(如CSS,脚本,媒体(图像,视频或其他嵌入式媒体)中)进行管理

CORS -通过xhttp Ajax调用跨域调用-当你通过xhttp(Ajax调用)创建从另一个域中的域请求资源此情况发生。在这种情况下,浏览器将进行预检,以查看接收域是否接受来自原始域的查询(原始标头发送到该域以检查跨域策略)。服务器必须以有效的选项头作为响应,并且服务器可能允许使用身份数据(cookie数据的缩写)。如果远程域已使用允许您的域或“ *”的“ Access-Control-Allow-Origin”标头正确回答,则允许您通过此请求发送cookie。它们的行为就像普通电话一样。

要了解有关cors的更多信息:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS

  • Cookie 保存在浏览器中,浏览器在每个域的某处维护一个 Cookie 文件。一旦向该域发出请求,cookie 文件的全部内容就会作为 cookie 发送到服务器。这些 cookie 可能是由服务器或 JavaScript 调用生成的。cookie 不一定是由服务器先前的响应创建的。 (2认同)
  • 是的,cookie 也可以由 JavaScript 设置,但它们也可能是由先前的调用发出的,例如,大多数会话 ID 是在登录时发出的,但它们总是在每个请求中重新发送,即使先前的请求没有发出它们。 (2认同)