cookie

  1 <!DOCTYPE HTML>
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5 <title>无标题文档</title>
  6 <script>
  7 //cookie创建
  8 //document.cookie="name=value";//名值对
  9 //document.cookie="name=wangyang; pass=123456"//只有第一个有效
 10 //document.cookie="name=wangyang&pass=123456"//不是常规写法
 11 //document.cookie="age="+encodeURIComponent("中文");//多个cookie时由分号空格分隔
 12 /*
 13 旧的浏览器,中文会产生乱码问题,解决方案:
 14 先编码,再解码
 15 encodeURIComponent
 16 decodeURIComponent
 17 另一种
 18 escape
 19 unescape
 20 */
 21 //var d=new Date();
 22 //d.setDate(d.getDate()-1);//当前时间加1天
 23 //alert(d)
 24 //cookie保存时间
 25 //document.cookie="name=wangyang; expires="+d.toGMTString();//不写toGMTString时,IE不支持
 26 
 27 //修改就是重新赋值,删除就是把过期时间调整到当前时间之前
 28 //document.cookie="name=wangyang"
 29 //document.cookie="name=wang"
 30 
 31 //指定可访问cookie的主机名
 32 /*
 33 www.baidu.com/1.html
 34 mp3.baidu.com/
 35 */
 36 //document.cookie("name=wang; domain=.baidu.com")
 37 
 38 //默认情况下,如果在某个页面创建一个cookie,那么该页面所在的目录中的其他页面也可以访问该cookie
 39 //如果这个目录下还有子目录,则在子目录中也可以访问
 40 //外围的其他目录不允许访问
 41 /*
 42     /a/1.html
 43     /b/2.htm
 44 */
 45 //document.cookie("name=wang; path=/a")//表示仅a目录有权访问
 46 
 47 
 48 
 49 //获取cookie
 50 //alert(document.cookie+'
'+decodeURIComponent(document.cookie))
 51 //alert(typeof document.cookie)//类型为字符串
 52 //alert(document.cookie)
 53 
 54 
 55 //addCookie("uname", "gblw2", 2);
 56 alert(getCookie("uname"))
 57 
 58 
 59 function addCookie(_name, _value, _day){
 60     var d = new Date();
 61     d.setDate(d.getDate()+_day);
 62     document.cookie=_name+"="+_value+"; expires="+d.toGMTString();
 63 }
 64    
 65 function getCookie(_name){
 66     // key=value; key2=value; key3=value
 67     var str="";
 68     var col=document.cookie.split("; ");
 69     for(var i in col){
 70         var arr=col[i].split("=");
 71         if(arr[0]==_name){
 72             str=arr[1];
 73             break;
 74         }
 75     }
 76     return str;
 77 }
 78 
 79 
 80 
 81 
 82 </script>
 83 </head>
 84 
 85 <body>
 86 <pre>
 87 HTTP是一个客户端和服务器端请求和应答的标准(TCP/IP协议)。客户端是终端用户,服务器端是网站。通过使用Web浏览器,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
 88 
 89 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
 90 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
 91 
 92 
 93 
 94 cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。 
 95 
 96 它可以用于以下几种场合:
 97 
 98 (1)保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。 cookie还可以设置过期时间,当超过时间期限后,cookie就会自动消失。因此,系统往往可以提示用户保持登录状态的时间:常见选项有一个月、三个 月、一年等。
 99 
100 (2)跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情况。如果每次都需要选择所在地是烦琐的,当利用了 cookie后就会显得很人性化了,系统能够记住上一次访问的地区,当下次再打开该页面时,它就会自动显示上次用户所在地区的天气情况。因为一切都是在后 台完成,所以这样的页面就像为某个用户所定制的一样,使用起来非常方便。
101 
102 (3)定制页面。如果网站提供了换肤或更换布局的功能,那么可以使用cookie来记录用户的选项,例如:背景色、分辨率等。当用户下次访问时,仍然可以保存上一次访问的界面风格。
103 
104 (4)创建购物车。正如在前面的例子中使用cookie来记录用户需要购买的商品一样,在结账的时候可以统一提交。例如淘宝网就使用cookie记录了用户曾经浏览过的商品,方便随时进行比较。
105 
106 
107 cookie的缺点主要集中于安全性和隐私保护。主要包括以下几种:
108 
109 (1)cookie可能被禁用。当用户非常注重个人隐私保护时,他很可能禁用浏览器的cookie功能;
110 (2)cookie是与浏览器相关的。这意味着即使访问的是同一个页面,不同浏览器之间所保存的cookie也是不能互相访问的;
111 (3)cookie可能被删除。因为每个cookie都是硬盘上的一个文件,因此很有可能被用户删除;
112 (4)cookie安全性不够高。所有的cookie都是以纯文本的形式记录于文件中,因此如果要保存用户名密码等信息时,最好事先经过加密处理。
113 </pre> 
114 </body>
115 </html>
原文地址:https://www.cnblogs.com/thestudy/p/5628056.html