js中的session与cookie机制
来源:互联网 发布:windows 清空dns缓存 编辑:程序博客网 时间:2024/06/05 04:28
在Javaweb开发中,经常用session和cookie机制存储一些状态信息,如用户名,密码,淘宝购物车等,今天就js中这两种机制作一下讨论。
首先,session是存储在服务器的一次回话,不会永久存储,当用户回话结束(浏览器关闭)后,经过session的生命周期后,session会被销毁,且不能在不同的页面中共享,即使是同一个页面。所以很多时候不能用session存储用户信息。
而cookie是存储在客户端(浏览器)的一种机制,永久存储,除非用户手动删除。每次用户向服务器请求的时候,都会携带本地存储的cookie。可以用cookie存储用户信息,设置的一些状态,跟踪用户行为等。
js中操作session主要采用sessionStorage,提供了4中主要的方法:
sessionStorage.setItem(key,value);//设置指定session值sessionStorage.getItem(key,value);//获取指定session值sessionStorage.removeItem(key);//移除指定sessionsessionStorage.clear();//清空session
下面主要介绍cookie和localStorage:
在js中操作cookie采用document.cookie获取用户传递给服务器的cookie值,返回的是一个字符串“key1=value1;key2=value2….”,解析该字符串获取想要的cookie值,若cookie值不存在,则放回空。解析的方法就有很多了,下面提供两种主要的解析方法
方法1:
function getCookieValue(cookieName) { var strCookie = document.cookie; var arrCookie = strCookie.split(";"); for(var i=0; i<arrCookie.length; i++) { var arr = arrCookie[i].split("="); if(arr[0] == cookieName) return arr[1]; } return "";}
方法2:
function getCookieValue(cookieName){ var c_start = document.cookie.indexOf(cookieName+"="); if (c_start!=-1) { c_start = c_start + cookieName+"=".length+1 var c_end =document.cookie.indexOf(";",c_start) if (c_end==-1){ c_end = document.cookie.length status = unescape(document.cookie.substring(c_start-1,c_end)) } } return status;}
设置cookie值,直接用document.cookie=”key1=value1;key2=value2…”不用担心之前的cookie值会被覆盖,此操作相当于addCookie(key,value),每个cookie值都是平行的。若设置的cookie键已经存在,则会修改之前的值。此外,还可以设置cookie的存储时间、访问权限等,下面给一个demo
function setCookieValue(key,value){ var date = new Date(); date.setTime(date.getTime()+100*24*3600*1000); document.cookie = key+"="+escape(value)+";path=/;expires="+date.toGMTString();}
其中,“path=/”设置cookie的访问权限,“/”表示全网络。默认页面的同目录下的其他页面及子目录下的页面都可以访问cookie。
“expires=”参数用于设置cookie的保存时长,单位ms,date.toGMTString()把时间转换成字符串。
另外,由于cookie是以字符串形式存储,可能会出现中文乱码问题,可以采用escape()和unescape()进行编码也解码。
最后简单介绍一下localStorage,也是一种在客户端进行本地存储的机制,相当于cookie的加强版,比cookie拥有更大的存储空间,用法同session。
- js中的session与cookie机制
- 综述PHP中的Cookie与Session机制
- Cookie 与 session 机制
- cookie与session机制
- session与cookie机制
- cookie与session机制
- Cookie与Session机制
- Cookie与Session机制
- session机制与cookie机制
- session机制与cookie机制
- Cookie与Session机制详解
- 详解cookie与session机制
- Cookie的机制与Session机制
- Java session机制与Cookie机制总结
- cookie机制与session机制的区别
- cookie机制与session机制的区别
- Cookie与Session机制,什么时候用Cookie,什么时候用Session
- PHP中的Cookie 与 Session
- React Native 之 TextInput使用
- Java 2
- java中FileInputStream,FileReader等的区别
- RequireJS进阶:模块的优化及配置的详解
- arcgis for javascript 画图结束添加多个图形问题
- js中的session与cookie机制
- 【转】一个C语言宏展开问题
- 第九周项目2-对称矩阵的压缩存储的实现与运用(3)
- 第9周项目4-广义表算法库及应用(2)
- MySQL 数据备份与还原
- 第九周项目3 建立稀疏矩阵三元组算法库
- 第十周【项目三-二叉树遍历思想解决问题】
- Oracle和mysql在实现分页上不同
- Android 快速发布开源项目到jcenter