WebSocket服务器应该只处理GET请求吗?
我编写了一个WebSocket服务器,它只处理GET请求的升级请求。如果出现带有所需标题的POST或任何其他类型的请求,它将由HTTP服务器处理 在中,没有明确说明WebSocket升级请求应该是GET请求。 如果升级请求不是GET请求,服务器是否应将其作为WebSocket升级请求处理,是否应将其传递给HTTP服务器处理,或者是否应使用类似于WebSocket服务器应该只处理GET请求吗?,websocket,Websocket,我编写了一个WebSocket服务器,它只处理GET请求的升级请求。如果出现带有所需标题的POST或任何其他类型的请求,它将由HTTP服务器处理 在中,没有明确说明WebSocket升级请求应该是GET请求。 如果升级请求不是GET请求,服务器是否应将其作为WebSocket升级请求处理,是否应将其传递给HTTP服务器处理,或者是否应使用类似于400 Bad request的状态代码对其进行响应 如果服务器决定不处理非GET请求的方法,这可能是一个设计决策吗?来自webSocket规范的(客户端
400 Bad request
的状态代码对其进行响应
如果服务器决定不处理非GET请求的方法,这可能是一个设计决策吗?来自webSocket规范的(客户端要求),它说:
请求的方法必须是GET,HTTP版本必须是GET
至少为1.1
然后,在稍后的webSocket规范中(阅读客户的开场握手),它说:
客户的开场握手包括以下几个部分。如果
服务器在读取握手时发现客户端没有
不发送符合以下描述的握手(请注意
根据[RFC2616],标题字段的顺序并不重要),
包括但不限于任何违反ABNF语法的行为
为握手的组件指定,服务器必须停止
处理客户端的握手并返回HTTP响应
适当的错误代码(例如400错误请求)
关于你的具体问题: WebSocket服务器应该只处理GET请求吗 是的,webSocket连接总是以GET请求开始,而不是POST或任何其他方法 如果升级请求不是GET请求,服务器是否应将其作为WebSocket升级请求处理,是否应将其传递给HTTP服务器处理,或者是否应使用状态代码(如400 Bad request)对其进行响应 如规范的上述参考部分所述,服务器应响应状态代码,如400 Bad Request 这可能是服务器决定不处理非GET请求的方法的设计决策吗 是。根据webSocket规范的(客户要求),它说: 请求的方法必须是GET,HTTP版本必须是GET 至少为1.1 然后,在稍后的webSocket规范中(阅读客户的开场握手),它说: 客户的开场握手包括以下几个部分。如果 服务器在读取握手时发现客户端没有 不发送符合以下描述的握手(请注意 根据[RFC2616],标题字段的顺序并不重要), 包括但不限于任何违反ABNF语法的行为 为握手的组件指定,服务器必须停止 处理客户端的握手并返回HTTP响应 适当的错误代码(例如400错误请求)
关于你的具体问题: WebSocket服务器应该只处理GET请求吗 是的,webSocket连接总是以GET请求开始,而不是POST或任何其他方法 如果升级请求不是GET请求,服务器是否应将其作为WebSocket升级请求处理,是否应将其传递给HTTP服务器处理,或者是否应使用状态代码(如400 Bad request)对其进行响应 如规范的上述参考部分所述,服务器应响应状态代码,如400 Bad Request 这可能是服务器决定不处理非GET请求的方法的设计决策吗 对