• HTTP请求报文与响应报文


    HTTP请求报文是什么样的?

    HTTP 请求报⽂的组成:请求⾏、请求头、(空⾏)、请求体。

    实际请求报文实例:

    请求行

    包含了请求⽅法、URL、HTTP 协议版本,它们之间⽤空格进行分隔。例如:

    GET http://www.abc.com/articles HTTP/1.1 
    
    • 1

    请求头

    请求头由键值对组成,每⾏⼀对,键值之间⽤英⽂冒号:进行分隔。例如:

    Content-Type: application/json
    Host: www.abc.com 
    
    • 1
    • 2

    请求体

    请求体中放置 POST、PUT、PATCH 等请求方法所需要携带的数据。

    HTTP响应报文是什么样的?

    HTTP 响应报⽂的组成: 响应⾏、响应头、空⾏、响应体。

    响应行

    响应行由协议版本、状态码、状态码的原因短语3个内容组成,中间以空格分隔。例如:

    HTTP/1.1 200 OK 
    
    • 1

    响应头

    响应头由键值对组成,每⾏⼀对,键值之间⽤英⽂冒号:进行分隔。例如:

    Content-Length: 1024
    Content-Type: application/json 
    
    • 1
    • 2

    响应体

    服务器发送过来的数据。

    http状态码分别代表什么意思?

    1xx 表示HTTP请求已经接受,继续处理请求 2xx 表示HTTP请求已经处理完成(200) 3xx 表示把请求访问的URL重定向到其他目录(304资源没有发生变化,会重定向到本地资源) 4xx 表示客户端出现错误(403禁止访问、404资源不存在) 5xx 表示服务端出现错误

    成功(2XX)

    状态码原因短语说明
    200OK表示从客户端发来的请求在服务器端被正确处理
    201Created请求已经被实现,⽽且有⼀个新的资源已经依据请求的需要⽽建⽴通常是在POST请求,或是某些PUT请求之后创建了内容, 进行的返回的响应
    202Accepted请求服务器已接受,但是尚未处理,不保证完成请求适合异步任务或者说需要处理时间比较长的请求,避免HTTP连接一直占用
    204No content表示请求成功,但响应报⽂不含实体的主体部分
    206Partial Content进⾏的是范围请求, 表示服务器已经成功处理了部分 GET 请求响应头中会包含获取的内容范围 (常用于分段下载)

    重定向(3XX)

    状态码原因短语说明
    301Moved Permanently永久性重定向,表示资源已被分配了新的 URL比如,我们访问 http😕/www.baidu.com 会跳转到 https😕/www.baidu.com
    302Found临时性重定向,表示资源临时被分配了新的 URL, 支持搜索引擎优化首页, 个人中心, 遇到了需要登录才能操作的内容, 重定向 到 登录页
    303See Other对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI。
    304Not Modified自从上次请求后,请求的网页内容未修改过。服务器返回此响应时,不会返回网页内容。(协商缓存)
    307Temporary Redirect对于POST请求,表示请求还没有被处理,客户端应该向Location里的URI重新发起POST请求。不对请求做额外处理, 正常发送请求, 请求location中的url地址

    因为post请求, 是非幂等的, 从302中, 细化出了 303 和 307

    简而言之:

    • 301 302 307 都是重定向
    • 304 协商缓存

    客户端错误(4XX)

    状态码原因短语说明
    400Bad Request请求报⽂存在语法错误((传参格式不正确)
    401UnAuthorized权限认证未通过(没有权限)
    403Forbidden表示对请求资源的访问被服务器拒绝
    404Not Found表示在服务器上没有找到请求的资源
    408Request Timeout客户端请求超时
    409Confict请求的资源可能引起冲突

    服务端错误(5XX)

    状态码原因短语说明
    500Internal Sever Error表示服务器端在执⾏请求时发⽣了错误
    501Not Implemented请求超出服务器能⼒范围,例如服务器不⽀持当前请求所需要的某个功能,或者请求是服务器不⽀持的某个⽅法
    503Service Unavailable表明服务器暂时处于超负载或正在停机维护,⽆法处理请求
    505Http Version Not Supported服务器不⽀持,或者拒绝⽀持在请求中使⽤的 HTTP 版本

    问到状态码: 304 400 401??

    当前端看到控制台报出 400 时, 请问一定是后台的问题么? 如何排查错误? (前端先检查传参格式是否有误)

  • 相关阅读:
    一、MFC介绍
    C++lambda表达式
    vue elementui简易侧拉栏的使用
    MyBatisPlus 查询条件构造器(Wapper)
    【数据库——MySQL(实战项目1)】(1)图书借阅系统
    C专家编程 第3章 分析C语言的声明 3.7 typedef struct foo{... foo;}的含义
    Flink多流转换 完整使用 (第八章)
    linux(centos7)配置SSH免密登录
    Solidity 小白教程:22. Call
    计算机毕业设计springboot+vue基本微信小程序的学生健康管理小程序
  • 原文地址:https://blog.csdn.net/web2022050903/article/details/126159274