HTTP协议总结:报文结构、常见状态码

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

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

2.请求报文结构

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

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

空行:

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

3.响应报文结构

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

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

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

4.常见状态码

(1) 2xx

2开头的状态码表示成功

200 OK

正常处理并返回了

204 No Content

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

206 Partial Content

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

(2)3xx

重定向相关

301 Moved Permanently

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

302 Found

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

303 See Other

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

304 Not Modified

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

(4)4xx

客户端错误

400 Bad Request

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

401 Unauthorized

未认证

403

禁止访问

404 Not Found

(5)5xx

服务器错误

500

服务器内部错误

503

服务不可用

5.host首部的作用

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

猜你喜欢

转载自blog.csdn.net/vxzhg/article/details/105276930