美文网首页码农庄园
三次握手四次挥手与http请求(笔记)

三次握手四次挥手与http请求(笔记)

作者: 小马过河R | 来源:发表于2024-09-13 10:57 被阅读0次

http请求实际上是 TCP连接。

是的,HTTP请求实际上是通过TCP(传输控制协议)连接来传输的。HTTP(超文本传输协议)是一种应用层协议,它定义了客户端(如浏览器)和服务器之间交换数据的格式。然而,HTTP本身并不直接处理网络连接的建立和维持,这是由TCP协议来完成的

以下是HTTP请求通过TCP连接传输的基本步骤:

1. **三次握手**:客户端和服务器通过TCP协议进行三次握手来建立连接。这个过程包括以下步骤:

  - 客户端发送一个SYN(同步序列编号)包到服务器,并进入SYN_SENT状态。

  - 服务器收到SYN包,发送一个SYN+ACK(同步序列编号+确认)包作为响应,并进入SYN_RECEIVED状态。

  - 客户端收到SYN+ACK包后,发送一个ACK(确认)包,并进入ESTABLISHED状态。服务器收到ACK包后也进入ESTABLISHED状态,此时连接建立完成。(三次互通之后才建立起连接传输数据

三次握手

问:为什么是三次握手?不是两次、四次?

答:

三次握手的原因:

三次握手才可以阻止重复历史连接的初始化(主要原因);

三次握手才可以同步双方的初始序列号;

三次握手才可以避免资源浪费;

如果是两次握手连接,就无法阻止历史连接,浪费了服务端的资源。

可以看到,如果采用两次握手建立 TCP 连接的场景下,服务端在向客户端发送数据前,并没有阻止掉历史连接,导致服务端建立了一个历史连接又白白发送了数据,妥妥地浪费了服务端的资源

因此,要解决这种现象,最好就是在服务端发送数据前,也就是建立连接之前,要阻止掉历史连接,这样就不会造成资源浪费,而要实现这个功能,就需要三次握手。(即多建立了一个没用的连接

所以,TCP 使用三次握手建立连接的最主要原因是防止「历史连接」初始化了连接。

四次的话没必要。因为2、3次可以合成为一次。变为3次即可。

问:TCP报文失败重传?TCP如何实现可靠传输和流量控制

答:

以字节为单位的滑动窗口技术(主要解决流量控制);

重传机制;

2. **发送HTTP请求**:一旦TCP连接建立,客户端就可以发送HTTP请求到服务器

3. **服务器响应**:服务器接收到HTTP请求后,处理请求并返回HTTP响应。

4. **四次挥手**:当数据交换完成后,客户端和服务器需要通过四次挥手来关闭连接。这个过程包括以下步骤:

  - 客户端发送一个FIN(结束)包,并进入FIN_WAIT_1状态。

  - 服务器收到FIN包后,发送一个ACK包,并进入CLOSE_WAIT状态。

  - 服务器发送一个FIN包,并进入LAST_ACK状态。

  - 客户端收到FIN包后,发送一个ACK包,并进入TIME_WAIT状态。服务器收到ACK包后,进入CLOSED状态,客户端在等待一段时间后也进入CLOSED状态。

四次挥手

通过这种方式,HTTP请求可以在TCP连接的保障下安全、可靠地传输。

参考文章:TCP 三次握手与四次挥手深入探究

相关文章

  • Android 性能优化10 --- 网络优化02(probuf

    一. TCP三次握手与四次挥手 二. HTTP1.0 1.请求行 {请求方法} + {URL字段} + {HTTP...

  • 网络传输握手

    HTTP 三次握手, HTTP 四次挥手 SSL 四次握手 1.客户端请求建立SSL链接,并向服务端发送一个随机数...

  • HTTP 一些知识点的总结

    三次握手和四次挥手 请求类型 SYN :请求建立 ACK :请求确认 FIN :请求关闭 三次握手 1:客户端发送...

  • 2018-06-26

    HTTP请求的三次握手,四次挥手 三次握手客户端发送一个带有SYN(建立连接)的TCP报文到服务器,这个三次握手的...

  • 2、tcpdump抓包分析三次握手和四次挥手

    TCP为什么需要三次握手、四次挥手 三次握手 三次握手 四次挥手 SYN flood攻击

  • TCP的3次握手&4次挥手

    详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ” 为什么“握手”是三次,“挥手”却要四次? 建立连接时,被动...

  • TCP连接和关闭过程

    TCP三次握手过程及四次挥手过程 HTTPS加密请求过程

  • TCP/HTTP协议

    HTTP 发展史 http1.0中,每请求一个http请求都需要建立一次tcp连接,而tcp的三次握手和四次挥手相...

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

    1、三次握手 2、四次挥手 1、三次握手 (1)三次握手的详述 首先Client端发送连接请求报文,Server段...

  • golang面试 探探

    发送http请求的过程以及用到的协议,传输层用到的是tcp还是udp tcp与udp协议以及三次握手四次挥手的详细...

网友评论

    本文标题:三次握手四次挥手与http请求(笔记)

    本文链接:https://www.haomeiwen.com/subject/servljtx.html