Cookie使用注意事项(同事分享)

来源:互联网 发布:轨迹软件 编辑:程序博客网 时间:2024/04/30 02:40

Cookie使用注意事项

1、 分类

cookie可以手动设置,也可以由服务器产生,当客户端(浏览器)向服务器发送请求,服务器会反馈一些信息给客户端,这些信息的key/value值被浏览器作为文件保存在客户端特定的文件夹中。

内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。

硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的

2、 参数

 

  

   

String name

该Cookie的名称。Cookie一旦创建,名称便不可更改

Object value

该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码

int maxAge

该Cookie失效的时间,单位秒。如果为正数,则该Cookie在maxAge秒之后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为–1

boolean secure

该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false

String path

该Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”

String domain

可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”

String comment

该Cookie的用处说明。浏览器显示Cookie信息的时候显示该说明

int version

该Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范

摘自:

http://www.cnblogs.com/hustskyking/archive/2013/03/27/javascript-cookie.html

3、 要点

1.Cookie数量和长度的限制

各个浏览器的限制不同IE7+和Firefox最大限制为50条,chrome和Safari无限制,IE6-最大限制20条。每个 cookie所存放的数据不能超过4kb,如果 cookie 字符串的长度超过4kb,则该属性将返回空字符串。

cookie个数不要超过50条,大小不能超过4KB

2.安全性问题

客服端每次访问服务端都会携带cookie,cookie容易被人拦截,所有的session信息被公开。

cookie不要保存机密信息,让服务端来确保用户信息安全。

3.关于cookie的编码

       使用encodeURIComponent编码,decodeURIComponent解码。

摘自:

http://www.cnblogs.com/chuaWeb/p/5103356.html

4.cookie每次随HTTP请求一起发送,浪费宽带,移动端推荐使用localStorage。
5.字符串切割时 使用"; "切割( 要有空格)
6.当添加的数据key值不存在时 新建条目 , 如果key值存在 覆盖原数据 覆盖后条目在cookie的末尾

7.同源政策

浏览器的同源政策规定,两个网址只要域名相同和端口相同,就可以共享Cookie。注意,这里不要求协议相同。也就是说,http://example.com设置的Cookie,可以被https://example.com读取。

8.HttpOnly

设置Cookie的时候,如果服务器加上了HttpOnly属性,则这个Cookie无法被JavaScript读取(即document.cookie不会返回这个Cookie的值),只用于向服务器发送。

摘自:

 http://javascript.ruanyifeng.com/bom/cookie.html

9.有效期

在默认的情况下,cookie 会在浏览器关闭的时候自动清除,但是我们可以通过expires来设置 cookie 的有效期

摘自:

http://www.cnblogs.com/Darren_code/archive/2011/11/24/Cookie.html

10. cookie中不能直接存储中文。

11.关于cookie的覆盖问题。

Cookie唯一标识相同,认定是一个cookie,新的值覆盖旧的值。
Cookie唯一标识不同,认定是两个没有任何关系cookie,分别保存。
Cookie唯一标识:域名 +资源路径 + cookie名字

摘自:

http://blog.csdn.net/u013469562/article/details/53134706

参考:

http://laravelacademy.org/post/623.html

https://github.com/qiqiboy/COOKIE

http://www.fscwz.com/2015/11/10/JavaScript-cookie/

https://github.com/js-cookie/js-cookie  JavaScriptAPI来处理浏览器的cookies

 

0 0
原创粉丝点击