HTTP中常见状态码

前序:当通过浏览器向一个服务器发起一次请求时,比如访问www.baidu.com,此时就是向百度的服务器发送了一个HTTP的请求报文,而百度的服务器同样给你返回了一个响应报文。通过抓包工具,先来看一下请求报文和响应报文的格式。

请求报文
这里写图片描述

HTTP中常见状态码_第1张图片


可以看到在响应报文格式

HTTP/1.1 200 OK

HTTP/1.1代表使用的HTTP版本号
200就是这里的返回码
OK是对返回码的描述

下面就来简单介绍一下HTTP中的返回码。

HTTP中常见状态码_第2张图片

下面就常见的状态码进行解释:

2XX 成功

200 OK
表示从客户端发来的请求在服务器端被正常处理了。
在响应报文内,随状态码返回的信息会因为请求的方法不同而发生变化,如使用GET方法,对应请求的资源的实体会作为响应返回,而使用HEAD方法,对应请求的资源不随报文首部作为响应返回。

204 No Content
该状态码表示服务器接收的请求已经正常处理,但是返回的响应报文中不含实体的主体部分,也不允许返回任何实体的主体。
一般在只需要从客户端往服务器发送信息,而服务器端不需要对客户端发送新信息内容情况下使用

206 Partial Content
该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中的Content-Range指定范围的实体内容

3XX 重定向

使用百度搜索鲜花,然后查看其HTTP报文。
HTTP中常见状态码_第3张图片
可以看到上面的请求报文中多了一个Referer字段,后面跟了一个URL,表明这个网页是从后面的URL中跳转过来,即进行了重定向。

301 Moved Permanently
永久重定向。该状态码表示请求的资源已经被分配了新的URL,以后应该使用新的URL去访问该资源

302 Found
临时性重定向。该状态码表示请求的资源已经分配了新的URL,希望用户本次能使用新的URL。

303 See Other
该状态码表示由于请求对应的资源存在着另一个URL,应使用GET方法定向获取请求的资源。
注意303和302的区别,303是客户端必须使用GET方法去获取新的资源。

304 Not Modified
该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但是发生请求未满足条件的情况后,直接返回304状态码,虽然被划分在3XX中,但是此处和重定向没有关系。

307 Temporary Redirect
临时重定向。该状态码和302Found有着相同的含义,302标准规定禁止POST变换成GET,但实际使用时大家并不遵守。
307会遵照浏览器标准,不会从POST变成GET

4XX 客户端错误

400 Bad Request
该状态表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。浏览器会像200 OK一样对待该状态码

401 Unauthorized
该状态码表示发送的请求需要有通过HTTP认证(BASIC认证,DIGEST认证)的认证信息。如果之前已进行过一次请求,则表示用户认证失败。

403 Forbidden
该状态码表示对请求资源的访问被服务器拒绝了。
未获得文件系统的访问权限,访问权限出现某些问题等情况都可能发生403。

404 Not Found
该状态码表明服务器无法找到请求的资源。即常见的浏览器返回资源不存在。

5XX 服务器错误

500 Internal Server Error
该状态码表明服务器端在执行请求时发生了错误,也有可能时web应用存在的bug或某些临时的故障

503 Service Unavailable
该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求

上面就是一些常见的状态码。

你可能感兴趣的:(网络)