5.3.1 什么是Cookie

优质
小牛编辑
131浏览
2023-12-01

Cookie是一种在客户端保存HTTP状态信息的技术。可以将Cookie想象成商场的会员卡。如果顾客在商场里办了一张会员卡,就意味着该顾客以后的各种消费状态都会通过会员卡保存起来。如该顾客的累计消费金额以及有效期限。当该客户再次到商场消费时,如果顾客出示这张会员卡,商场就会根据这张会员卡进行一些处理,如计算折扣率、累计消费额等。

Cookie是在浏览器访问Web服务器上的某个资源时,由Web服务器在HTTP消息响应头中附带的一组传送给浏览器的数据。浏览器可以根据这些数据决定是否将它们保存在客户端。实际上,Web服务器通过HTTP响应消息头的Set-Cookie字段将多个Cookie发送到浏览器,每一个Cookie使用一个Set-Cookie字段来设置。当浏览器发现HTTP响应消息头中有Set-Cookie字段时,就会根据Set-Cookie字段的值来决定如何处理这些Cookie,如将Cookie保存在硬盘上(永久Cookie);或是只在当前浏览器窗口中有效,如果当前窗口关闭,Cookie就会被删除(临时Cookie)。

在浏览器中访问Web服务器的资源时,浏览器会检测本地和当前浏览器窗口中是否有满足当前访问路径的Cookie存在,如果有,则在HTTP请求消息头中通过Cookie字段将Cookie信息发送给Web服务器。也就是说,Cookie信息是通过HTTP响应消息头的Set-Cookie字段和HTTP请求消息头的Cookie字段在浏览器和Web服务器之间进行传递,可以利用Cookie的这一特性来跟踪服务端的对象,如Session对象就是利用Cookie来跟踪的(将在后面详细讲解)。