cookie这个特性是用于解决HTTP协议“无状态”这个特点的。
Cookie 的工作过程
要传递cookie,需要建立某种机制,目前来说,是这样搞的:
响应头字段 Set-Cookie 和请求头字段 Cookie。
当用户通过浏览器第一次访问服务器的时候,服务器肯定是不知道他的身份的。所以,就要创建一个独特的身份标识数据,格式是“key=value”,然后放进 Set-Cookie 字段里,随着响应报文一同发给浏览器。
浏览器收到响应报文,看到里面有 Set-Cookie,知道这是服务器给的身份标识,于是就保存起来,下次再请求的时候就自动把这个值放进 Cookie 字段里发给服务器。
因为第二次请求里面有了 Cookie 字段,服务器就知道这个用户不是新人,之前来过,就可以拿出 Cookie 里的值,识别出用户的身份,然后提供个性化的服务。
不过因为服务器的“记忆能力”实在是太差,一张小纸条经常不够用。所以,服务器有时会在响应头里添加多个 Set-Cookie,存储多个“key=value”。
但浏览器这边发送时不需要用多个 Cookie 字段,只要在一行里用“;”隔开就行。我画了一张图来描述这个过程,你看过就能理解了。
领取专属 10元无门槛券
私享最新 技术干货