概述
http的报文结构和状态码总结
HTTP的报文分为请求报文和响应报文
HTTP请求报文:由三个部分组成,即开始行、首部行和实体主体
在请求报文中,开始行就是请求行。
request报文格式:
<method> <request-URL> <version>
<headers>
<entity-body>
HTTP响应报文:开始行是状态行
状态行包括三项内容,即HTTP的版本,状态码以及解释状态码的简单短语
response报文格式:
<version> <status> <reason-phrase>
<headers>
<entity-body>
Method方法:
请求方法,标明客户端希望服务器对资源执行的动作,包括以下:
GET: 从服务器获取一个资源
HEAD: 只从服务器获取文档的响应首部
POST: 向服务器输入数据,通常会再由网关程序继续处理
PUT: 将请求的主体部分存储在服务器中,如上传文件
DELETE: 请求删除服务器上指定的文档
TRACE: 追踪请求到达服务器中间经过的代理服务器
OPTIONS:请求服务器返回对指定资源支持使用的请求方法
CONNECT:建立一个到由目标资源标识的服务器的隧道
PATCH:用于对资源应用部分修改
version版本:
HTTP/<major>.<minor>
如:HTTP/1.1
reason-phrase:原因短语,状态码所标记的状态的简要描述
headers首部字段头:首部字段包含的信息最为丰富。首部字段同时存在于请求报文和响应报文内,并涵盖 HTTP 报文相关的内容信息。使用首部字段是为了给客户端和服务器端提供报文主体大小、所使用的语言、认证信息等内容。
首部字段是由首部字段名和字段值构成的,中间用冒号":”分隔字段值对应,即key/value 键/值对单个HTTP首部字段可以有多个值。
entity-body:实体,请求时附加的数据或响应时附加的数据,例如:登录网站时的用户名和密码,博客的上传文章,论坛上的发言等。
一、首部的分类:
1、通用首部:请求报文和响应报文两方都会使用的首部
2、请求首部:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、请求内容相关优先级等信息
3、响应首部:从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息
4、实体首部:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的的信息
5、协商首部:某资源有多种表示方法时使用
1.1通用首部:
Date:报文的创建时间
Connection:连接状态,如keep-alive, close
Via:显示报文经过的中间节点(代理,网关)
Cache-Control:控制缓存,如缓存时长
MIME-Version:发送端使用的MIME版本
Warning:错误通知
1.2请求首部:
Accept:通知服务器自己可接受的媒体类型
Accept-Charset: 客户端可接受的字符集
Accept-Encoding:客户端可接受编码格式,如gzip
Accept-Language:客户端可接受的语言
Client-IP:请求的客户端IP
Host:请求的服务器名称和端口号
Referer:跳转至当前URI的前一个URL
User-Agent:客户端代理,浏览器版本
条件式请求首部:
Expect:允许客户端列出某请求所要求的服务器行为
If-Modified-Since:自从指定的时间之后,请求的资源是否发生过修改
If-Unmodified-Since:与上面相反
If-None-Match:本地缓存中存储的文档的ETag标签是否与服务器文档的Etag不匹配
If-Match:与上面相反
安全请求首部:
Authorization:向服务器发送认证信息,如账号和密码
Cookie:客户端向服务器发送cookie
代理请求首部:
Proxy-Authorization:向代理服务器认证
1.3响应首部:
信息性:
Age:从最初创建开始,响应持续时长
Server:服务器程序软件名称和版本
安全响应首部:
Set-Cookie:向客户端设置cookie
WWW-Authenticate:来自服务器对客户端的质询列表
1.4实体首部:
Allow:列出对此资源实体可使用的请求方法
Location:告诉客户端真正的实体位于何处
Content-Encoding:对主体执行的编码
Content-Language:理解主体时最适合的语言
Content-Length:主体的长度
Content-Location:实体真正所处位置
Content-Type:主体的对象类型,如text
1.5协商首部:
Accept-Ranges:服务器可接受的请求范围类型
Vary:服务器查看的其它首部列表
缓存相关:
ETag:实体的扩展标签
Expires:实体的过期时间
Last-Modified:最后一次修改的时间
二、HTTP状态码
status:状态码,HTTP状态码是用来表示网页服务器HTTP响应状态的3位数字代码。
http协议状态码分类:
1xx:100-101 信息提示
2xx:200-206 成功
3xx:300-307 重定向
4xx:400-415 错误类信息,客户端错误
5xx:500-505 错误类信息,服务器端错误
2.1常见的HTTP状态码
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到) 服务器找不到请求的网页。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
最后
以上就是欢喜石头为你收集整理的http的报文结构和状态码总结http的报文结构和状态码总结的全部内容,希望文章能够帮你解决http的报文结构和状态码总结http的报文结构和状态码总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复