跳到主内容

前端必备HTTP知识之三次握手

· 3分钟阅读

作为一个前端开发,除了需要懂的基本的HTML,CSS,Javascript之外,懂得一些HTTP相关的知识点也非常重要,能够帮助前端开发提升系统性能。

网络七层协议

要了解HTTP协议,首先了解HTTP协议处于网络七层协议的哪一层呢?

  • 应用层
  • 表示层
  • 会话层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层

网络七层协议

这里不针对七层协议进行详细介绍,我们只需要知道HTTP协议是在应用层,TCP/IP协议是在传输层

HTTP协议是什么

HTTP协议全称是超文本传输协议,主要用来服务端和客户端传输数据制定的协议,它是无状态的,意味着每次客户端请求服务端都不知道你是谁,但是我们可以通过 cookie 或者 session 来解决http无状态问题

HTTP三次握手

既然客户端与服务器要传输数据,那么就需要建立客户端和服务端的连接,这就需要用到三次握手

三次握手的流程

  1. 客户端发送syn包即 syn=i 到客户端,然后进入SYN_SENT 状态

  2. 服务端接收到客户端的 syn 包,对其 +1,即 ack=i+1 然后也要发送自己的 syn 即 syn=j 包给客户端,把ack和syn返回给客户端,进入 SYN_RECV 状态

  3. 客户端接收到ack和syn包后,对服务器返回的syn + 1 即 ack=j+1 ,再把 ack 返回给服务端,这时候客户端和服务端就完成整个连接过程

三次握手流程图,直接看图加深印象,图片来源网络,侵删

HTTP三次握手