HTTP状态码(简单)

状态码(以下带图片的比较常见)

在这里插入图片描述
常用:
在这里插入图片描述

1XX:通知

1XX系列响应代码仅在与HTTP服务器沟通时使用。

		a. 100("Continue") 

该响应代码表明:客户端应重新发送初始请求,
并在请求中附上第一次请求时未提供的(可能很大或者包含敏感信息的)表示。
并且客户端这次发送的请求不会被拒绝。

		b. 101("Switching Protocols")

通知服务器它想改用除HTTP协议之外的其他协议时,客户端将获得此响应代码。
101响应代码表示“OK,我现在改用另一个协议了”。

2XX: 成功

2XX系列响应代码表明操作成功了。

		a. 200("OK")

它表示服务器成功执行了客户端所请求的动作
在这里插入图片描述

		b. -201("Created") 	

当服务器依照客户端的请求创建了一个新资源时,发送此响应代码。

		c. -202("Accepted") 

客户端的请求无法或将不被实时处理。请求稍后会被处理。

		d. 203("Non-Authoritative Information") 

这个响应代码跟200一样,只不过服务器想让客户端知道,有些响应报头并非来自该服务器–他们可能是从客户端先前发送的一个请求里复制的,或者从第三方得到的。

		e. 204("No Content") 

若服务器拒绝对PUT、POST或者DELETE请求返回任何状态信息或表示,那么通常采用此响应代码。服务器也可以对GET请求返回此响应代码,这表明“我把请求告诉你,但不希望返回信息给我,没啥事,我就给你说一下”。
在这里插入图片描述

	f. 205("Reset Content") 

它与204类似,但与204不同的是,它表明客户端应重置数据源的视图或数据结构。假如你在浏览器里提交一个HTML表单,并得到响应代码204,那么表单里的各个字段值不变,可以继续修改它们;但假如得到的响应代码205,那么表单里的各个字段将被重置为它们的初始值。从数据录入方面讲:204适合对单条记录做一系列编辑,而205适于连续输入一组记录。

	g. 206("Partial Content") 

部分GET请求常用于大型二进制文件的断点续传。
回显的是一部分的内容
例如:在线图片或比较大的pdf的加载,给一个范围,是部分的请求。
在这里插入图片描述
在这里插入图片描述

3XX 重定向

3XX系列响应代码表明:客户端需要做些额外工作才能得到所需要的资源。它们通常用于GET请求。他们通常告诉客户端需要向另一个URI发送GET请求,才能得到所需的表示。那个URI就包含在Location响应报头里。

		a. 300("Multiple Choices")
  1. 若被请求的资源在服务器端存在多个表示,而服务器不知道客户端想要的是哪一个表示时,发送这个响应代码。
  2. 或者当客户端没有使用Accept-*报头来指定一个表示,
  3. 或者客户端所请求的表示不存在时,也发送这个响应代码。
	b.301("Moved Permanently") 

服务器知道客户端试图访问的是哪个资源,但它不喜欢客户端用当前URI来请求该资源。
它希望客户端记住另一个URI,并在今后的请求中使用那个新的URI。你可以通过这个响应代码来防止由于URI变更而导致老URI失效。
在这里插入图片描述

		c. 302("Found")

防火墙经常用到,本来要访问 a,但是需要认证,所以需要先到 b(返回302),经过认证之后(返回303,通过了)才能到 a.
在这里插入图片描述

		d. 303("See Other") 

请求已经被处理,但服务器不是直接返回一个响应文档,而是返回一个响应文档的URI。
不管以前是啥现在用GET
在这里插入图片描述

		c. 304("Not Modified") 

访问的页面没有被修改(例:刷新页面)
在这里插入图片描述

		d. 305("Use Proxy") 

这个响应代码用于告诉客户端它需要再发一次请求,但这次要通过一个HTTP代理发送,而不是直接发送给服务器。

		e. 307("Temporary Redirect") (是个标准,302,303没人遵循)

一定要改成GET,因为GET是没啥副作用的,而Post会进行删除修改等操作导致不安全
在这里插入图片描述

		f. 特殊:   <meta http-equiv="refresh" content="5; URL=1.html">

html语句:能够产生重定向,但是返回200ok
延迟跳转页面
.

4XX:客户端错误

这些响应代码表明客户端出现错误。不是认证信息有问题,就是表示格式或HTTP库本身有问题。客户端需要自行改正。

		a. 400("Bad Request") 

这是一个通用的客户端错误状态,当其他4XX响应代码不适用时,就采用400。此响应代码通常用于“服务器收到客户端通过PUT或者POST请求提交的表示,表示的格式正确,但服务器不懂它什么意思”的情况。
在这里插入图片描述
例:
在这里插入图片描述

		b. 401("Unauthorized") 
  1. 未授权,有窗口蹦出
  2. 用户名/密码
  3. API key
  4. 认证令牌。
  5. 客户端常常通过向一个URI发送请求,并查看收到401响应,以获知应该发送哪种证书,以及证书的格式。
    在这里插入图片描述

.

	c. 402("Payment Required") 

除了它的名字外,HTTP标准没有对该响应的其他方面作任何定义。因为目前还没有用于HTTP的微支付系统,所以它被留作将来使用。

	d. 403("Forbidden") 

