什么是HTTP协议
HTTP 超文本传输协议 (HTTP-Hypertext transfer protocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。这个强调两个字,规则,什么是规则,就是说约束每个人的一种规范,不然的话每个人都按照自己的规则乱来,那么就没有办法统一来交互了。
HTTP 的主要特点
HTTP的主要特点,记住一句话就好了:基于请求和相应的无状态的连接。

  1. 支持客户端/服务器模式。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、 POST、 HEAD 等。每种方法规定了客户与服务器联系的类型不同。由于 HTTP协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
  3. 灵活: HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。
  4. 无连接:无连接的含义是连接双方在完成交互后不维持连接状态,当客户端发送新的请求后则开启新的连接。
  5. 无状态: HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。

缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 HTTP 协议的会话方式

  1.  浏览器与服务器之间的通信过程要经历四个步骤:建立连接 -> 发出请求信息 ->回送响应信息 ->关闭连接
  2. 浏览器与 WEB 服务器的连接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问,浏览器WEB 服务器都要建立一次单独的连接。
  3. 浏览器到 WEB 服务器之间的所有通讯都是完全独立分开的请求和响应对。

 HTTP 协议的组成部分

报文首部、空行(CR+LF)和报文主体

报文:用于HTTP协议交互的信息

请求行:包括请求的方法,URL和HTTP协议版本,Method Request-URI HTTP-Version CRLF。格式如下:
其中Method 表示请求方法
Request-URI 是一个统一资源标识符;
HTTP-Version 表示请求的HTTP 协议版本;
CRLF 表示回车和换行(除了作为结尾的CRLF 外,不允许出现单独的CR 或LF 字符)。

Request URL: http://127.0.0.1/mall/test.php
Request Method: GET
Status Code: 200 OK
Remote Address: 127.0.0.1:80
Referrer Policy: no-referrer-when-downgrade

状态行:包括响应结果的状态码,状态描述和HTTP版本

首部字段:包括请求和响应的各种条件和属性值(键值对)