http的报文结构和状态码总结

1.在TCP/IP协议簇中的位置

位于四层协议的应用层。基于运输层的TCP协议实现。

2.请求报文结构

包括报文首部、空行、报文主体3部分。

报文首部: 第一行:请求行,请求方法,请求路径,HTTP版本 后续为各个首部:包括请求首部字段、通用首部字段和实体首部字段

空行:

报文主体: 向服务器发送的数据。如get请求中的各个参数。post请求中的参数。

3.响应报文结构

也是包括报文首部、空行、报文主体3部分。

报文首部: 第一行:状态行,包括HTTP版本 状态码 原因短语 后续为首部字段:响应首部字段、通用首部字段、实体首部字段

报文主体:服务器返回的响应体。如HTTM页面。

4.常见状态码

4.1 2xx

2开头的状态码表示成功

200 OK
正常处理并返回了

204 No Content
正常处理了,但响应中不含主体。 用于需要从客户端往服务器发送数据但不需要响应内容的情况。

206 Partial Content
客户端进行了范围请求,服务器正常返回了。请求时通过Content-Range指定范围。

4.2 3xx

重定向相关

301 Moved Permanently
永久性重定向。表示请求的资源已经永久性分配了新的URI,以后应该使用该新的URI。 使用Location首部字段表示新URI地址。浏览器会重新请求一次该URI。

302 Found
临时重定向,希望用户本次使用的新分配的URI。 和301非常类似,浏览器也会根据Location字段重新进行请求。 在实际开发中常用于页面跳转。

303 See Other
和302功能相同,只是明确表明客户端应该使用get请求。

304 Not Modified
和重定向没有关系。表示资源没有改变,可直接使用客户端未过期的缓存。在请求附带条件时有可能返回这个状态码。

4.3 4xx

客户端错误

400 Bad Request
请求中有语法错误。如参数拼接的的问题等。

401 Unauthorized
未认证

403
禁止访问

404 Not Found

4.4 5xx

服务器错误

500
服务器内部错误

503
服务不可用

5 host首部的作用

区分不同的主机。有些服务器运行多个网站,每个网站有不同的域名。当接收请求时如果不指定域名则无法知道需要哪个网站响应。

Guess you like

Origin blog.csdn.net/qq_29974229/article/details/120725842