当前位置: 首页 > article >正文

HTTP协议的无状态和无连接

无连接


①无连接的含义
这里所说的无连接并不是指不连接,客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接主要考虑到WWW服务器面向的是Internet中成干上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。
②好处与弊端
好处: 限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
弊端: 当前网页变得越来越复杂,里面可能嵌入了很多图片,如果每次访问图片都需要建立一次 TCP 连接就显得很低效。后来,提出了Keep-Alive 用来解决效率低的问题。但是keep-alive并不是长久之计,长时间的tcp连接容易导致系统资源无效占用。配置不当的keep-alive,有时比重复利用连接带来的损失还更大,得不偿失。所以,正确地设置keep-alive timeout时间非常重要。


无状态


①无状态的含义
即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后,浏览器将通过TCP/IP协议与指定的服务器建立连接。
②好处与弊端
好处: 大大减轻了服务器记忆负担,从而保持较快的响应速度。
弊端: 客户端与服务器进行动态交互的 Web 应用程序出现之后,最常用是电商平台,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户是谁,用户选择了什么商品,浏览了什么商品,这都是提升用户体验的。于是,两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。
如何保持状态?在这里插入代码片
cookie
Cookies 最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是 Cookies 的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入 Cookies,以便在最后付款时提取信息。
session
它是通过服务器来保持状态的,当客户端访问服务器时,服务器根据需求设置 Session,将会话信息保存在服务器上,同时将标示 Session 的 SessionId 传递给客户端浏览器,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie.因此当我们完全禁掉浏览器的cookie的时候,服务端的session也会不能正常使用。


http://www.kler.cn/a/531362.html

相关文章:

  • 企微SCRM驱动企业私域流量营销与客户关系管理的智慧革新
  • OSCP - Proving Grounds - Roquefort
  • 海外问卷调查渠道查,如何影响企业的运营
  • C# 类与对象详解
  • 笔灵ai写作技术浅析(四):知识图谱
  • 【Linux】使用管道实现一个简易版本的进程池
  • HAO的Graham学习笔记
  • 想表示消息返回值为Customer集合
  • 实现数组的乱序输出、实现数组去重
  • Java编程范式与计算机系统基础
  • Vue 图片引用方式详解:静态资源与动态路径访问
  • webpack传输性能优化
  • 【Word快速设置论文公式居中编号右对齐】
  • Visual Basic语言的移动应用开发
  • 【LLM】Layer Norm 和 RMS Norm 的区别?
  • C#常用744单词
  • Baklib推动数字化内容管理解决方案助力企业数字化转型
  • 深度学习-98-大语言模型LLM之基于langchain的代理create_react_agent工具
  • 二叉树--链式存储
  • 无用知识研究:std::initializer_list的秘密
  • 模型蒸馏(ChatGPT文档)
  • npm知识
  • Smart contract -- 钱包合约
  • 代码随想录算法训练营Day51 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
  • 【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)
  • 17.3.5 添加水印