cookie
来源:互联网 发布:淘宝售前客服流程视频 编辑:程序博客网 时间:2024/06/05 08:30
什么是cookie
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。
页面用来保存信息
比如:自动登录、记住用户
是以域名为单位的,baidu.com/a.html和baidu.com/b.html是一个
特性
同一个网站中所有页面共享一套cookie
数量、大小有限
过期时间
两种:持久性cookie:会被存储到客户端的硬盘上
会话cookie:不会被存储到客户端的硬盘上,而是放在浏览器进程所处的内存当中,当浏览器关闭则该回话cookie就销毁了
cookie的组成
cookie 由名/值对形式的文本组成:name=value。完整格式为:
name=value;[expires=date]; [path=path]; [domain=somewhere.com]; [secure]
中括号是可选,name=value 是必选。
expires=date 失效时间,如果没有声明,则为浏览器关闭后即失效。声明了失效时间,那么时间到期后方能失效。
domain=domain 访问域名,用于限制只有设置的域名才可以访问,那么没有设置,会
默认限制为创建 cookie 的域名
secure 安全设置,指明必须通过安全的通信通道来传输(HTTPS)才能获取 cookie。
JS代码实现cookie的一些操作
创建cookie
function setCookie(name, value, expires, path, domain, secure) {<span style="font-family: KaiTi_GB2312;"> </span> var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value); if (expires instanceof Date) { cookieText += '; expires=' + expires; } if (path) { cookieText += '; expires=' + expires; }<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>if (domain) {<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span><span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>cookieText += '; domain=' + domain;<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>}<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>if (secure) {<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span><span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>cookieText += '; secure';<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>}<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>document.cookie = cookieText;<span style="font-family: KaiTi_GB2312;font-size:24px;"> </span>}
获取cookie(各个属性之间是以“;”隔开的)
function getcookie(name){var arr=document.cookie.split(';');for(var i=0;i<arr.length;i++){var arr2=arr[i].split('=');if(arr2[0]==name){return arr2[1];}return '';}}
删除cookie(设置时间为过期时间)
function unsetCookie(name) {document.cookie = name + "= ; expires=" + new Date(0);}
举例子(记住用户名)
客户端代码
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head> <meta charset="utf-8" /> <title></title><script type="text/Javascript" src="demo.js"></script></head><body><form id="form1" action="http://www.baidu.com/">用户名:<input type="text" name="user" /><br>密码:<input type="password" name="pass" /><br><input type="onsubmit" value="登录“ /></form></body></html>
demo.js文件代码
function getcookie(name){var arr=document.cookie.split(';');for(var i=0;i<arr.length;i++){var arr2=arr[i].split('=');if(arr2[0]==name){return arr2[1];}return '';}}function setcookie(name,value,iDay){var odate=new Date();odate.setDate(odate.getDate()+iDay);document.cookie=name+'value';'expires='+odate;}//alert(document.cookie);//alert(getcookie('user'));window.onload=function (){var oForm=document.getElementById('form1');var oUser=document.getElementsByName('user')[0];oForm.onsubmit=function(){setcookie('user',oUser.value,14);}oUser.value=getcookie('user');}
PS:我用火狐浏览器做的实验,右击页面——“查看页面信息”——“安全”——“查看cookie”,在这里可以查看火狐浏览器的cookie。
总结
学习cookie这个东西,以前总是说,从宏观到细节,没有感觉到什么,但现在好像有点感悟,我认为,要想自己的学习更加高效和快速,找到合适方法去实施,更加重要。
- Cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- Cookie
- Cookie
- Cookie
- cookie
- cookie
- cookie
- Cookie
- cookie
- Cookie
- cookie
- cookie
- 进程上下文和中断上下文
- 2014年5个最流行前端框架对比
- uva 1630——Folding
- 《失落的世纪致富经典》卷二:1致富就是遵照“既定的法则”做事
- 页面搜索
- cookie
- RadioButton的drawableTop资源大小调整
- F - Stealing Harry Potter's Precious hdu 4771
- POJ-3224
- JgibbLDA输出结果说明与示例
- 新闻发布系统—完后总结
- 深拷贝和浅拷贝
- 一些常用的IOS开发网站
- 小波包变换的入门 - - -MATLAB