最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
cookie使用中问题方法总结
时间:2012-05-24 编辑:简简单单 来源:一聚教程网
一、什么是cookie?
Cookie是由服务器端生成的,总是保存在客户端中的一小段文本信息,在你浏览网页的时候,浏览器就会将其存储在硬盘上,下次访问同一地址的时候,只要cookie没有失效,浏览器就会将其信息再次发给服务器。
所以,cookie伴随着用户请求和页面在web服务器和浏览器之间进行传递。cookie中包含着用户每次访问站点的时服务器端可以读取到的信息。
二、cookie 解决了什么问题?
解决了同一浏览器访问不同网页的时候,信息不能共享的问题。为什么呢?因为http协议是无状态的,对于同一个浏览器发出的多个请求,web服务器是无法区分来源的。cookie解决了这个问题。
三、cookie 是怎么交互的?
是通过http的响应头和请求头使客户端和服务器端进行交互的。
举个例子:以360账号登陆为例,在登陆360用户中心的时候,会向yunpan.cn这个域里面写cookie的。我们打开fiddle来看下服务器是如何写到yunpan.cn这个雨里面的吧。
从上图中可以看出,服务器端的cookie 是通过http响应头来发送给客户端的,每次一个写入动作,都会产生Set-cookie 的响应头,浏览器获取响应头后,来接受cookie的
现在我们去访问yunpan.cn 这个域的时候,我们发现,我们没有输入用户名和密码,直接登陆了。同样,我们用fillder来看看具体的过程
从上图中,我们看到cookie的值是在http的请求头里面,发送给服务器的。
四、cookie的参数以及其含义
参数 | 含义 | 取值 | 备注 |
name= |
name表示cookie的key | value 表示key的取值 | 存储value的值时候必须转义,一般用encodeURICompoment 进行转义,对key的合法性也必须进行检查 |
[; expires= |
cookie的过期日期, | 以ms为单位,GMT为标准 | 缺省为空,该cookie只能被浏览器的 |
[; domain= |
生效的域名 | 域名 | 可以缺省,即为当前网页的域名 |
[; path= |
生效的路径 | /path | 可以缺省,即为当前网页所在的目录,cookie不能跨Path访问,但是可以访问到父级目录设置的cookie |
[; secure] | 安全性 | true/false | 可以缺省,表示cookie只能在https链接中被浏览器传递到服务器端进行会话验证,http是不会传递该信息的 |
五、cookie 在不同浏览器中的差异
浏览器的类别 | 单域名cookie的数量上限 | 单个cookie的容量上限 | cookie的总上限 | 说明 |
ie6 | 50 | 4095 | 4095 | 当cookie的数量超过的时候,会踢出之前的生成的cookie,保存最新的cookie的值的 |
ie7 | 50 | 4095 | 4095 | 同上 |
ie8 | 50 | 4095 | 4095 | 同上 |
ie9 | 150 | 4095 | 4095 | 同上 |
firefox12 | 150 | 4097 | 4097 | 同上 |
chrome17 | 160~170 | 4097 | 4097 | 同上 |
Safari | 没有限制 | 4097 | 4097 |
六、利用cookie可以做什么?
(1)保存用户的登陆状态,例如上例中的,用户进行登陆,成功登陆后,服务器生成特定的cookie返回给客户端,客户端下次访问该域名下的任何页面,将该cookie的信息发送给服务器,服务器经过检验,
来判断用户是否登陆。
(2)记录用户的行为,例如,京东商场左下角有一个最近访问的产品记录信息,当当网上有你最近浏览过的书籍信息,都是根据用户访问页面,记录到cookie的信息来制作的。
(3)电商购物车的处理,因为在不同页面,点击添加到购物车,这个信息也是记到了cookie里面。结账的时候统一提交
(4)定制页面。如果网站提供了换肤的功能,我们这个时候也是将他记录到cookie里面,以便下次访问还是保持原来的风格页面。
七、cookie的安全性
cookie是不安全的,因为他可以被用户篡改。同时由于cookie存储大量的信息,一旦这些信息泄露出来,也是危害很大的,所以,我们要慎用cookie
js cookie存取
代码如下 | 复制代码 |
//写cookies函数 作者:翟振凯 }
SetCookie ("xiaoqi", "3") |
一个非常实用的javascript读写Cookie函数
一个非常实用的javascript读写Cookie函数
代码如下 | 复制代码 |
function GetCookieVal(offset)
|
如果点了确定,只要不清cookie,以后访问都不会再提示,如果不点确定则每次都会提示。放在js文件里,全站包含
代码如下 | 复制代码 |
php中cookie用法
setcookie() 函数向客户端发送一个 http cookie。
cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。
cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 "name",会自动创建名为 $user 的变量,包含 cookie 的值。
必须在任何其他输出发送前对 cookie 进行赋值。
如果成功,则该函数返回 true,否则返回 false。
语法
setcookie(name,value,expire,path,domain,secure)
*/
代码如下 | 复制代码 |
$cookieinfo=session_get_cookie_params(); //获取cookie信息 //利用session_set_cookie |
_params可以设置生存期及路径
session_set_cookie_params(0,'/yourpath/'); //设置cookie的生存期及路径
/*
注释:可以通过 $http_cookie_vars["user"] 或 $_cookie["user"] 来访问名为 "user" 的 cookie 的值。
注释:在发送 cookie 时,cookie 的值会自动进行 url 编码。接收时会进行 url 解码。如果你不需要这样,可以使用 setrawcookie() 代替。
*/
相关文章
- Servlet中Cookie增、删、改、查的例子 11-18
- zepto cookie操作使用例子 06-26
- python中cookielib模块的使用方法 06-23
- Tornado中的secure cookie使用例子 08-21
- 可增强Firebug功能的十款Firefox插件,Firefox查看Cookie插件Firecookie 07-24
- java中cookie操作详细 01-07