浏览器之http请求状态值

浏览器之http请求状态值

参考网址

https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/status

一、XMLHttpRequest.status

	failed(0)
	Informational responses (100–199),
	Successful responses (200–299),
	Redirects (300–399),
	Client errors (400–499),
	and Server errors (500–599).

二、XMLHttpRequest-xhr的代码实现

	-------------------------------
	var xhr = new XMLHttpRequest();
	console.log('UNSENT', xhr.status);
	
	xhr.open('GET', '/server', true);
	console.log('OPENED', xhr.status);
	
	xhr.onprogress = function () {
	  console.log('LOADING', xhr.status);
	};
	
	xhr.onload = function () {
	  console.log('DONE', xhr.status);
	};
	
	xhr.send(null);
	-------------------------------
	/**
	 * 输出如下:
	 *
	 * UNSENT(未发送) 0
	 * OPENED(已打开) 0
	 * LOADING(载入中) 200
	 * DONE(完成) 200
	 */

三 状态值分析

status 0

unset,opened
请求还未发出, 如果请求一直是此状态,请检查url地址是否正常

status 100~199

100 Continue
请求正常继续请求中,等待完成
101 Switching Protocol
协议切换,像websocket就有协议切换的过程 upgrade
102 Processing(WebDAV)
服务器处理请求中...尚无响应
103 Early Hints
此状态代码主要用于Link标头,以便用户代理在服务器准备响应时开始预加载资源

status 200~299

200 OK 
请求成功
201 Created 
请求成功, 并因此创建了资源->PUT|POST
202 Accepted 
请求成功接收,但尚未执行
204 No Content
没有要发送的内容,但标头可能有用。用户代理可以使用新的代理更新该资源的缓存头。
205 Reset Content
告诉用户代理重置发送此请求的文档。
206 Partial Content
当Range从客户端发送标头仅请求资源的一部分时,将使用此响应代码。
断点续传

status 300~399

300 Multiple Choice
该请求有多个可能的响应。用户代理或用户应选择其中之一。
(没有标准化的方法来选择一种响应,但是建议使用HTML链接指向可能性,以便用户选择。)
301 Moved Permanently
所请求资源的URL已永久更改。新的URL在响应中给出。
302 Found
此响应代码表示所请求资源的URI已临时更改。将来可能会在URI中进行进一步的更改。因此,客户端在以后的请求中应使用相同的URI。
303 See Other
服务器发送此响应以指示客户端使用GET请求在另一个URI上获取请求的资源。
304 Not Modified
这用于缓存目的。它告诉客户端尚未修改响应,因此客户端可以继续使用响应的相同缓存版本。
305 Use Proxy 
在HTTP规范的先前版本中定义,以指示代理必须访问请求的响应。由于与代理的带内配置有关的安全性考虑,已弃用该文件。
306 unused
该响应代码已不再使用。它只是保留的。在先前版本的HTTP / 1.1规范中使用了它。
307 Temporary Redirect
服务器发送此响应以指示客户端使用先前请求中使用的相同方法在另一个URI中获取请求的资源。
它具有与302 FoundHTTP响应代码相同的语义,不同之处在于用户代理不得更改所使用的HTTP方法:
如果POST在第一个请求POST中使用a,则在第二个请求中必须使用a 。
308 Permanent Redirect
这意味着资源现在永久位于Location:HTTP响应标头指定的另一个URI上。
它具有与301 Moved PermanentlyHTTP响应代码相同的语义,不同之处在于用户代理不得更改所使用的HTTP方法:
如果POST在第一个请求POST中使用a,则在第二个请求中必须使用a 。

客户端异常 status 400~499

