HTTP协议
HTTP协议是一种无状态协议,在数据交换完毕后,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接。
举个栗子:
你某天打开浏览器,正在浏览某部小说,刚看到一半,这时突然有事,必须要离开,而你只能关闭浏览器,当你回来重新打开浏览器访问时,只能从头开始再翻一遍(无状态)。
cookie的作用:
记录上次的会话信息,便于下次访问。
在浏览器中,经常涉及到数据的交换,比如登录一个页面。我们经常会在此时设置 7 天免登录,或自动登录选项。那么它们是怎么记录信息的呢,没错,就是 cookie,Cookie是由HTTP服务器设置的,保存在浏览器中的。
HTTP与cookie 实栗
我们去超市买东西,没有积分卡的情况下,我们买完东西之后,超市没有我们的任何消费信息,但我们办了积分卡之后,超市就有了我们的消费信息。cookie就像是积分卡,可以保存积分,商品就是我们的信息,超市的系统就像服务器后台,http协议就是交易的过程。
机制的区别:
session机制:服务器端保持状态的方案
cookie机制:客户端保持状态的方案
cookie又叫会话跟踪机制。打开一次浏览器到关闭浏览器算是一次会话。说到这里,讲下HTTP协议,前面提到,HTTP协议是一种无状态协议,在数据交换完毕后,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接。此时,服务器无法从链接上跟踪会话。cookie可以跟踪会话,弥补HTTP无状态协议的不足。
cookie的分类:
会话cookie
是指在不设定它的生命周期expires时的状态,前面说了,浏览器的开启到关闭就是一次会话,当关闭浏览器时,会话cookie就会跟随浏览器而销毁。当关闭一个页面时,不影响会话cookie的销毁。会话cookie就像我们没有办理积分卡时,单一的买卖过程,离开之后,信息则销毁。
持久cookie
则是设定了它的生命周期expires,此时,cookie像商品一样,有个保质期,关闭浏览器之后,它不会销毁,直到设定的过期时间。对于持久cookie,可以在同一个浏览器中传递数据,比如,你在打开一个淘宝页面登陆后,你在点开一个商品页面,依然是登录状态,即便你关闭了浏览器,再次开启浏览器,依然会是登录状态。这就是因为cookie自动将数据传送到服务器端,在反馈回来的结果。持久cookie就像是我们办理了一张积分卡,即便离开,信息一直保留,直到时间到期,信息销毁。
简单的cookie的代码
cookie的几种常见属性:
document.cookie="key=value;expires=失效时间;path=路径;domain=域名;secure;(secure表安全级别)