作为一个前端开发,除了需要懂的基本的HTML,CSS,Javascript之外,懂得一些HTTP相关的知识点也非常重要,能够帮助前端开发提升系统性能。
网络七层协议
要了解HTTP协议,首先了解HTTP协议处于网络七层协议的哪一层呢?
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
这里不针对七层协议进行详细介绍,我们只需要知道HTTP协议是在应用层,TCP/IP协议是在传输层
HTTP协议是什么
HTTP协议全称是超文本传输协议,主要用来服务端和客户端传输数据制定的协议,它是无状态的,意味着每次客户端请求服务端都不知道你是谁,但是我们可以通过 cookie 或者 session 来解决http无状态问题
HTTP三次握手
既然客户端与服务器要传输数据,那么就需要建立客户端和服务端的连接,这就需要用到三次握手
三次握手的流程
客户端发送syn包即 syn=i 到客户端,然后进入SYN_SENT 状态
服务端接收到客户端的 syn 包,对其 +1,即 ack=i+1 然后也要发送自己的 syn 即 syn=j 包给客户端,把ack和syn返回给客户端,进入 SYN_RECV 状态
客户端接收到ack和syn包后,对服务器返回的syn + 1 即 ack=j+1 ,再把 ack 返回给服务端,这时候客户端和服务端就完成整个连接过程
三次握手流程图,直接看图加深印象,图片来源网络,侵删