HTTP报文、状态码

请求报文

在这里插入图片描述

  • 开始行:定义了方法,访问地址,协议版本,CRL回车换行符
  • 首部行:存在多行,也就是首部的各种状态,后边跟一个空白行。
  • 实体主体:通常不用,一般上传文件的时候才会用到

响应报文

在这里插入图片描述

  • 状态行:也就是响应码和协议版本
  • 首部行:同样是各种首部字段,例如:cookie,时间等等
  • 实体主体:一般用不上在这里插入图片描述

method方法

  • GET:从服务器获取一个资源
  • HEAD:只从服务器获取文档的响应首部
  • POST:向服务器输入数据,通常会由网关程序继续处理
  • PUT:将请求的主体部分存储在服务器中,如上传文件
  • DELETE:请求删除服务器上指定的文档
  • TRACE:追踪请求到达服务器中间经过的代理服务器
  • OPTIONS:请求服务器返回指定资源支持使用的请求

首部解释

在这里插入图片描述
在这里插入图片描述
通用首部
Date:报文的创建时间
Connection:连接状态,如keepalive,close
Via:显示报文经过的中间节点(也就是代理服务器)
Cache-control:控制缓存

请求首部
Accept:通过服务器自己可接受的媒体类型(如:text/html, application/xml…)
Accept-encoding:接收编码格式,一般指压缩机制,如:gzip,deflate,sdch等
Accept-language:接受的语言
Host:请求的服务器名称和端口
Referer:指当前的资源是由哪个资源转过来的
User-agent:客户端代理

条件式请求首部
if-modified-since: 自从指定时间后,请求的资源是否发生过修改
if-none-match:本地缓存中存储的文档的ETag标签是否与服务器文档的Etag不匹配;

安全请求首部
Authorization:向服务器发送认证信息,如账号和密码
Cookie:客户端向服务器发送cookie

代理请求首部
Proxy-Authorization: 向代理服务器认证

响应首部
age:响应持续时长
Server:服务器程序软件名称和版本; 一般在服务器端要移除此项

协商首部
accept-ranges:服务器可接受的请求范围类型
Vary:服务器查看其它首部列表

安全响应首部
set-cookie:向客户端设置cookie
WWW-Authenticate:来自服务器的对客户端的质询认证表单

实体首部
Allow:列出对此实体可使用的请求方法
Location:告诉客户端真正的实体位于何处
Content-Length: 主体的长度
Content-Location: 实体真正所处位置;
Content-Type:主体的对象类型

状态码

  • 100-101 信息提示,一般很少出现
  • 200-206 成功,表示请求的所有数据已经成功返回
  • 300-305 重定向
  • 400-415 错误,客户端错误
  • 500-505 错误,服务器端错误

常见的类型

200:表示服务器端成功处理了请求。返回客户端想访问的网页
301:请求的URL指向的资源已经被删除,但在响应报文中首部的location处指明了资源现在所在的新位置。
302:与301相似,但在响应报文中的首部location处指明了资源现在所在的临时位置。
304:如果客户端发送了带有条件式的方法进行访问,而文档内容并没有发生改变,服务器就会响应此状态码
401:需要输入账号和密码的认证方式才能访问资源 403:请求被禁止 404:服务器无法找到客户请求的资源 500:服务器内部错误
502:代理服务器从后端服务器接收到了一条伪响

### HTTP响应状态码分类 HTTP响应状态码分为五类,每种类别代表不同类型的服务器回应情况: #### 1. **信息类状态码 (1xx)** 这类状态码表示请求已接收,继续处理。 - `100 Continue` 表示客户端应当继续发送请求[^2] #### 2. **成功状态码 (2xx)** 此类状态码表明客户端的请求被服务器成功接受并完成处理。 - `200 OK` 请求已经成功处理完毕。 - `204 No Content` 请求成功处理,但是返回的内容为空。 - `206 Partial Content` 对资源的部分GET请求成功执行 #### 3. **重定向状态码 (3xx)** 当需要进一步操作才能完成请求时使用此系列的状态码。 - `301 Moved Permanently` 资源永久移动到新位置,并且将来任何对此资源的新请求都应指向新的URI地址。 - `302 Found` 请求的页面暂时从不同的URL响应请求。 - `304 Not Modified` 如果客户端发送了一个带条件的GET请求而文档未改变,则服务器应该返回这个状态码 #### 4. **客户端错误状态码 (4xx)** 该组状态码意味着可能是客户端发生错误,阻止了它完成请求。 - `400 Bad Request` 客户端发出的语法不正确。 - `401 Unauthorized` 需要有效的身份验证信息来获取所请求的数据。 - `403 Forbidden` 即使提供了正确的凭证也无权访问指定资源。 - `404 Not Found` 找不到对应于给定URL的Web页面 #### 5. **服务器错误状态码 (5xx)** 这些状态码指示的是服务器内部出现了某种异常或配置不当的情况。 - `500 Internal Server Error` 通用错误消息,指出服务器遇到了意外状况,无法完成请求 ```python status_codes = { 'Informational': ['100', 'Continue'], 'Successful': [ ('200', 'OK'), ('204', 'No Content'), ('206', 'Partial Content') ], 'Redirection': [ ('301', 'Moved Permanently'), ('302', 'Found'), ('304', 'Not Modified') ], 'Client Error': [ ('400', 'Bad Request'), ('401', 'Unauthorized'), ('403', 'Forbidden'), ('404', 'Not Found') ], 'Server Error': [('500', 'Internal Server Error')] } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值