HTTP协议:
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议,定义了客户端和服务器之间交换报文的格式和方式。它可以使浏览器更加高效,使网络传输减少。
HTTP是什么?
- 协议
协议,首先必须有多个参与者,也就是 “协” ;协议是多参与者的一种行为约定和规范,也就是“议”。HTTP是一个用在计算机世界里的协议。它使用计算机理解的语言确立一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
- 传输
所谓的传输,就是吧一堆东西从A搬到B,或者从B搬到A。HTTP是一个传输协议,是一个计算机世界里专门来
两点之间传输数据的约定和规范,深入理解:
1)HTTP协议是一个双向协议;
2)数据虽然在A和B之间传输,但允许中间有“中转”和“接力”;
- 超文本
“超越了普通文本”,个人理解是“超媒体传输协议”更精准,是文字、图片、音频、视频的混合体。HTTP是一个在计算机世界里站们在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
HTTP工作过程:
1,地址解析
2,封装HTTP请求数据包
3,封装成TCP包,建立TCP连接(TCP的三次握手)
4,客户端向服务器发送请求命令
5,服务器响应
6,服务器关闭TCP连接
HTTP特点:
无状态协议:协议对于发送过的请求或响应都不做持久化处理。通过引入了 Cookie 来保存状态。
http是有连接无状态的,顺序发包,顺序收包,按照首发顺序管理包。UDP是无序无状态的。
Res报文 Set-Cookie:
Req报文 Cookie:
灵活可扩展:
可以任意添加头字段实现任意功能; 传输的实体数据可缓存可压缩、可分段获取数据、支持身份认证、支持国际化语言等。
这是HTTP最大的优点,简单、灵活和易于扩展。
持久化连接,节省通信量:
HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连接,传输大的资源会增加通信量的开销。
(1)持久性
持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。旨在一次TCP连接发送多次请求
Connection:keep-alive
特点:发送请求后需等待并收到响应,才能发送下一个请求
(2)管线化
持久连接使得多数请求以管线化(pipelining)方式发送成为可能。旨在并行发送多个请求
特点:同时并行发送多个请求
Http的不足:
- 通信使用
明文(不加密),内容可能会被窃听 - 不验证通信方的
身份,因此有可能遭遇伪装 - 无法证明报文的
完整性,所以有可能已遭篡改