首页 > 其他分享 >websocket握手成功会返回一个干什么状态吗?是200吗?

websocket握手成功会返回一个干什么状态吗?是200吗?

时间:2024-12-07 10:25:20浏览次数:5  
标签:200 HTTP Upgrade WebSocket 握手 websocket

WebSocket 握手成功不会返回 200 状态码。HTTP 200 状态码表示的是一个成功的 HTTP 请求。而 WebSocket 握手本身是一个 HTTP 请求,但其目的是为了升级协议到 WebSocket。

成功建立 WebSocket 连接时,服务器返回的 HTTP 状态码是 101 Switching Protocols。 客户端收到这个状态码后,就知道服务器同意升级协议,后续的通信将不再使用 HTTP,而是使用 WebSocket 协议。

客户端发起 WebSocket 连接的请求头中包含 Upgrade: websocketConnection: Upgrade 这两个字段,服务器同意升级协议后,会在响应头中也包含这两个字段,以及 Sec-WebSocket-Accept 字段 (根据客户端请求头中的 Sec-WebSocket-Key 计算得出)。

简而言之:

  • 请求: 客户端发送一个 HTTP 请求,包含 Upgrade: websocketConnection: Upgrade
  • 成功响应: 服务器返回 101 Switching Protocols,也包含 Upgrade: websocketConnection: Upgrade,以及 Sec-WebSocket-Accept
  • 失败响应: 如果握手失败,服务器会返回其他的 HTTP 状态码,例如 400, 401, 403, 500 等,表示连接未能建立。

所以,看到 101 状态码,就代表 WebSocket 握手成功了。

标签:200,HTTP,Upgrade,WebSocket,握手,websocket
From: https://www.cnblogs.com/ai888/p/18591850

相关文章

  • websocket可以携带cookie吗?为什么?如果可以,怎样做到呢?
    WebSocket本身不能直接携带Cookie。Cookie是HTTP协议的一部分,而WebSocket是独立于HTTP的协议,虽然它通常使用HTTP协议进行初始握手。原因:不同的协议:Cookie的设计是与HTTP请求/响应周期紧密相关的。它通过HTTP头部在客户端和服务器之间来回传递。WebSocket建立连接后,就脱离了H......
  • websocket如何区分不同的客户端?
    WebSocket区分不同的客户端主要依靠每个连接建立时分配的唯一连接标识符(ConnectionID)。服务器端会为每个新建立的WebSocket连接生成一个独一无二的ID,并将其与该连接的客户端相关联。后续所有来自该客户端的消息和服务器向该客户端发送的消息都会通过这个ID进行识别......
  • websocket和http2有什么区别?http2能取代websocket吗?为什么?
    WebSocket和HTTP/2都是现代的网络协议,用于客户端和服务器之间的通信,但它们的设计目标和工作方式不同,因此各有优缺点。HTTP/2不能完全取代WebSocket。主要区别:连接类型:HTTP/2是基于请求-响应的模型,即使是服务器推送,客户端也需要先发起请求。WebSocket则建立一个持久连接,客户......
  • http和websocket能共用一个端口吗?为什么?
    是的,HTTP和WebSocket可以共用一个端口,通常是80端口(HTTP)或443端口(HTTPS)。这是因为WebSocket协议的设计就是为了能够与HTTP协同工作,并通过相同的端口进行通信。以下是原因:初始握手(Handshake):WebSocket连接的建立始于一个HTTP请求,称为“WebSocket握手”。客户端......
  • websocket和http有什么区别?
    WebSocket和HTTP是两种不同的网络协议,它们在前端开发中扮演着不同的角色,主要区别如下:1.连接方式:HTTP:基于请求-响应模型。客户端发送请求,服务器响应,然后连接关闭。每次交互都需要建立新的连接。这就像打电话,每次沟通都需要拨号和挂断。WebSocket:建立持久连接。客户端和服......
  • websocket和socket有什么区别?
    在前端开发中,WebSocket和Socket虽然都用于网络通信,但它们之间存在显著的区别:Socket(套接字):底层、通用:Socket是一个更底层的抽象,表示网络通信的端点。它提供了更通用的网络通信能力,可以用于各种协议,例如TCP、UDP等。需要自行管理连接:使用Socket需要开发者自行处......
  • 题解:P2217 [HAOI2007] 分割矩阵
    思路首先,我们要弄明白题中的方差是什么。公式:$S=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2}$接下来,我们思考一下题目怎么做。数据很小,于是想到了暴搜。但是时间复杂度有点难以接受啊,优化一下吧。有一种很有效的优化,那就是广为人知的记忆化搜索。它能使所有......
  • 深入解析 Nginx 对 WebSocket 的负载均衡支持
    1.引言1.1WebSocket的背景与重要性随着Web应用程序的复杂度增加,实时性要求也越来越高。传统的HTTP协议虽然可以满足大多数的请求-响应模式,但对于需要实时通信的应用场景,HTTP变得不再适用。例如,在线游戏、即时消息、股票行情更新、协作工具等应用,要求服务端能够主......
  • 2001-2023年上市公司数据资本化数据
    2001-2023年上市公司数据资本化数据1、时间:2001-2023年2、来源:上市公司年报3、指标:自用型数据资产数字关键词、自用型数据资产数据关键词、自用型数据资产信息关键词、自用型数据资产网络关键词、交易型数据资产数字关键词、交易型数据资产数据关键词、交易型数据资产信息关......
  • Y20030029 Java+微信+SPRINGBOOT+MYSQL+LW+传统文化展示微信小程序的设计与开发 配置
    传统文化展示微信小程序1.项目摘要2.课题开发的背景和意义3.项目功能4.界面展示5.源码获取1.项目摘要基于微信小程序的传统文化展示小程序是一个集合了多种传统文化元素与现代化技术的创新平台。它充分利用了微信小程序的便捷性和普及性,为广大用户提供了一个深入......