标准关闭码(RFC 6455)

码值名称含义典型场景
1000Normal Closure正常关闭业务结束、客户端主动断开
1001Going Away端点离开页面关闭、服务重启
1002Protocol Error协议错误帧格式不符合协议
1003Unsupported Data不支持的数据收到无法处理的类型
1005No Status Received无状态码保留,不应在 Close 帧中发送
1006Abnormal Closure异常关闭连接意外断开(未收到 Close 帧)
1007Invalid Payload无效载荷非 UTF-8 文本等
1008Policy Violation策略违规违反服务端策略
1009Message Too Big消息过大超过允许大小
1010Mandatory Extension需要扩展客户端期望的扩展未协商
1011Internal Error内部错误服务端处理异常
1012Service Restart服务重启服务端重启
1013Try Again Later稍后再试临时过载
1015TLS HandshakeTLS 失败保留,证书/握手问题

自定义关闭码范围

范围用途
0~999保留,不可使用
1000~1015标准码(上表)
1016~2999保留,不可由应用定义
3000~3999库/框架注册,需 IANA 或约定
4000~4999应用自定义(最常用)

工具说明

WebSocket 在关闭时会携带 2 字节状态码与可选原因字符串。浏览器 DevTools 的 WS 面板可查看 close code。1006 表示连接异常断开,常见于网络闪断、进程被杀、未发 Close 帧。

与 HTTP 的关系

建立连接时使用 HTTP 升级:101 Switching Protocols 表示握手成功;握手失败则仍是普通 HTTP 状态码(如 401、404)。