传输层 HTTP cookies

HTTP cookies,通常称为cookie,存在时间特别长,但是目前整个行业对它还是存在很多误解,原因在于没有被完全理解,单纯地认为cookie是后门程序或者是病毒,忘记了它的工作原理,而在没有出现替代品之前就消失的话,很多web应用就会变的不可用。需要说明一点的是即使目前采用的session也是建立在cookie之上的。

HTTP的无状态,迫使web应用首先就要解决维护状态的问题,否则服务器无法去知道两个请求是否来自于同一个浏览器。早期采用在html文件中插入token,在请求时把token返回服务器,而这种方式需要手动操作,很容易出问题。

而网景公司的一名员工在处理购物车时,提出了cookie的工作原理,它的发明者也因此获得了cookie的专利,导致目前的浏览器都支持cookie。简单的说cookie就是用户电脑上的一段文本文件,不会包含任何执行代码,浏览器按照规范存储这些信息,并在每次请求时附带这些信息,服务器就可以识别不同的用户。总之,cookie只包含数据,本身并不有害。服务器通过发送一个Set-Cookie的HTTP消息头来创建cookie。

Set-Cookie:key=value[;expires=datell;domain=domain][;path=path][;secure]

对于key=value来说,即使使用一个不带等号的字符串也是可以存储的,而后面的可选项是不会发送到服务器的。另外一点是有人说要对cookie全部进行URL编码,其实不然,规范说明中提出只有三个字符必须编码,分号,逗号和空格。这就说明对于key=value来说,我们只对key和value编码就足够了。

紧随其后的每个选项必须用分号和空格隔开,指定在什么情况下需要把cookie发送到服务器,第一个参数叫过期时间expires,过了这个时间点,浏览器不会把cookie发送到服务器,并且还会删除cookie。过期时间的格式为格林尼治时间Wdy.DD-Mon-YYYY HH∶MM∶SS GMT。如果没有设置,Cookie的维护周期在当前会话中。

在服务器上存放用户的信息


万维网站点可以使用 Cookie 来跟踪用户。 Cookie 表示在 HTTP 服务器和客户之间传递的状态信息。 使用 Cookie 的网站服务器为用户产生一个唯一的识别码。利用此识别码,网站就能够跟踪该用户在该网站的活动。

访问网站的时候输入账号和密码,第二次访问的时候不需要账号和密码了,可以直接访问了。

这是因为网站在我计算机上面放了cookie,这些cookie就记录了我的这些信息,下次访问的时候就直接提交给网站,那么这个网站就知道我是谁了,就不需要输入账号密码了。

可以看到cookie其实就是网站为了识别我,在我计算机上面放了一个东西。

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/125977801
今日推荐