cookie

cookie是干什么的?cookie能够解决什么问题?

1,跨页面的数据传递;
2,数据的长久保存;
cookie被称为会话跟踪技术
cookie是客户端电脑上的文本文件,其内容只能存储字符串;比如:
document.cookie = "a = [1,2,3]";//只能存储字符串
获取cookie
document.cookie //获取当前代码所在的文件,文件所在的目录
expires过期时间
如果设置cookie时,设置了过期时间,那么到这个时间时,该cookie会自动销毁;
如果设置cookie时,没有设置过期时间,那么这个cookie的过期时间为会话时间,即浏览器关闭时,自动会销毁。
1,简单了解什么是通信协议、TCP/IP协议、HTTP协议
2,什么是Cookie
3,通信协议、TCP/IP、HTTP、 Cooike间的关系;
4,如何创建Cookie(重点)
5,Cookie的常用属性(重点);
通信协议:
通信协议指双方完成通信或服务所必需遵循的规则和约定。
如让双方协同工作,它们之间必须具有共同的语言。
交流什么,怎样交流以及何时交流,都必须遵循某种互相都能接受的规则,这个规则就是通信协议。
TCP/IP:
传输控制协议/网际协议,为了实现不同网络之间的互连,美国国防部于1977-1979年制定了TCP/IP体系结构和协议。
在Internet(网际网)没有形成之前,各个地方已经建立了很多局域网,连接各式各样的局域网,用哪种规则传输数据,TCP/IP就是干这事的。
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输。
HTTP协议:
超文本传输协议,所有www文件都必须遵循这个标准,实际上就是一种发布和接收HTML页面的方法。
HTTP是应用层协议,主要解决如何包装数据。
Cookie和变量一样,是用来做数据存储的;
与变量不同之处在于,cookie能够有前提性的,实现跨页面读写数据,和长时间保存数据。
前提性:
1,必须是同一个浏览器创建的cookie;
2,必须是同一个网站创建的cookie
3,通过设置path属性所具备的读写权限
4,通过设置expires属性所具备的有效时间权限
Cookie又叫会话跟踪技术,实际上就是客户端硬盘上的一个文本文件,该文件用来存储一些数据。
拿交通运输举例子,能够实现交通运输,就必须遵守相应的交通运输规则(通信协议)。
有很多种交通方式,比如公路、铁路、海运、航运等等,把公路交通运输理解成TCP/IP,其中IP理解成公路,TCP理解成卡车。
卡车中装的货物,就是HTTP。
维护货物的方法,就是cookie。
Cookie需要依赖服务器环境,所以应先搭建服务器环境。
创建cookie的语法:
document.cookie = "名称 = 值";
获取cookie的语法:
document.cookie;
过期时间:expires
没有设置expires属性,那么表示该cookie的有效期为会话。会话指浏览器打开到关闭。
设置了expires属性,那么表示该cookie的有效期为一个具体的时间时,过期cookie文件删除。
示例:
var d = new Date();
d.setDate(d.getDate()+1);
document.cookie = "username = xiaobai ;expires ="+d.toGMTStirng();
解读:
创建了一个名称叫做username的cookie,它所存储的内容为zhangsan,它的过期时间是创建这个cookie时的时间的一天后时。
备注:
通过修改相同名的cookie的值或过期时间,可以实现该cookie的修改和删除。
路径:path
cookie在读取时,是存在访问权限的,即只能够访问path路径下的cookie。
例如,在网站根目录创建下的cookie,网站任何位置都能够访问到这个cookie。
在/a/目录下创建的cookie,只能在/a/目录下访问这个cookie。
示例:
document.cookie = "username = zhangsan ;path = /";
解读:
创建了一个名称叫做username的cookie,它所存储的内容为zhangsan,该cookie在当前网站下任何位置都能读写。
备注:path和domain属性都是设置该cookie的归属,即cookie的作用域,因同源策略的限制,只能够获取
同源同作用域下cookie。
domain在浏览器中被限制了,不能使用。
1,有些浏览器在使用中文时,会出现乱码。
在设置cookie时,通过encodeURLComponent编码时,在获取cookie时,通过decodeURLComponent解码。
2,cookie文件存放在客户端。
cookie即可以用客户端JavaScript读写,也可以用服务器端php,jsp等读写。
3,每个网站只能访问自己网站的cookie
4,每个浏览器只能访问自己浏览器的cookie
即火狐创建的cookie,谷歌是不能够访问的。
5,cookie的内容是纯文本,即只能保存字符串数据。
6,cookie依赖于www服务,即设置和获取cookie时,要用http访问网页。火狐除外。
浏览器允许每个域名所包含的cookie数:
Microsoft指出InterExplorer8增加cookie限制为每个域名50个,但实际上IE6就已经最多出现每个域名50个cookie。
firefox每个域名cookie限制为50个。Firefox3.6可以存150个cookie。
Opera每个域名cookie限制为30个。
Safari/webkit 没有cookie限制。但是如果cookie很多则会使header大小超过服务器的处理的限制,会导致错误发生。
二,当很多的cookie被设置,浏览器如何去响应。
Safari可以设置全部cookie,不管数量多少。
Firefox3.6剔除最老的,设置新的。有部分版本的Firefox很独特:虽然最后的设置的cookie始终保留,但似乎随机决定哪些cookie被保留。
IE6剔除最老的,设置新的。
三,不同浏览器间cookie总大小也不同:
Firefox和Safari允许cookie多达4097个字节,包括名(name)时、值(value)和等号。
Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号。
Inter Explorer允许cookie多达4095个字节,包括:名(name)、值(value)和等号。
四,一个cookie的value超过字符限制,浏览器如何处理:
firefox3.6超过字符限制就不设置。
IE6超过字符限制也会设置,但取不到值。
五,纠正了网上常见的对cookie描述的两个错误:
1,网上流传一个域名最多可以20个cookie。
2cookie内容最多为4096个字节。

posted @ 2018-04-12 11:27  悔创阿里-杰克马  阅读(103)  评论(0编辑  收藏  举报
求投食~(点图即可)