• HTTP基本概念介绍


    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,响应实体
         真正存储响应信息的部分


     

  • 相关阅读:
    Day693.Tomcat如何实现Servlet规范 -深入拆解 Tomcat & Jetty
    Springboot楼盘在线销售平台7txdy计算机毕业设计-课程设计-期末作业-毕设程序代做
    地球红薯地中秋圆《乡村振兴战略下传统村落文化旅游设计》——世界旅行季许少辉八月新书辉少许
    JAVA网络编程
    【云原生】设备入云之FlexManager实际项目操作流程
    VS2022 开发.net 4.0的方法
    Typescript基本类型---上篇
    Arrays.asList() 和 new ArrayList() 的区别(详解)
    MySQL——九、SQL编程
    【专业术语】(计算机 / 深度学习与目标检测 / 轨道交通)
  • 原文地址:https://blog.csdn.net/m0_72753035/article/details/139908023