Http概述
HTTP:超文本传输协议,是位于 TCP/IP 体系结构中的应用层协议。
- HTTP 协议用于客户端和服务器端之间的通信
- 通过请求和响应的交换达成通信
- HTTP 是不保存状态的协议
- 持久连接节约通信量:旨在建立 1 次 TCP 连接后进行多次请求和响应的交互
HTTP 协议的初始版本中, 每进行一次 HTTP 通信就要断开一次 TCP连接。
HTTP/1.1 持久连接的特点是, 只要任意一端没有明确提出断开连接, 则保持 TCP 连接状态。 管线化:同时并行发送多个请求, 而不需要一个接一个地等待响应了。
- 使用 Cookie 的状态管理
与 HTTP 关系密切的协议:IP、 TCP 和DNS
-
TCP/IP 把与互联网相关联的协议集合起来总称为 TCP/IP。
-
TCP/IP 的分层管理(解耦) 利用 TCP/IP 协议族进行网络通信时, 会通过分层顺序与对方进行通 信。 发送端(客户端)从应用层往下走, 接收端(服务端)则往应用层往上走。
-
通信传输流 发送端在层与层之间传输数据时, 每经过一层时必定会被打上一个该 层所属的首部信息。 反之, 接收端在层与层传输数据时, 每经过一层 时会把对应的首部消去。
-
TCP协议的三次握手过程 TCP协议:传输层,提供可靠的字节流服务。
为了准确无误地将数据送达目标处, TCP 协议采用了三次握手策略。 用 TCP 协议把数据包送出去后, TCP
不会对传送后的情况置之不理, 它一定会向对方确认是否成功送达。握手过程中使用了 TCP 的标志(flag) —— SYN(synchronize) 和ACK(acknowledgement) 。
1、发送端发送带有syn标志的数据包; 2、接收端接收后,回传syn/ack标志的数据包以示传达确认信息; 3、发送端回传一个ack标志的数据包,代表握手结束。
- 域名解析DNS服务
它提供域名到 IP 地址之间的解析服务。
各种协议与 HTTP 协议的关系
1、在浏览器输入 URL 后获取 HTML 页面的过程。
先通过域名系统(DNS)查询将域名转换为 IP 地址; 通过三次握手,建立 TCP 连接; 发起 HTTP 请求; 目标服务器接收到 HTTP 请求并处理; 目标服务器往浏览器发回 HTTP 响应; 浏览器解析并渲染页面。
2、TCP三次握手
发送端发送带有syn标志的数据包;
接收端接收后,回传syn/ack标志的数据包以示传达确认信息;
发送端回传一个ack标志的数据包,代表握手结束。
3、TCP四次挥手
当 A 给 B 发送 FIN 报文时,代表 A 不再发送报文,但仍可以接收报文。
B 可能还有数据需要发送,因此先发送 ACK 报文,告知 A “我知道你想断开连接的请求了”。这样 A 便不会因为没有收到应答而继续发送断开连接的请求(即 FIN 报文)。
B 在处理完数据后,就向 A 发送一个 FIN 报文,然后进入 LAST_ACK 阶段(超时等待)。
A 向 B 发送 ACK 报文,双方都断开连接