IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> http协议和websocket协议 -> 正文阅读

[网络协议]http协议和websocket协议

http协议

  • 半双工协议, 服务端没法主动发送数据到客户端, 只能通过客户端请求返回

  • HTTP协议的长连接和短连接,本质上其实是TCP协议的长连接和短连接!我们知道,HTTP协议属于应用层协议,在传输层使用TCP协议,而在网络层使用IP协议

    IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上创建可靠的传递数据包,使得在网络上的另一端可以收到发送端发出的所有数据包,并且顺序还要与发出的顺序一致。所以TCP必须具有可靠,面向连接的特点。

  • 从HTTP/1.1起,默认使用长连接,用以保持会话的连接特性。使用长连接的HTTP协议,会在响应头中加入这行代码:Connection:keep-alive;

  • 在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立好的连接。但Keep-Alive也不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。我们要注意,实现长连接要客户端和服务端都支持长连接。

  • 什么是短连接

    • 短连接(连接通到会关闭, 新的请求要重新建立连接)
  • 如何理解HTTP协议是无状态的

    很多人都知道HTTP协议是无状态的,这里的无状态,指的是协议对于事务处理没有记忆的能力,服务器不知道客户端是什么状态。也就是说,这次打开一个服务器上的网页,和你之前打开这个服务器上的网页之间没有任何联系。

    HTTP虽然是一个无状态的面向连接的协议,但无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。

  • **TCP连接:**当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接。当读写操作完成后,双方不再需要这个连接时,它们就可以释放这个连接,而连接的建立是需要进行3次握手的,释放则需要进行4次挥手

  • TCP三次握手和四次挥手过程

    既然上面我们说到了三次握手和四次挥手,健哥就再扩展一下说说这两个操作的实现过程。

    三次握手:先向HTTP服务器发起TCP的确认请求

    • 客户端 --> SYN --> 服务器
    • 服务器 --> SYN+ACK —>客户端
    • 客户端 --> ACK --> 服务器

    四次挥手:客户端要和服务器断开TCP连接

    • 客户端 --> FIN +ACK —> 服务器
    • 服务器 --> FIN —> 客户端
    • 服务器 --> ACK --> 客户端
    • 客户端 --> ACK —> 服务器

WebSocket

  • 全双工协议且是长连接(连接通道不会关闭), 服务端也可以主动发送数据到客户端
  • 是http协议升级而来, 后续的连接直接建立在tcp上传输
  • 在这里插入图片描述
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:27:49  更:2022-09-24 21:28:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 5:33:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计