# HTTP概述

99 阅读3分钟

HTTP协议:

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议,定义了客户端和服务器之间交换报文的格式和方式。它可以使浏览器更加高效,使网络传输减少。

HTTP是什么?

image.png

  • 协议

 协议,首先必须有多个参与者,也就是 “协” ;协议是多参与者的一种行为约定和规范,也就是“议”。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: image.png

Req报文 Cookie:

image.png

灵活可扩展

可以任意添加头字段实现任意功能; 传输的实体数据可缓存可压缩、可分段获取数据、支持身份认证、支持国际化语言等。

这是HTTP最大的优点,简单、灵活和易于扩展。

持久化连接,节省通信量

HTTP 协议的初始版本中,每进行一次 HTTP 通信就要断开一次 TCP 连接,传输大的资源会增加通信量的开销。

(1)持久性

持久连接的好处在于减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。旨在一次TCP连接发送多次请求

Connection:keep-alive 特点:发送请求后需等待并收到响应,才能发送下一个请求

image.png

(2)管线化

持久连接使得多数请求以管线化(pipelining)方式发送成为可能。旨在并行发送多个请求

特点:同时并行发送多个请求

image.png

Http的不足:

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性,所以有可能已遭篡改