002_cookie的session_id解释
HTTP协议(http://www.w3.org/Protocols/)是“一次性单向”协议。
服务端不能主动连接客户端,只能被动等待并答复客户端请求。客户端连接服务端,发出一个HTTP Request,服务端处理请求,并且返回一个HTTP Response给客户端,本次HTTP Request-Response Cycle结束。
我们看到,HTTP协议本身并不能支持服务端保存客户端的状态信息。于是,Web Server中引入了session的概念,用来保存客户端的状态信息。
这里用一个形象的比喻来解释session的工作方式。假设Web Server是一个商场的存包处,HTTP Request是一个顾客,第一次来到存包处,管理员把顾客的物品存放在某一个柜子里面(这个柜子就相当于Session),然后把一个号码牌交给这个顾客,作为取包凭证(这个号码牌就是Session ID)。顾客(HTTP Request)下一次来的时候,就要把号码牌(Session ID)交给存包处(Web Server)的管理员。管理员根据号码牌(Session ID)找到相应的柜子(Session),根据顾客(HTTP Request)的请求,Web Server可以取出、更换、添加柜子(Session)中的物品,Web Server也可以让顾客(HTTP Request)的号码牌和号码牌对应的柜子(Session)失效。顾客(HTTP Request)的忘性很大,管理员在顾客回去的时候(HTTP Response)都要重新提醒顾客记住自己的号码牌(Session ID)。这样,顾客(HTTP Request)下次来的时候,就又带着号码牌回来了。
我们可以看到,Session ID实际上是在客户端和服务端之间通过HTTP Request和HTTP Response传来传去的。
我们看到,号码牌(Session ID)必须包含在HTTP Request里面。关于HTTP Request的具体格式,请参见HTTP协议(http://www.w3.org/Protocols/)。这里只做一个简单的介绍。
在Java Web Server(即Servlet/JSP Server)中,Session ID用jsessionid表示(请参见Servlet规范
最新文章
- 【UWP】解析GB2312、GBK编码网页乱码问题
- 给ListBox每项加图标
- Java日志规范
- Atitti 知识图谱构建方法attilax 总结
- 漫谈计算摄像学 (一):直观理解光场(Light Field)
- mysql 执行状态分析 show processlist
- Howto add permanent static routes in Ubuntu
- Redis中的批量删除数据库中的Key
- (转载)delphi checklistbox用法
- POJ 2560 Freckles Prime问题解决算法
- APACHE 服务器开启URL REWRITE模块的方法
- SVN使用基础
- javascript Map和Set
- Java基础语法<;五>; 大数值BigInteger BigDecimal
- css3 笔记 背景
- 阿里云服务器配置phpstudy实现域名访问【图文教程】
- 增加tomcat的运行速度
- Mybatis经常被问到的面试题
- JavaSE-基础语法(一)--数据类型及包装类
- ACM-ICPC 2018 沈阳赛区网络预赛 J. Ka Chang (分块思想)
热门文章
- git入门 创建版本库, 版本管理 分支 标签
- CSS基础知识思维导图xmind
- 前端入门3-CSS基础
- 网站的增 / 删 / 改 / 查 时常用的 sql 语句
- TypeScript的概要和简介
- 穷举,迭代,while循环
- Navicat 连接MySQL数据库 报错2059 - authentication plugin &#39;caching_sha2_password&#39;的解决办法
- SSM框架—环境搭建(MyEclipse+Tomcat+MAVEN+SVN)
- 2. svg学习笔记-svg中的坐标系统和viewbox
- 【爬坑】远程连接 MySQL 失败