技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152

因为做语音通信要用到,长连接,这里对各个协议的长短连接做个总结

刚接触HTTP请求就听说过HTTP请求有1.0和1.1两个版本(其实还有个0.9版本,因为只接受GET一种请求,不支持POST方法,因此客户端无法向服务器传递太多信息而为人们所忽略),而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但终究觉得对于长连接一直不明觉厉,有种抓不到关键点的感觉。

我们现在用的都是HTTP1.1版本,而HTTP1.1版本又是支持长连接的(也叫持久连接),因此我们平时用的都是长连接,

我之前一直这么认为的。经过最近的探索发现,这话并不是这样的。因为HTTP协议根本就没有长短连接这一说法。

众所周知,HTTP协议是基于请求/响应模式的,因此只要服务端给了响应,本次HTTP连接就结束了,或者更准确的说,是本次HTTP请求就结束了,下一次又是一个新的请求和新的响应,因此根本没有长连接这一说。那么自然也就没有短连接这一说了。

之所以网络上说HTTP分为长连接和短连接,其实本质上是说的TCP连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才有真正的长连接和短连接这一说。HTTP协议说到底是应用层的协议,而TCP才是真正的传输层协议,只有负责传输的这一层才需要建立连接。

因此“HTTP连接”这一概念压根就不应该出现,HTTP只是一个应用层的协议,根本就没有连接这一说法,就像FTP协议一样,我们

Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接相关推荐

  1. Wireshark工作笔记-对TCP连接与断开以及数据传输的实战分析

    首先要使用一个TCP/UDP Socket调试工具. 本次使用虚拟机NAT模式,主机IP地址为192.168.164.1,此时主机的/UDP Socket调试工具配置如下: 虚拟机采用Win7 IP地 ...

  2. Netty工作笔记0065---WebSocket长连接开发4

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这里,websocketserverprotocolhandler是通过一个状态码 101 这个可 ...

  3. Netty工作笔记0064---WebSocket长连接开发3

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152

  4. Netty工作笔记0063---WebSocket长连接开发2

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这样服务器的ws协议处理的websocket的handler就写完了 这里要注意这个地方就是业务逻 ...

  5. Netty工作笔记0062---WebSocket长连接开发

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 先写服务器 注意这部分代码就是从heartBeat的MyServer.java中copy过来的. ...

  6. Linux工作笔记-查看tcp与udp端口并对比Windows简单分析

    Linux查看端口: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : ...

  7. Netty工作笔记0081---编解码器和处理器链梳理

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个算法把包合起来,然后发出去,但是这算法,合起来的时候,可能把1个完整的数据,和另一个数据的一半 ...

  8. Netty工作笔记0078---Netty其他常用编解码器

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 netty还提供了这个解码器 这里咱们写以个例子看看,把解码器换成ReplayingDecoder ...

  9. Netty工作笔记0046---TaskQueue自定义任务

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这里注意,BsooGroup,中包含了一个NioEventGro0up, NioEventGrou ...

最新文章

  1. 尖峰 mysql 源码方向_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  2. mongodb之配置
  3. 线程和进程的对比之优缺点
  4. CF--思维练习--CodeForces - 220C Little Elephant and Shifts (STL模拟)
  5. python自定义异常捕获_python怎么自定义捕获错误
  6. linux centeros下Redis的安装
  7. java int 详解,int与Integer详解(java基础篇)
  8. 在控制台远程连接mysql数据库时,出现ERROR 2049 (HY000)错误
  9. ENVI入门系列教程---二、图像分析---10.基于专家知识决策树分类
  10. Atitit 微信支付 支付结果通用通知
  11. ctf 选择题 题库_看雪CTF题库平台 | 赛练结合,助你夺冠!
  12. 汇编语言 王爽 【第四版】 第一章 检测点1.1
  13. 制定项目进度计划的过程
  14. 编写一个第三方库(动态库和静态库)
  15. window10怎么设置共享计算机,Win10系统网络共享功能怎么用?Windows10网络共享功能使用方法...
  16. php strtotime 2038 时间戳,PHP的strtotime计算2038年以上日期的时间戳错误
  17. 应用调试(三)oops
  18. 什么是线程安全 什么是线程不安全
  19. Java调用被子类重写的方法
  20. js获取当前浏览器类型 和IE浏览器版本

热门文章

  1. python 近期用到的基础知识汇总(主要是numpy和pytorch的相关矩阵变化函数)(一)
  2. 3Dslicer +VS2013编译介绍
  3. 以setuptools版本太高为例,版本太高问题的解决方案
  4. ajaxSubmit的data属性
  5. 清水河畔论坛二手帖子爬虫
  6. Vue编写动态组件实践(render函数的使用心得)
  7. day5 ---- 数据类型及常用方法(字符串、列表)
  8. OAuth2实现原理
  9. Could not find leader nimbus
  10. 将Halcon导出的多个dxf文件合并成一个分图层的dxf文件