权限不够,不允许访问。
在这里插入图片描述

	e. 404("Not Found")

没有找到,但是404也有可能是用来掩饰403或者401.

在这里插入图片描述

	f. 405("Method Not Allowd")

客户端试图使用一个本资源不支持的HTTP方法。

	g. 406("Not Acceptable") 

客户端对表示有太多要求,以至于服务器无法提供满足要求的表示,服务器可以发送这个响应代码。

	h. 407("Proxy Authentication Required") 

只有HTTP代理会发送这个响应代码。它跟401类似,唯一区别在于:这里不是无权访问web服务,而是无权访问代理

	i. 408("Reqeust Timeout") 

假如HTTP客户端与服务器建立链接后,却不发送任何请求(或从不发送表明请求结束的空白行),那么服务器最终应该发送一个408响应代码,并关闭此连接。

	g. 409("Conflict") 

此响应代码表明:你请求的操作会导致服务器的资源处于一种不可能或不一致的状态。
例: 你试图修改某个用户的用户名,而修改后的用户名与其他存在的用户名冲突了。

	h. 410("Gone") 

这个响应代码跟404类似,但它提供的有用信息更多一些。
这个响应代码用于服务器知道被请求的URI过去曾指向一个资源,但该资源现在不存在了的情况
服务器不知道 该资源的新URI,服务器要是知道该URI的话,它就发送响应代码301.410和310一样,都有暗示客户端不应该再请求该URI的意思,不同之处在于:410只是指出该资源不存在,但没有给出该资源的新URI

	i. 411("Length Required") 

HTTP服务器可以要求客户端必须设置该报头。服务器可以中断任何没有提供Content-Length报头的请求,并要求客户端重新提交包含Content-Length报头的请求。
这个响应代码就是用于中断未提供Content-Lenght报头的请求的。假如客户端提供错误的长度,或发送超过长度的表示,服务器可以中断请求并关闭链接,并返回响应代码413。

	j. 412("Precondition Failed") 

客户端在请求报头里指定一些前提条件,并要求服务器只有在满足一定条件的情况下才能处理本请求。若服务器不满足这些条件,就返回此响应代码

	k. 413("Request Entity Too Large") 

这个响应代码跟411类似,服务器可以用它来中断客户端的请求并关闭连接,而不需要等待请求完成

	l. 414("Request-URI Too Long") 重要程度:低。

HTTP标准并没有对URI长度作出官方限制,但大部分现有的web服务器都对URI长度有一个上限,而web服务可能也一样。
导致URI超长的最常见的原因是:表示数据明明是该放在实体主体里的,但客户端却把它放在了URI里。深度嵌套的数据结构也有可能引起URI过长。

	m. 415("Unsupported Media Type") 重要程度:中等。

当客户端在发送表示时采用了一种服务器无法理解的媒体类型,服务器发送此响应代码。

	n. 416("Requestd Range Not Satisfiable") 重要程度:低。

当客户端所请求的字节范围超出表示的实际大小时,服务器发送此响应代码。
例如:你请求一个表示的1-100字节,但该表示总共只用99字节大小。

	o. 417("Expectation Failed") 重要程度:中等。

此响应代码跟100正好相反。
当你用LBYL请求来考察服务器是否会接受你的表示时,如果服务器确认会接受你的表示,那么你将获得响应代码100,否则你将获得417。

5XX 服务端错误

这些响应代码表明服务器端出现错误。一般来说,这些代码意味着服务器处于不能执行客户端请求的状态,此时客户端应稍后重试。

5XX系列响应代码在数量上不如4XX系列多,这不是因为服务器错误的几率小,而是因为没有必要如此详细–对于服务器方面的问题,客户端是无能为力的。

		a. 500("Internal Server Error") 

这是一个通用的服务器错误响应。对于大多数web框架,如果在执行请求处理代码时遇到了异常,它们就发送此响应代码。

		b. 501("Not Implemented") 

客户端试图使用一个服务器不支持的HTTP特性

最常见的例子是:客户端试图做一个采用了拓展HTTP方法的请求,而普通web服务器不支持此请求。它跟响应代码405比较相似,405表明客户端所用的方法是一个可识别的方法,但该资源不支持,而501表明服务器根本不能识别该方法。

		c. 502("Bad Gateway") 

只有HTTP代理会发送这个响应代码。它表明代理方面出现问题,或者代理与上行服务器之间出现问题,而不是上行服务器本身有问题。若代理根本无法访问上行服务器,响应代码将是504。

		d. 503("Service Unavailable") 

此响应代码表明HTTP服务器正常,只是下层web服务服务不能正常工作。最可能的原因是资源不足:服务器突然收到太多请求,以至于无法全部处理。由于此问题多半由客户端反复发送请求造成,因此HTTP服务器可以选择拒绝接受客户端请求而不是接受它,并发送503响应代码。

		e. 504("Gateway Timeout") 

跟502类似,只有HTTP代理会发送此响应代码。此响应代码表明代理无法连接上行服务器。

		f. 505("HTTP Version Not Supported") 

服务器不支持客户端试图使用的HTTP版本时发送此响应代码。

发布了108 篇原创文章 · 获赞 114 · 访问量 8565

猜你喜欢

转载自blog.csdn.net/weixin_45773503/article/details/104671388