HTTP概述
 HTTP : 超文本传输协议,HTTP是浏览器端Web通信的基础。
一, 两种架构
 B/S架构:Browser/Server,浏览器/服务器架构。
 B:  浏览器,比如Firefox 、Google 、Internet;
 S:  服务器,Apache,nginx;
C/S架构:Client/Server,客户端/服务器架构。
B/S架构相对于C/S架构,客户机上无需安装任何软件,使用浏览器即可访问服务器。
 因此,越来越多的C/S架构正被B/S架构所替代。
二,基于请求响应的模式
 HTTP协议永远都是客户端发起请求,服务器做出响应
 也就是说,请求必定是先从客户端发起的,服务器端在没有接收到请求之前不会发送任何响应;
 这就无法实现这样一种场景:服务器端主动推送消息给客户。
三,无状态
 当浏览器第一次发送请求给服务器时,服务器做出了响应;
 当浏览器第二次发送请求给服务器时,服务器同样可以做出响应,但服务器不知道第二次的请求和第一次来自同一个浏览器
 也就是说,服务器是不会记住你是谁的,所以被称之为无状态。
而如果要使HTTP有状态,就可以使浏览器访问服务器时,加入Cookie
 这样,只要你在请求时有了这个Cookie,服务器就能够通过Cookie知道,你就是之前那个浏览器
 这样的话,http协议就有状态了。
四,请求报文
 1请求行 + 请求头 + 空行 + 实体
1  请求行
     请求行里面有:
           请求方法:比如GET、POST
           资源对象(URI)
           协议名称和版本号(HTTP/1.1)
    【例】:
           POST/custom/a234425452543543543435/web/cstm?stm = 1787987987  HTTP/1.1
          POST                即请求方法
           /custom/a234425452543543543435/web/cstm?stm = 1787987987      即 URL
           HTTP/1.1          协议和版本
2   请求头
      请求头由于告诉服务器该请求的一些信息,起到传递额外信息的目的
3   空行
      空行是为了区分  请求头 和  请求实体
4   请求实体
      请求实体为真正所需要传输的数据
 五,响应报文
       状态行 + 响应头 +  空行 +  消息体
     
 1,状态行
      状态行主要由三部分组成:
      HTTP版本
      状态码(表示相应的结果)
      原因短语(解释)
    
      HTTP/2   200   OK
     HTTP/2    协议和版本
      200          状态码 - 200代表OK,表示请求成功,404代表NOT  FOUND,表示请求失败,所请求资源未在服务器上发现
      OK           原因短语
2,响应头(相应报文首部)
      和请求报文首部一样,响应报文首部同样是为了传递额外信息,例如:
      date:  TUE, 05  APR  2022  10:48:17  GMT     //响应时间
      content - type :application/json                  //响应格式
      content - transport - security: max-age = 315360000   //长度
3,空行
      同样是为了区别响应实体和响应首部
4,响应实体
      真正存储响应信息的部分