cookie
程序员文章站
2024-03-20 13:43:10
...
是什么
- web服务器存储在你本地磁盘的一个小的文本文件
- cookie记录了你的用户名,密码,浏览的网页等
属性
- Expires ,Max Age:
- 都用来指定cookie的过期时间;
2. Expires在HTTP/1.0中定义。max-age在HTTP/1.1中才有定义;
3. Expires指定一个绝对的过期时间(GMT格式)。max-age 指定的是从文档被访问后的存活时间,这个时间是个相对值(比如:3600s),相对的是文档第一次被请求时服务器记录的Request_time(请求时间),
- Domain和Path
Domain是域名,Path是路径,两者加起来就构成了 URL,Domain和Path一起来限制 cookie 能被哪些 URL 访问。
- size
cookie的大小
- Secure
Secure选项用来设置cookie只在确保安全的请求中才会发送。当请求是HTTPS或者其他安全协议时,包含 Secure选项的
cookie 才能被发送至服务器。
- httpOnly
设置cookie是否能通过 js 去访问
客户端设置cookie
方法:
document.cookie=“name=123”;
注意:
document.cookie="name=syl; age=18"
这样的话只有name生效,即每次只能设置一个。因此需要封装或者多次调用。
封装:
//设置cookies
function setCookie(name,value,MyDay){
var ExDate = new Date();
ExDate.setDate(ExDate.getDate() + MyDay);//如果需要时间的话以这样获取。
document.cookie = name + "=" + value + ";expires=" + ExDate;
}
//获取cookies
function getCookie(name){
//例如cookie是"username=abc; password=123"
var arr = document.cookie.split('; ');//用“;”和空格来划分cookie
for(var i = 0 ;i < arr.length ; i++){
var arr2 = arr[i].split("=");
if(arr2[0] == name){
return arr2[1];
}
}
return "";//整个遍历完没找到,就返回空值
}
//删除cookies
function removeCookie(name){
setCookie(name, "1", -1)//第二个value值随便设个值,第三个值设为-1表示:已经过期。
}
缺点
每个特定域名下的cookie数量有限,E6或更低版本最多20个cookie,IE7及之后可以有50个cookie,firefox最多50个cookie;
存储量太小,只有4KB;
每次HTTP请求都会发送到服务端,影响获取资源的效率;
安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。;
上一篇: 顺序表——插入不重复元素
下一篇: 转载java实现md5加密解密