HTTP协议状态及报文组成 - 一文通读
2023-09-14 09:05:18 时间
- 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量4300+,购买任意白宝书体系化专栏可加入TFS-CLUB 私域社区。
- 福利:除了通过订阅"白宝书系列专栏"加入社区获取所有付费专栏的内容之外,还可以通过加入星荐官共赢计划 加入私域社区。
- 当前子专栏 自动化测试实战篇 仅29.9 ,白嫖入口-请点击我。推荐他人订阅,可获取扣除平台费用后的35%收益。
- 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,目前任某金融品类App负责人。
- 荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计划” 发起人。
- 现象级专栏《白宝书系列》作者,文章知识点浅显易懂且不失深度;TFS-CLUB社区创立者,旨在以“赋能 共赢”推动共建技术人成长共同体。
- 🏆 白宝书系列
专栏系列(点击解锁) | 学习路线(点击解锁) |
---|---|
Python全栈白宝书 | 零基础入门篇 |
语法进阶篇 | |
自动化办公篇 | |
自动化测试实战篇 | |
数据库开发实战篇 | |
爬虫入门与实战 | |
数据分析篇 | |
前端入门+flask 全栈篇 | |
django+vue全栈篇 | |
拓展-人工智能入门 |
🐳 HTTP协议状态及报文组成
该章节文章内容来自以前的网上收集,如有不对版的地方,欢迎校错,博主会第一时间响应并修复。
🐬 HTTP 状态码
在我们使用浏览览器向WEB网页所在服务器发出请求时,当服务器接收我们的请求并响应的情况下。浏览器会接收并显示网页,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应我们在浏览器中的请求。
HTTP状态码的英文为HTTP Status Code。
下面是常见的HTTP状态码
- 200 - 请求成功
- 301 - 资源(网页等)被永久转移到其它URL
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
🐠 HTTP状态码分类
分类 | 描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
🐠 HTTP状态码表
状态码
| 英文名称 | 中文描述 |
---|---|---|
100 | Continue | 继续。客户端应继续其请求 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。 只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
200 | OK | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接受。已经接受请求,但未处理完成 |
203 | Non-Authoritative Information | 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 |
204 | No Content | 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。 可通过此返回码清除浏览器的表单域 |
206 | Partial Content | 部分内容。服务器成功处理了部分GET请求 |
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表 用于用户终端(例如:浏览器)选择 |
301 | Moved Permanently | 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI, 浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 |
302 | Found | 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI |
303 | See Other | 查看其它地址。与301类似。使用GET和POST请求查看 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常 会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问 |
306 | Unused | 已经被废弃的HTTP状态码 |
307 | Temporary Redirect | 临时重定向。与302类似。使用GET请求重定向 |
401 | Unauthorized | 请求要求用户的身份认证 |
402 | Payment Required | 保留,将来使用 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可 设置"您所请求的资源无法找到"的个性页面 |
405 | Method Not Allowed | 客户端请求中的方法被禁止 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时 |
409 | Conflict | 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突 |
410 | Gone | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码, 网站设计人员可通过301代码指定资源的新位置 |
411 | Length Required | 服务器无法处理客户端发送的不带Content-Length的请求信息 |
412 | Precondition Failed | 客户端请求信息的先决条件错误 |
413 | Request Entity Too Large | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会 关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 |
414 | Request-URI Too Large | 请求的URI过长(URI通常为网址),服务器无法处理 |
415 | Unsupported Media Typ | 服务器无法处理请求附带的媒体格式 |
416 | Requested range not satisfiabl | 客户端请求的范围无效 |
417 | Expectation Failed | 服务器无法满足Expect的请求头信息 |
500 | Internal Server Erro | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
502 | Bad Gateway | 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器 的Retry-After头信息中 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理 |
🐬 HTTP请求方法
方法 | 中文描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体。 |
HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。 POST请求可能会导致新的资源的建立和/或已有资源的修改。 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
PATCH | 实体中包含一个表,表中说明与该URI所表示的原内容的区别。 |
MOVE | 请求服务器将指定的页面移至另一个网络地址。 |
COPY | 请求服务器将指定的页面拷贝至另一个网络地址。 |
LINK | 请求服务器建立链接关系。 |
UNLINK | 断开链接关系。 |
WRAPPED | 允许客户端发送经过封装的请求。 |
Extension-mothed | 在不改动协议的前提下,可增加另外的方法。 |
🐬 HTTP请求头
🐠 请求头报文
以上图为例
header
|
释义 |
示例
|
---|---|---|
Host | 请求的服务器主机名 | Host: sczpkj.f3322.net:3000 |
User-Agent | 浏览器标识符 [浏览器通知服务器,客户端浏览器与操作系统相关信息] | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 |
Accept | 告诉服务端,该请求所能支持的响应数据类型,专业术语称为 MIME 类型(文件类型的一种描述方式) | Accept: text/html,application/xhtml+xml,application/ xml;q=0.9,image/webp,image/apng,/;q=0.8 |
Accept-Language | 浏览器通知服务器,浏览器支持的语言。各国语言(国际化i18n) | Accept-Language: zh-CN,zh;q=0.9 |
Accept-Encoding | 浏览器通知服务器,浏览器支持的数据压缩格式。如GZIP压缩 | Accept-Encoding: gzip, deflate |
Connection | 表示客户端与服务连接类型;Keep-Alive表示持久连接,close已关闭 | Connection: keep-alive |
Referer | 表示这个请求是从哪个url跳过来的,通过百度来搜索淘宝网,那么在进入淘宝网的请求报文中,Referer的值就是:www.baidu.com。如果是直接访问就不会有这个头。 | Referrer Policy: no-referrer-when-downgrade |
Cookie | 存储于客户端本地的客户身份表示的一种机制 | Cookie: JSESSIONID=15982C27F7507C7FDAF0F97161F634B5 |
请求体 | 当请求方式是post的时,请求体会有请求的参数。上图中的请求体部分是我瞎编的 | name=admin&passwd=123456 |
相关文章
- 消息 8134,级别 16,状态 1,第 1 行 遇到以零作除数错误
- http指定状态码
- 关于HTTP请求出现 405状态码 Method not allowed的解决办法
- [Nhibernate]对象状态
- HTTP协议状态码详解(HTTP Status Code)
- HTTP协议状态码详解(HTTP Status Code)
- 知乎服务器返回 HTTP 403 错误状态码的一个例子
- Atitit session机制的实现 目录 1. Web状态管理 Cookie 和 Session。 token 1 2. session 管理设计1 2.1. session 的存储(可以
- Atitit. 状态模式(State)attilax 总结 跟个策 略模式的区别
- HTTP状态码429的含义
- ios xcode 怎样模拟app被挂起(在后台被系统杀死) APP 的五种状态
- DL之LSTM之UvP:基于TF利用LSTM基于DIY时间训练1200个数据预测后200个数据状态
- JavaWeb课程复习资料——Http状态 405-方法不允许
- HTTP状态码(包含代码演示)
- Android ImageView图片点击时放大,松开时恢复原来的状态
- 12 添加提交以及查看状态操作
- scrapy通过修改配置文件发送状态邮件
- nagios 实现Mysql 主从同步状态的监控
- HTTP 状态码简介(对照)
- HTTP===返回结果的HTTP状态码
- http常见的状态码,400,401,403状态码分别代表什么?