Cookie和登录注册
1. 什么是Cookie?
1. 服务器通过 Set-Cookie 头给客户端⼀串字符串
2. 客户端每次访问相同域名的⽹页时,必须带上这段字符串
3. 客户端要在⼀段时间内保存这个Cookie
4. Cookie 默认在⽤户关闭页⾯后就失效,后台代码可以任意设置 Cookie 的过期时间
5. ⼤⼩⼤概在 4kb 以内
2. cookie的设置获取和删除
cookie是运⾏在客户端的,可以⽤JS来设置cookie.
⾸先需要稍微了解⼀下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间⼀般是以“;”分隔。
JS设置cookie:
JS读取cookie:
var getCookie = function (name) {
var arr;
var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = kie.match(reg))网页购物车代码
return unescape(arr[2]);
else
return null;
};
JS删除cookie:
var delCookie = function (name) {
setCookie(name, ' ', -1);
};
3. cookie的主要作⽤:
会话状态管理(如⽤户登录状态、购物车、游戏分数和其它需要记录的信息)
个性化设置(如⽤户⾃定义设置、主题等)
浏览器⾏为跟踪(如跟踪分析⽤户⾏为)
4. cookie设置语法:
path=/mydir; domain=cnblogs; max-age=3600; secure=true";
cookieName=mader :name=value,cookie的名称和值
expires=Fri, 31 Dec 2017 15:59:59 GMT: expires,cookie过期的⽇期,如果没有定义,cookie会在对话结束时过期。⽇期格式为new Date().toUTCString()
path=/mydir: path=path (例如 '/', '/mydir') 如果没有定义,默认为当前⽂档位置的路径。
domain=cnblogs:指定域 (包括所有⼦域名)
max-age=3600:⽂档被查看后cookie过期时间,单位为秒
secure=true: cookie只会被https传输,即加密的https链接传输
5. 相关问题:
我在 Chrome 登录了得到 Cookie,⽤ Safari 访问,Safari 会带上 Cookie 吗?
不会,因为浏览器会带上域名Cookie, Cookie 还可以根据路径做限制
Cookie 存在哪?
Windows 存在 C 盘的⼀个⽂件⾥
Cookie会被⽤户篡改吗?
可以,可以⽤Session 来解决这个问题,防⽌⽤户篡改
Cookie 有效期吗?
默认有效期20分钟左右,不同浏览器策略不同
后端可以强制设置有效期,具体语法看
Cookie 遵守同源策略吗?
也有,不过跟 AJAX 的同源策略稍微有些不同。
当请求 qq 下的资源时,浏览器会默认带上 qq 对应的 Cookie,不会带上 baidu 对应的 Cookie 当请求 v.qq 下的资源时,浏览器不仅会带上 v.qq 的Cookie,还会带上 qq 的 Cookie

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。