HTTP协议是“一次性单向”协议。
服务端不能主动连接客户端,只能被动等待并答复客户端请求。客户端连接服务端,发出一个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里面。

最新文章

  1. C标准头文件<stdlib.h>
  2. String.Empty、null、“” 区别
  3. CentOS 6主机上的RStudio Server安装步骤
  4. 【译】UNIVERSAL IMAGE LOADER.PART 2---ImageLoaderConfiguration详解
  5. [BZOJ1789][BZOJ1830][Ahoi2008]Necklace Y型项链
  6. oc-19-成员变量修饰符
  7. 设计模式(六):Singleton 单件模式 -- 创建型模式
  8. EasyUI项目驱动学习
  9. Linux - 简单好用的计算器 bc
  10. Java Fileupload
  11. [转帖]AMOLED的技术和OLED有哪些联系和区别
  12. hdu-1430 魔板 康拓展开+映射优化
  13. Flash10下复制到剪切板的一种新方法
  14. linux dd指令
  15. HDU 2063 (二分图最大匹配)
  16. WinForm 随手记
  17. Django使用manage.py备份与恢复数据
  18. webpack4构建react脚手架
  19. 20155307 2016-2017-2 《Java程序设计》第5周学习总结
  20. mongoose中给字段添加索引的方法

热门文章

  1. SpringBoot内置的各种Starter是怎样构建的?--SpringBoot源码(六)
  2. vue缓存当前路由(在输入框中输入信息后,跳转其他路由再回来,仍可看到刚刚输入的内容等)
  3. (转)GNU风格ARM汇编语法指南(非常详细)3
  4. 用纯Python实现循环神经网络RNN向前传播过程(吴恩达DeepLearning.ai作业)
  5. winform不能循环引用,使用接口传值到界面
  6. vuepress-theme-reco + Github Actions 构建静态博客,部署到第三方服务器
  7. Journal of Proteome Research | SAAVpedia: identification, functional annotation, and retrieval of single amino acid variants for proteogenomic interpretation | SAAV的识别、功能注释和检索 | (解读人:徐洪凯)
  8. 一明单词本持续更新ing...
  9. CMDB_Agent版本
  10. Django之模板层细说