什么是HTTP?

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

HTTP特点:

  1. 无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作。
  2. 无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
  3. 基于请求和响应:基本的特性,由客户端发起请求,服务端响应。
  4. 简单快速、灵活。
  5. 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性。

HTTP报文组成:

  1. 请求行:包括请求方法、URL、协议/版本
  2. 请求头(Request Header)
  3. 请求正文
  4. 状态行
  5. 响应头
  6. 响应正文

img

HTTP的缺点:

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