Cookie

Cookie

Cookie 可以翻译为“小甜品,小饼干” ,Cookie 在网络系统中几乎无 处不在,当我们浏览以前访问过的网站时,网页中可能会出现
:你好 XXX,这会让我们感觉很亲切,就好像吃了一个小甜品一样。这其实是通过访问主机中的一个文件来实现的,这个文件就是 Cookie。

在 Internet 中,Cookie 实际上是指小量信息,是由 Web 服务器创建的,将信息存储在用户计算机上的文本文件。Web服务器用HTTP标头将cookie发送到客户端。在客户端终端,浏览器解析cookie并将其保存为本地文件,该文件自动将来自同一服务器的任何请求绑定到这些cookie。一般网络用户习惯用其复数形式 Cookies。

在计算机中,Cookie 是存储在浏览器目录中的文本文件,当浏览器运行时,存储在 RAM
(随机存取存储器,也叫主存,是与CPU直接交换数据的内部存储器,可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。主存即计算机内部最主要的存储器,用来加载各式各样的程序与数据,以供CPU直接运行与运用。)中发挥作用
(此种 Cookies 称作 Session Cookies),一旦用户从该网站或服务器退出,Cookie 可存储在用户本地的硬盘上
(此种 Cookies 称作 Persistent Cookies)。 通常情况下,当用户结束浏览器会话时,系统将终止所有的
Cookie。当 Web 服务器创建了Cookies 后,只要在其有效期内,当用户访问同一个 Web
服务器时,浏览器首先要检查本地的Cookies,并将其原样发送给 Web 服务器。这种状态信息称作“Persistent Client
State HTTP Cookie” ,简称为 Cookies。

在这里插入图片描述
通过扩展HTTP协议来实现正统cookie分发。服务器通过向HTTP响应头添加特殊指示来提示浏览器生成cookie。纯JavaScript等客户端也可以产生cookie。根据某些原则,浏览器在后台自动发送cookie给服务器,浏览器检查所有的cookie,如果cookie声明范围大于或等于要请求的资源的位置,cookie将添加到请求资源的HTTP标头发送到服务器。

cookie的内容主要包括:名称,值,到期时间,路径和域。路径与域一起构成了cookie的范围。
如果未设置到期时间,则表示此cookie的生命周期是在浏览器会话期间,浏览器窗口关闭,并且cookie消失。
生命周期为浏览器会话的cookie称为会话cookie。会话cookie通常不存储在硬盘上,而是存储在内存中。当然,这种行为不受监管。如果设置了到期时间,浏览器会将cookie保存到硬盘,关闭它并再次打开浏览器。在超过设定的到期时间之前,这些cookie仍然有效。存储在硬盘上的Cookie可以在不同的浏览器进程之间共享,例如两个IE窗口。
不同的浏览器对存储在内存中的cookie有不同的处理方法。
对于IE,在一个打开的窗口上按Ctrl-N(或者从文件菜单)打开的窗口可以与原窗口共享,而使用其他方式新开的IE进程则不能共享已经打开的窗口的内存cookie;对于Mozilla Firefox0.8,所有的进程和标签页都可以共享同样的cookie。一般来说是用javascript的window.open打开的窗口会与原窗口共享内存cookie。浏览器对于会话cookie的这种只认cookie不认人的处理方式经常给采用session机制的web应用程序开发者造成很大的困扰。
会话机制使用维护服务器端状态的解决方案。同时,我们也看到,由于服务器端状态保存方案还需要在客户端保存标识符,会话机制可能需要使用cookie机制来达到保存标识符的目的。会话提供了一种管理全局变量的便捷方法。

该会话适用于每个用户。变量的值存储在服务器上。 sessionID用于区分使用哪个用户会话变量。当用户访问浏览器时,该值将返回给服务器。当客户端禁用cookie时,此值也可以设置为通过get返回给服务器。

下面就是一个goolge设置cookie的响应头的例子 :

	HTTP/1.1 302 Found 
    Location: http://www.google.com/intl/zh-CN/ 
    Set-Cookie: PREF=ID=0565f77e132de138:NW=1:TM=1098082649:LM=1098082649:S=KaeaCFPo49RiA_d8; 
    expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com 
    Content-Type: text/html 

在安全性方面:当您访问使用会话并在您自己的计算机上创建cookie的站点时,建议服务器端的会话机制更安全,因为它不会任意读取客户端存储的信息。

文章参照了下面两篇文章,可以好好学习一下。
官方解析cookies和session的区别
https://www.cnblogs.com/wangpei/p/4884840.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值