4种会话追踪方式
来源:互联网 发布:诺基亚s60软件下载 编辑:程序博客网 时间:2024/05/11 16:00
会话追踪主要应用于网络通信方面,主要是让服务器端识别客户端,这样在同一个客户端提交数据的时候,服务器对其有一定的分辨能力,从而避免数据的混乱。
一、网络通信协议分类:
1. 有状态的协议: TCP/IP ,自从客户端与服务器连接上以后,这个连接会一直保持畅通! 持续保持连接状态。
比如:打电话,从双方接通开始,一直到任何一方挂断电话位置,期间一直保持畅通。
2. 无状态的协议:HTTP, 这是一种请求/响应模式的协议,当浏览器发起请求那一刻,与服务器建立了连接,当服务器给客户端浏览器做出响应以后,连接就中断!
比如:今天打开163首页,看到一些新闻:“热死了”, 这个网页隔着不动,过一个礼拜,再来看,新闻没有变!
区别:
1、有状态的连接协议,服务器知道客户端是谁,无状态的连接协议,服务器不知道客户端是谁。
2、由于http连接协议是无状态的,所以服务器不能辨别出,接收的多次请求,是来自同一个客户端,还是不同的客户端。
二、会话追踪分类
为了在无状态的连接协议之下,让web服务器能够分清楚哪些请求来自于哪些客户端,需要使用以下4种会话追踪方式:
1、Cookie
一个会话范围中,客户端第一次请求服务器时,没有记号,所以服务器生成一个记号,发送给浏览器,浏览器第二次、第三次、…第n次请求时,都会带着记号的。起始,这个记号也就是用来记录会话id的cookie总是服务器自动创建,发送给浏览器,自己也留一份对应一个Map. 客户端也会自动在下次请求时把记录的会话id的cookie发送给服务器。这个记录了会话id的cookie,生命周期与会话“同生共死”。
我们也可以额外手动添加一个Cookie给客户端
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><h1>a.jsp</h1><%//创建cookieCookie ck = new Cookie("a","1214");//设置存活时间ck.setMaxAge(10);//使用response添加cookieresponse.addCookie(ck);//cookie数据的传递,第一次都是从服务器往客户端发送,以后访问,//自己设置的cookie只要没有超过存活时间,就会往服务器发送,//而服务器设置的cookie只要会话没有结束,只会在第一次的时候服务器客户端发,//之后都是客户端给服务器发 %>Cookie一般要完成的任务:
(1)存放用户的偏好设置:文字的大小、背景的颜色..
(2)购物车技术中需要使用Cookie
2、url重写
因为客户端浏览器可以禁用cookie! 这样就会导致:
(1) 在一次新会话中,一个客户端第一次向服务器发起请求时,没有带sessionid这个记号,所以服务器会发一个记号给客户端。
(2)由于客户端禁用了cookie,所以就算服务器发送记号给客户端了,客户端也不接受,不存盘。
(3)当客户端在同一次会话中再次请求服务器时,也就不会再带着记号了!服务器还以为这次请求是另外一个新会话呢!继续发记号。
最终导致,服务器无法追踪会话了,分不清那些请求来自于哪些客户端了。
因此我们可以使用另一种技术:重写url,也就是服务器把生成的记号,加载每一个超链接的后面,这个技术的缺陷在于,中间不能掉链子,一旦有一个页面没有重写,那么这个记号就会消失
3、隐藏域
主要应用于form表单提交中input标签属性使用hidden隐藏
4、session
session更聪明, 如果cookie开着,就用cookie传递记号,如果session已经关闭了,就自动使用url重写!
- 4种会话追踪方式
- 实现会话追踪的4种方式
- 会话追踪
- 追踪sql会话 dbms_monitor
- [Servlet]会话追踪技术
- oracle 追踪一个SQL会话
- web会话追踪的实现
- web服务器四种追踪方式
- 关于使用会话追踪(session tracking)
- asp.net 两种会话数据方式
- 3种web会话管理的方式
- 3种web会话管理的方式
- 3种web会话管理的方式
- 3种web会话管理的方式
- 3种web会话管理的方式
- 3种web会话管理的方式
- 三种web会话管理的方式
- 3种web会话管理方式
- layui文件上传跨域回调显示
- /bin/bash^M: bad interpreter: No such file or directory
- python函数&对象&模块之函数
- char,varchar,varchar2类型对空格的处理
- 【Java】【HashMap】HashMap 同步性能比较
- 4种会话追踪方式
- oracle11g 导出表报EXP-00011:table不存在。
- TCP/IP详解一 ——TCP的可靠性保证方法
- 仿select下拉框,鼠标点击元素以外隐藏下拉框
- Redux 生产实践使用注意事项
- sd/mmc/tf插拔无法挂载文件系统
- react组件状态的一点说明
- 文件大小工具类.
- 基于ueditor-1.4.3.3实现图片上传到项目以外的目录下