http、https网络请求状态码 statusCode 200、300、400、500。WebSocket断开状态码 1006...

一、http、https网络请求状态码 statusCode 200、300、400、500

  200-206:服务器成功处理了请求的状态代码,说明网页或资源可以正常访问。

    • 200(成功)  服务器已成功处理了请求。通常,这表示服务器提供了请求的网页或资源。
    • 201(已创建)  请求成功且服务器已创建了新的资源。 
    • 202(已接受)  服务器已接受了请求,但尚未对其进行处理。 
    • 203(非授权信息)  服务器已成功处理了请求,但返回了可能来自另一来源的信息。 
    • 204(无内容)  服务器成功处理了请求,但未返回任何内容。 
    • 205(重置内容) 服务器成功处理了请求,但未返回任何内容。与 204 响应不同,此响应要求请求者重置文档视图(例如清除表单内容以输入新内容)。 
    • 206(部分内容)  服务器成功处理了部分 GET 请求。

  

  300-307:要完成请求,需要进一步进行操作。通常,这些状态代码是永远重定向的。

    • 300(多种选择)  服务器根据请求可执行多种操作。服务器可根据请求者 来选择一项操作,或提供操作列表供其选择。 
    • 301(永久移动)  请求的网页已被永久移动到新位置。服务器返回此响应时,会自动将请求者转到新位置。应使用此代码通知搜索引擎蜘蛛网页或网站已被永久移动到新位置。 
    • 302(临时移动)  服务器正从不同位置的网页响应请求,请求者应继续使用原有位置来进行以后的请求。服务器会自动将请求者转到不同的位置。但由于搜索引擎会继续抓取原有位置并将其编入索引,因此不应使用此代码来告诉搜索引擎页面或网站已被移动。 
    • 303(查看其他位置) 当请求者应对不同的位置进行单独的 GET 请求以检索响应时,服务器会返回此代码。对于除 HEAD 请求之外的所有请求,服务器会自动转到其他位置。 
    • 304(未修改) 自从上次请求后,请求的网页未被修改过。服务器返回此响应时,不会返回网页内容。

如果网页自请求者上次请求后再也没有更改过,应当将服务器配置为返回此响应。由于服务器可以告诉 搜索引擎自从上次抓取后网页没有更改过,因此可节省带宽和开销。 

    • 305(使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,那么,服务器还会指明请求者应当使用的代理。 
    • 307(临时重定向)  服务器正从不同位置的网页响应请求,请求者应继续使用原有位置来进行以后的请求。服务器会自动将请求者转到不同的位置。但由于搜索引擎会继续抓取原有位置并将其编入索引,因此不应使用此代码来告诉搜索引擎某个页面或网站已被移动。

  4XX:请求可能出错。会妨碍服务器的处理。

    • 400(错误请求) 服务器不理解请求的语法。 
    • 401(身份验证错误) 此页要求授权。
    • 403(禁止) 服务器拒绝请求。
    • 404(未找到) 服务器找不到请求的网页。对于服务器上不存在的网页或某些错误的路由会返回此状态码,服务器应该指定错误页面。
    • 405(方法禁用) 禁用请求中指定的方法。
    • 406(不接受) 无法使用请求的内容特性响应请求的网页。 
    • 407(需要代理授权) 此状态码与 401 类似,但指定请求者必须授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理。 
    • 408(请求超时) 服务器等候请求时发生超时。 
    • 409(冲突) 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,以及两个请求的差异列表。 
    • 410(已删除) 请求的资源永久删除后,服务器返回此响应。该代码与 404(未找到)代码相似,但在资源以前存在而现在不存在的情况下,有时会用来替代 404 代码。如果资源已永久删除,应当使用 301 指定资源的新位置。 
    • 411(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。 
    • 412(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。 
    • 413(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 
    • 414(请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。不同的浏览器和服务器对URL的长度、大小支持有差异。
    • 415(不支持的媒体类型) 请求的格式不受请求页面的支持。 
    • 416(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态码。 
    • 417(未满足期望值) 服务器未满足"期望"请求标头字段的要求。


  
500-505:服务器在尝试处理请求时发生内部错误。通常是服务器本身的错误,而不是请求出错。

    • 500(服务器内部错误)  服务器遇到错误,无法完成请求。
    • 501(尚未实施) 服务器不具备完成请求的功能。例如,当服务器无法识别请求方法时,服务器可能会返回此代码。
    • 502(错误网关) 服务器作为网关或代理,从上游服务器收到了无效的响应。
    • 503(服务不可用) 目前无法使用服务器(由于超载或进行停机维护)。通常,这只是一种暂时的状态。
    • 504(网关超时)  服务器作为网关或代理,未及时从上游服务器接收请求。
    • 505(HTTP 版本不受支持) 服务器不支持请求中所使用的 HTTP 协议版本。

 MDN:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status

二、WebSocket断开状态码 1006...

  WebSocket断开时,会触发事件 CloseEvent 。CloseEvent会在连接关闭时发送给使用 WebSockets 的客户端. 它在 WebSocket 对象的 onclose 事件监听器中使用。

  CloseEvent有三个字段需要注意, 通过分析这三个字段,一般就可以找到断开原因

    • CloseEvent.code  code是错误码,是整数类型
    • CloseEvent.reasonreason是断开原因,是字符串
    • CloseEvent.wasCleanwasClean表示是否正常断开,是布尔值。一般异常断开时,该值为false。

  

  一般来说1006的错误码出现的情况比较常见,该错误码一般出现在断网时。

0–999   保留段, 未使用.
1000 CLOSE_NORMAL 正常关闭; 无论为何目的而创建, 该链接都已成功完成任务.
1001 CLOSE_GOING_AWAY 终端离开, 可能因为服务端错误, 也可能因为浏览器正从打开连接的页面跳转离开.
1002 CLOSE_PROTOCOL_ERROR 由于协议错误而中断连接.
1003 CLOSE_UNSUPPORTED 由于接收到不允许的数据类型而断开连接 (如仅接收文本数据的终端接收到了二进制数据).
1004   保留. 其意义可能会在未来定义.
1005 CLOSE_NO_STATUS 保留. 表示没有收到预期的状态码.
1006 CLOSE_ABNORMAL 保留. 用于期望收到状态码时连接非正常关闭 (也就是说, 没有发送关闭帧).
1007 Unsupported Data 由于收到了格式不符的数据而断开连接 (如文本消息中包含了非 UTF-8 数据).
1008 Policy Violation 由于收到不符合约定的数据而断开连接. 这是一个通用状态码, 用于不适合使用 1003 和 1009 状态码的场景.
1009 CLOSE_TOO_LARGE 由于收到过大的数据帧而断开连接.
1010 Missing Extension 客户端期望服务器商定一个或多个拓展, 但服务器没有处理, 因此客户端断开连接.
1011 Internal Error 客户端由于遇到没有预料的情况阻止其完成请求, 因此服务端断开连接.
1012 Service Restart 服务器由于重启而断开连接.
1013 Try Again Later 服务器由于临时原因断开连接, 如服务器过载因此断开一部分客户端连接.
1014   由 WebSocket标准保留以便未来使用.
1015 TLS Handshake 保留. 表示连接由于无法完成 TLS 握手而关闭 (例如无法验证服务器证书).
1016–1999   由 WebSocket标准保留以便未来使用.
2000–2999   由 WebSocket拓展保留使用.
3000–3999   可以由库或框架使用.不应由应用使用. 可以在 IANA 注册, 先到先得.
4000–4999   可以由应用使用.

MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/CloseEvent

原文地址:https://www.cnblogs.com/jiayouba/p/14922091.html