第二十二天 http状态管理技术-cookies和session
来源:互联网 发布:淘宝生鲜都发空运吗 编辑:程序博客网 时间:2024/06/10 03:26
1.http状态管理
a.为什么要对http协议进行状态管理?
因为http协议是一个无状态的协议,优点是可以利用有限的资源对多个客户方服务。
但是,对于特定的应用,比如说购物系统,需要记录客户端的状态,此时,需要对http协议进行状态管理。
b.如何进行状态管理?
1.在客户端保存用户的状态,即将用户的状态保存在服务器端,即cookie技术;
2.在服务器端保存用户的状态,即将用户的状态保存在服务器端,即session技术;
2.cookie技术
1.什么是cookie技术?
浏览器访问某个服务器时候,服务器会创建一部分数据,在响应数据包中以消息头set-session的形式发送给浏览器,浏览器会将这部分数据保存下来。
当浏览器再次访问服务器的时候,会将这部分数据发送给服务器。通过这种方式,服务器可以维护用户的状态。
a.用法:
Cookie cookie=new Cookie(String name,String value);
response.addCookie(cookie);
cookie的生存时间,在默认的情况下,cooki会保存在内存当中,所以当浏览器关闭的时候,cookie会丢失。
但是我们可以设置cookie的生存时间,cookie.setMaxAge(int seconds);
second>0的时候:浏览器关闭,cookie会以文件的方式保存在硬盘上
second=0的时候:删除
second<0的时候:默认的方式,浏览器关闭,cookie会保存在内存;
b.编码问题:
cookie的值只能是Ascii字符,所以对于中文,可以将其转换成ascii字符。我们可以在保存cookie的值时,使用String URLEncoding.encode("张三",“utf-8”);
读取的时候,URLDecoder.decoder();
c.查询:
Cookie[] cookies=request.getCookie();
如果找不到任何的cookie,返回null
cookie.getName()获取cookie的名称
cookie.getValue()获取cookie的值
d.路径问题:
在创建cookie时候,都有一个默认的path,该值是创建该cookie的组件的地址。
此时,该path是 从应用名(也就是工程名)前面的‘’/‘’开始.
当浏览器访问服务器时候,会比较要访问的地址是否小于等于path,如果小于会把cookie携带给服务器;
d.1 我们可以修改path,使用cookie.setPath(" ")来修cookie的path
比如:cookie.setPath("/工程名"),那么访问工程名下的所有Servlet的时候,都会携带这个cookie
cookie.setPath("/")访问服务器所有的应用的时候,都会携带对应的cookie。
d.2我们还可以修改cookie域,比如:cookie.setDomain(".abc.com");那么浏览器会比较要访问的地址的
域名是否匹配,然后再比较path
e.cookie的限制
e.1 cookie只保存字符串,并且对于中文,需要编码。
e.2cookie的个数也有限制,本地的最大数量大约为300个左右
e.3cookie的大小也有限制(4k左右)
e.4cookie不是很安全
e.5cookie可以被用户禁止
使用的场合:记录用户的登录习惯。网页换肤。自动登录。购物车
- 第二十二天 http状态管理技术-cookies和session
- ASP.NET状态管理(Cookies,Session,ViewState,Application...)
- Http Session&Cookies
- HTTP Session Cookies
- [转]浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存 .
- 浅析http协议、cookies和session机制、浏览器缓存
- 【转载】浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- 浅析http协议、cookies和session机制、浏览器缓存
- CyclicBarrier
- javascript:touch事件
- 持久化存储技术之SharedPreferences存储
- D3 GEO应用专题(一):绘制旋转的3D地球
- 搜索 J
- 第二十二天 http状态管理技术-cookies和session
- 机器学习adaboost实现
- 2017年河南省ACM省赛 Problem F: Binary to Prime
- C# Winform Chart控件使用
- 【集合类分析】LinkedHashMap
- Special equations ----(hdu4569)数学思维
- Spring MVC 学习手记(2)- @RequestMapping注解
- 编译安装mysql
- 平衡查找树之2-3查找树