HTTP协议
HTTP协议
IP协议
TCP 协议
TCP 三次握手
每次握手存在的价值
- SYN -> 客户端告知服务器,自己有发送数据的能力
- SYN/ACK-> 标识 服务器通知客户端自己有 收发数据的能力
- ACK -> 客户端告知自己能收到数据
在TCP(传输控制协议)中,SYN 和 ACK 是两个重要的标志符,用于建立和确认连接。它们分别代表:
- SYN:Synchronize(同步)
- ACK:Acknowledge(确认)
具体作用
SYN(Synchronize) :
- 当客户端希望与服务器建立连接时,首先发送一个带有 SYN 标志的包,表示请求同步序列号以开始连接。这是三次握手过程的第一步。
ACK(Acknowledge) :
- ACK 标志用于确认接收到的数据包。每当一方收到数据包时,会发送一个带有 ACK 标志的包,告知发送方数据已成功接收。
三次握手过程
参考: https://www.bilibili.com/video/BV1kV411j7hA?spm_id_from=333.788.videopod.sections&vd_source=4f9d828ef6e4359eafd9b7b64eae9b9f
TCP 连接的建立过程称为三次握手,具体步骤如下:
- 第一次握手:客户端发送一个带有 SYN 标志的包,表示请求建立连接,并同步序列号。
- 第二次握手:服务器收到 SYN 包后,回复一个带有 SYN 和 ACK 标志的包,表示同意建立连接,并确认客户端的 SYN 包。
- 第三次握手:客户端收到服务器的 SYN+ACK 包后,回复一个带有 ACK 标志的包,表示确认连接建立。
DNS
- 负责提供域名到IP地址的解析服务
各协议的协同关系
HTTPS
HTTP
URL与URI
HTTP 报文的构成
KEEP-ALIVE
在HTTP请求头中,Keep-Alive
是一个用于控制TCP连接保持活跃状态的机制。它的主要作用包括:
保持连接:
-
Keep-Alive
允许客户端和服务器在完成一次请求-响应后保持TCP连接,而不是关闭连接。这有助于在后续的请求中重用同一个连接,减少了连接建立和关闭的开销。
-
提高性能:
- 通过保持连接,
Keep-Alive
减少了创建新连接所需的时间和资源,从而提高了网络通信的效率和性能。这对于需要频繁请求资源的应用尤其有用,例如网页加载过程中需要加载多个资源(如图片、样式表、脚本等)。
- 通过保持连接,
减少延迟:
- 由于不需要为每个请求重新建立连接,
Keep-Alive
可以显著减少请求的延迟,提升用户体验。
- 由于不需要为每个请求重新建立连接,
工作原理
请求头:
- 客户端在HTTP请求头中包含
Connection: keep-alive
字段,表示希望保持连接。
- 客户端在HTTP请求头中包含
响应头:
- 服务器在响应头中包含
Connection: keep-alive
字段,表示同意保持连接。
- 服务器在响应头中包含
Keep-Alive头:
Keep-Alive
头可以包含两个可选参数来控制连接的保持时间和最大请求数:-
timeout
:指定连接保持活跃的时间(以秒为单位)。 -
max
:指定在关闭连接之前允许的最大请求数。
-
请求方法
- Trace 可以跟踪请求经过的路径
常用状态码
- 204 和206 一般是出现在分段的返回中,一般是返回较大的资源中出现
- 301 永久重定向 ,302临时重定向
HTTP协议头参数
无状态和Cookie_Session_Token
本文由作者按照 CC BY 4.0 进行授权