4. http的报文结构和状态码总结
作者:互联网
4. http的报文结构和状态码总结
HTTP的报文分为请求报文和响应报文
HTTP请求报文:由三个部分组成,即开始行、首部行和实体主体
在请求报文中,开始行就是请求行。
request请求报文格式:
<method> <request-URL> <version>
<headers>
<entity-body>
开始行:
GET / HTTP/1.1
首部字段:
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: www.magedu.com
User-Agent: HTTPie/0.9.4
HTTP响应报文:开始行是状态行
状态行包括三项内容,即HTTP的版本,状态码以及解释状态码的简单短语
response响应报文格式:
<version> <status> <reason-phrase>
<headers>
<entity-body>
开始行:
HTTP/1.1 200 OK
首部字段:
Cache-Control: max-age=3, must-revalidate
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Thu, 07 Nov 2019 03:44:14 GMT
Server: Tengine
Transfer-Encoding: chunked
Vary: Accept-Encoding
Vary: Accept-Encoding, Cookie
注:
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:实体,请求时附加的数据或响应时附加的数据,例如:登录网站时的用户名和密码,博客的上传文章,论坛上的发言等。
二、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 来源: https://www.cnblogs.com/biaoming534/p/16545231.html