浅谈cookie
来源:互联网 发布:淘宝店铺装修的意义 编辑:程序博客网 时间:2024/06/07 04:48
浅谈cookie
这一阵在做一个小的项目,叫做西邮成绩,因为在代码设计中牵扯到了跳转页面仍需保存用户信息的问题,查询后知道了这是一个叫做cookie的玩意,所以我在网上找了一些资料来分享一下我知道的cookie那些事。
1.什么是cookie?
cookie是存储在用户本地终端上的数据,某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据。cookie最大保存为4096字节的数据。cookie的失效方式有两种:第一是时间过期,第二是会话窗口关闭。
2.为什么要用cookie?
就拿我做的这个小项目而言吧,第一个页面是登录页面,用户输入用户名和学号进行登录操作,登录成功后显示成绩页面,但是还需利用用户输入的信息和登录接口返回的session来向成绩接口传送信息。因为这是两个html和两个js文件,所以直接传送数据是不可能的,所以我就利用了cookie来传递数据,这是利用了cookie的失效性质2来进行的,即就是当会话窗口关闭时,向浏览器发送的cookie才会失效。当然了,cookie还有更强大的功能,我只是以一个初学者的角度来看待这个玩意。
3.cookie的形式
cookie是以键值对的形式保存的,通常有这么三类
- 用户名
- 密码
- 日期
当用户第一次访问页面时,浏览器会将用户名,密码,日期存储在cookie中,下次登录时用户名等信息就可以从cookie中取出,我在设计时有一个记住密码的功能,这就是那个原理。当然cookie里还保存着一些浏览过的网页啊,停留的时间啊等很多信息,但是我们在进行客户端开发时通常只用到了这几个信息。
4.对cookie的操作
- 创建cookie
- 获取cookie
- 删除cookie
创建无疑就是给cookie存储什么信息,当然了需要一些传递参数,变量名,值,以及存储时间。
document.cookie = "username=" + user;document.cookie = "password=" + password;
js原生的创建方法就是document.cookie = “key” + value;key为所创建的名称,value指存储的真实值。js里还有一种对cookie操作的方法——jquery。代码 形式也很简单,这里就不再列出。不管是jquery还是js原生,操作都很简单,但是相比之下原生还是比较好的,在开发时能用原生还是用吧,因为太多的插件会降低开发效率。
接着就是从cookie中获取用户信息 了,代码如下:
function getCookie(name){ var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) return unescape(arr[2]); else return null;}
很简单的只需要传递需要取出value的key值就可以了,比如是
var user = getCookie("username");
这样username的值就会保存在user中了,我们就可以在另一页面中对上一页面的信息进行处理了。
清楚cookie的方法就是给key里面保存一个空值就好了,对于彻底删除cookie,代码如下:
function delCookie(key,value){ var date = new Date(); date.setTime(date.getTime() - 10000); var test = date.toGMTString(); document.cookie = key + "=" + value + "; expire=" + test + "; path=/";}
即通过时间来设置cookie属性。
5.cookie的弊端
cookie的功能很强大,但是存在的弊端也不少,比如浏览器cookie大小限制,比如有些状态不能保存在客户端,但是最大的问题是暴露用户信息。如果cookie被人拦截了就可以获取所有session信息,造成信息泄露,失去安全性。
6.cookie与session
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。cookie之前已较详细说明过了,现在说说session。
session我只在传递变量,创建方面谈谈。如果要在诸多Web页间传递一个变量,那么用Session变量要比通过QueryString传递变量可使问题简化。session变量不需要事前说明,创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理。当然这也就会造成代码变得随意,不好维护。当然session也有很多优点和缺点,这里就不再说了。
0 0
- 浅谈Cookie
- 浅谈cookie
- cookie浅谈
- 浅谈cookie
- 浅谈Cookie
- 浅谈Session和Cookie
- Session Cookie 浅谈
- 浅谈浏览器cookie
- 浅谈浏览器cookie
- 浅谈浏览器cookie
- 浅谈浏览器cookie
- Cookie/Session浅谈
- 浅谈cookie和session
- 浅谈session和cookie
- 浅谈cookie机制
- Session,Jsessionid, Cookie浅谈
- cookie相关的浅谈
- 浅谈Cookie和Session
- 换肤框架
- 纽摄(上)
- android-UniversalMusicPlayer(Google出品)
- android.content.res.Resources$NotFoundException: String resource ID #0x1
- AngularJS实现动态添加输入控件功能
- 浅谈cookie
- github应用
- Java实现对List去重
- Grunt个人学习
- windows dos合并文件命令 (copy与 type(这个更好用 ))
- 模式识别(Pattern Recognition)学习笔记(三十六)-- 动态聚类算法
- Scala开发环境搭建
- Android开发学习资料收集
- POJ3278 Catch That Cow BFS入门