cookie相关的知识

1.cookie是什么

  cookie是储存在用户本地终端上的数据(可以叫做浏览器缓存)。例如当我们登录一网站,设置7天内记住密码或自动登录时,记录信息就用到了cookie。又或者我们浏览以前访问过的网站时,网页中可能会出现 :你好 XXX,这会让我们感觉很亲切,就好像吃了一个小甜品一样。

  在 Internet 中,Cookie 实际上是指小量信息,是由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。

2.cookie的工作原理

  由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

3.cookie的工作流程

  cookie实际是一小段的文本信息,客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个cookie。客户端浏览器会把cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器检查该cookie,以此来辨认用户状态。服务器还可以根据需要修改cookie的内容。

4.cookie的分类

  cookie分为会话cookie(Session Cookies)和持久cookie(Persistent Cookies)。

  浏览器的开启到关闭就是一次会话,当关闭浏览器时,会话cookie就会跟随浏览器而销毁。

  持久cookie则是设定了它的生命周期expires,因此当浏览器关闭即完成一次会话,持久cookie并不会销毁。对于持久cookie,可以在同一个浏览器中传递数据,比如,你在打开一个淘宝页面登陆后,你在点开一个商品页面,依然是登录状态,即便你关闭了浏览器,再次开启浏览器,依然会是登录状态。这就是因为cookie自动将数据传送到服务器端,在反馈回来的结果。

5.cookie的相关代码

  javascript可以使用 document.cookie 属性来创建 、读取、及删除 cookie。

  cookie的几种常见属性:document.cookie="key=value;expires=失效时间;path=路径;domain=域名;secure;(secure表安全级别)

1 var c=document.cookie;//创建Cookie
2 
3 document.cookie="username=Alice;expires=Thu,18 Dec 2013 12:00:00 GMT; path=/";//修改cookie
4 
5 document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";//删除cookie,删除时不必指定 cookie 的值。

  在浏览器地址栏输入javascript:alert (document. cookie)就可以查看某个网站颁发的Cookie

  注意:Cookie功能需要浏览器的支持。

6.例子(设置cookie并显示友好信息)

 1 function setCookie(cname,cvalue,exdays){
 2     var d = new Date();
 3     d.setTime(d.getTime()+(exdays*24*60*60*1000));
 4     var expires = "expires="+d.toGMTString();//设置expires值
 5     document.cookie = cname+"="+cvalue+"; "+expires;//设置cookie
 6 }
 7 function getCookie(cname){
 8     var name = cname + "=";
 9     var ca = document.cookie.split(';');//获取cookie的值并拆分
10     for(var i=0; i<ca.length; i++) {
11         var c = ca[i].trim();
12         if (c.indexOf(name)==0) { return c.substring(name.length,c.length); }
13     }
14     return "";
15 }
16 function checkCookie(){//检测 cookie 是否创建
17     var user=getCookie("username");
18     if (user!=""){
19         alert("欢迎 " + user + " 再次访问");
20     }
21     else {
22         user = prompt("请输入你的名字:","");
23           if (user!="" && user!=null){
24             setCookie("username",user,30);
25         }
26     }
27 }

 

 

  

 

转载于:https://www.cnblogs.com/aoxiang6699/p/9387824.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值