400 Bad Request
由于语法无效,服务器无法理解该请求。
401 Unauthorized
尽管HTTP标准指定了“未经授权”,但从语义上来说,此响应表示“未经验证”。
也就是说,客户端必须对自己进行身份验证才能获得请求的响应。
402 Payment Required 
该响应代码保留供将来使用。创建此代码的最初目的是将其用于数字支付系统,但是很少使用此状态代码,并且不存在标准约定。
403 Forbidden
客户端无权访问内容;也就是说,它是未经授权的,因此服务器拒绝提供所请求的资源。与401不同,服务器知道客户端的身份。
404 Not Found
服务器找不到请求的资源。在浏览器中,这意味着无法识别URL。在API中,这也可能意味着端点有效,
但是资源本身不存在。服务器也可以发送此响应而不是403,以隐藏来自未授权客户端的资源。
由于此响应代码在网络上经常出现,因此可能是最著名的响应代码。
405 Method Not Allowed
服务器知道该请求方法,但已被禁用,无法使用。例如,API可能禁止删除资源。
绝对不能禁用这两个强制方法  GET和HEAD,并且不应该返回此错误代码。
406 Not Acceptable
当Web服务器在执行服务器驱动的内容协商后,未找到符合用户代理给出的条件的任何内容时,将发送此响应。
407 Proxy Authentication Required
这类似于401,但需要由代理进行身份验证。
408 Request Timeout
即使没有客户端的任何先前请求,某些服务器也会在空闲连接上发送此响应。
这意味着服务器要关闭此未使用的连接。由于某些浏览器(例如Chrome,Firefox 27+或IE9)使用HTTP预连接机制来加快浏览速度,
因此使用该响应的次数更多。另请注意,某些服务器仅关闭连接而不发送此消息。
409 Conflict
当请求与服务器的当前状态冲突时,将发送此响应。
410 Gone
当请求的内容已从服务器中永久删除且没有转发地址时,将发送此响应。客户端应删除其缓存和资源链接。
HTTP规范打算将此状态代码用于“限时促销服务”。不应强迫API指示已使用此状态代码删除的资源。
411 Length Required
服务器拒绝了该请求,因为Content-Length未定义头字段,并且服务器需要它。
412 Precondition Failed
客户端在其标头中指示服务器不满足的前提条件。
413 Payload Too Large
请求实体大于服务器定义的限制;服务器可能会关闭连接或返回Retry-After标头字段。
414 URI Too Long
客户端请求的URI比服务器愿意解释的长。
415 Unsupported Media Type
服务器不支持所请求数据的媒体格式,因此服务器拒绝了该请求。
416 Range Not Satisfiable
Range无法满足请求中的标头字段指定的范围;范围可能超出目标URI数据的大小。
417 Expectation Failed
此响应代码表示Expect服务器无法满足请求标头字段指示的期望。
418 I'm a teapot
服务器拒绝尝试用茶壶冲泡咖啡。
421 Misdirected Request
该请求被定向到不能产生响应的服务器。这可以由未配置为对请求URI中包含的方案和权限的组合产生响应的服务器发送。
422 Unprocessable Entity(WebDAV)
该请求格式正确,但由于语义错误而无法遵循。
423 Locked(WebDAV)
被访问的资源被锁定。
424 Failed Dependency(WebDAV)
由于前一个请求失败,因此请求失败。
425 Too Early
表示服务器不愿意冒险处理可能重播的请求。
426 Upgrade Required
服务器拒绝使用当前协议执行请求,但是在客户端升级到其他协议后,服务器可能愿意这样做。
服务器Upgrade在426响应中发送标头,以指示所需的协议。
428 Precondition Required
原始服务器要求该请求是有条件的。此响应旨在防止“丢失更新”问题,在这种情况下,客户端获取资源的状态,
然后对其进行修改,然后将其重新放置到服务器上,而此时第三方已修改了服务器上的状态,从而导致冲突。
429 Too Many Requests
用户在给定的时间内发送了太多请求(“速率限制”)。
431 Request Header Fields Too Large
服务器不愿意处理该请求,因为其标头字段太大。在减小请求头字段的大小之后,可以重新提交请求。
451 Unavailable For Legal Reasons
用户代理请求了无法合法提供的资源,例如政府审查的网页。

服务器异常 status 500~599

500 Internal Server Error
服务器遇到了不知道如何处理的情况。
501 Not Implemented
服务器不支持请求方法,无法处理该请求方法。服务器需要支持的唯一方法(因此不能返回此代码)是GET 和HEAD。
502 Bad Gateway
此错误响应意味着服务器在充当网关以获取处理请求所需的响应的同时,获得了无效的响应。
503 Service Unavailable
服务器尚未准备好处理请求。常见原因是服务器因维护而停机或过载。
请注意,与此响应一起,应发送一个说明问题的用户友好页面。
此响应应用于临时条件,并且Retry-After:HTTP报头应尽可能包含恢复服务之前的估计时间。
网站管理员还必须注意与该响应一起发送的与缓存相关的标头,因为这些临时条件响应通常不应被缓存。
504 Gateway Timeout
当服务器充当网关并且无法及时获得响应时,将给出此错误响应。
505 HTTP Version Not Supported
服务器不支持请求中使用的HTTP版本。
506 Variant Also Negotiates
服务器有一个内部配置错误:所选变体资源被配置为本身参与透明的内容协商,因此不是协商过程中的适当终点。
507 Insufficient Storage(WebDAV)
由于服务器无法存储成功完成请求所需的表示,因此无法在资源上执行该方法。
508 Loop Detected(WebDAV)
服务器在处理请求时检测到无限循环。
510 Not Extended
服务器必须满足该请求的进一步扩展。
511 Network Authentication Required
511状态代码表示客户端需要进行身份验证才能获得网络访问权限
原文地址:https://www.cnblogs.com/pengsn/p/12610505.html