• HTTP 协议简介


    1、简介

            超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它是基于 TCP 协议的应用层传输协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

            HTTP 是一种无状态 (stateless) 协议, HTTP 协议本身不会对发送过的请求和响应的通信状态进行持久化处理。这样做的目的是为了保持 HTTP 协议的简单性,从而能够快速处理大量的事务,提高效率。

                                                                    Http请求体

     HTTP 请求体由:请求行请求头请求体组成。

    2、常用的 HTTP Method

    • GET:用于请求访问已经被 URI(统一资源标识符)识别的资源,可以通过 URL 传参给服务器。

    • POST:用于传输信息给服务器,主要功能与 GET 方法类似,但一般推荐使用 POST 方式。

    • PUT:传输文件,报文主体中包含文件内容,保存到对应 URI 位置。

    • HEAD:获得报文首部,与 GET 方法类似,只是不返回报文主体,一般用于验证 URI 是否有效。

    • DELETE:删除文件,与 PUT 方法相反,删除对应 URI 位置的文件。

    • OPTIONS:查询相应 URI 支持的 HTTP 方法。

    GET 与 POST 是我们常用的两种 HTTP Method,二者之间的区别主要包括如下五个方面:

    1、 从功能上讲,GET一般用来从服务器上获取资源,POST一般用来更新服务器上的资源;
    2、 从REST服务角度上说,GET是幂等的,即读取同一个资源,总是得到相同的数据,而POST不是幂等的,因为每次请求对资源的改变并不是相同的;
    3、 从请求参数形式上看,GET请求的数据会附在URL之后,即将请求数据放置在HTTP报文的请求头中,以?分割URL和传输数据,参数之间以&相连;而POST请求会把提交的数据则放置在是HTTP请求报文的请求体中;
    4、 从安全性上看,POST的安全性要比GET的安全性高,因为GET请求提交的数据将明文出现在URL上,而且POST请求参数则被包装到请求体中,相对更安全;
    5、 从请求的大小看,GET请求的长度受限于浏览器或服务器对URL长度的限制,允许发送的数据量比较小,而POST请求则是没有大小限制的;

    3、常见 Response Code 分类

    • 1xx(临时响应):信息,服务器收到请求,需要请求者继续执行操作;

    • 2xx(成功):操作被成功接收并处理;

    • 3xx(重定向):需要进一步的操作以完成请求;

    • 4xx(客户端错误):请求包含语法错误或无法完成请求;

    • 5xx(服务器错误):服务器在处理请求的过程中发生了错误;

    4、一次完整 HTTP 请求所经历的步骤

    1、 由域名→IP地址寻找IP地址的过程依次经过了浏览器缓存、系统缓存、hosts文件、路由器缓存、递归搜索根域名服务器(DNS解析);
    2、 建立TCP/IP连接(三次握手具体过程);
    3、 由浏览器发送一个HTTP请求;
    4、 经过路由器的转发,通过服务器的防火墙,该HTTP请求到达了服务器;
    5、 服务器处理该HTTP请求,返回一个HTML文件;
    6、 浏览器解析该HTML文件,并且显示在浏览器端;
    7、 服务器关闭TCP连接(四次挥手具体过程);

  • 相关阅读:
    微信小程序 - 渲染和逻辑
    视频产生的本质及色彩空间:RGB 和 YUV
    【Java八股文总结】之Java设计模式
    Http请求参数类型及servlet获取方式
    软件工程—原理、方法与应用
    Windows11下清理Docker Desktop与wsl的C盘空间占用
    FFT64点傅里叶变换verilog蝶形运算,代码和视频
    电脑重装系统后桌面图标如何调小尺寸
    IDEA批量解决Lombok警告,开发者必备技巧!
    【机器学习】如何判断函数凸或非凸?(面试回答)
  • 原文地址:https://blog.csdn.net/qq_41720578/article/details/125625035