首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我在不打算升级到websocket连接的HTTP请求中包含"Upgrade“和"Connection”头,会发生什么情况?

在不打算升级到WebSocket连接的HTTP请求中包含"Upgrade"和"Connection"头时,通常会导致服务器忽略这两个头部字段,并将该请求视为普通的HTTP请求进行处理。这是因为"Upgrade"和"Connection"头部字段通常被用于在HTTP协议升级到WebSocket时进行握手和连接的升级。

具体情况取决于服务器的实现和配置。一般情况下,服务器会解析HTTP请求头部字段,根据字段的值来确定是否需要升级到WebSocket连接。如果请求中不包含"Upgrade"和"Connection"头,服务器会将其识别为普通的HTTP请求,并按照HTTP协议进行处理。

在没有升级到WebSocket连接的情况下,HTTP请求会继续按照HTTP协议的规范进行处理。服务器可能会执行相应的请求处理逻辑,如处理请求的URI、查询参数、请求体等,并返回相应的HTTP响应。

在这种情况下,常见的返回状态码可能是200(成功)、404(未找到)或其他适当的状态码,取决于请求的内容和服务器的处理逻辑。

需要注意的是,如果确实需要升级到WebSocket连接,那么请求中必须包含"Upgrade"和"Connection"头,并且符合WebSocket协议规范的要求。否则,服务器将无法正确处理该请求,并可能返回错误信息或拒绝连接。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Request Smuggling Via HTTP2 Cleartext

文章前言 HTTP请求走私"复兴"导致了我们现代应用程序部署破坏性漏洞,通过边缘服务器验证走私HTTP请求可能导致严重后果,包括伪造内部标、访问内部管理端点以及各种特权升级机会 HTTP...走私研究,他证明了当升级到WebSocket连接时,通过触发后端问题,代理将连接升级到TCP隧道时他可以保持与后端流水线HTTP/1.1连接,这允许请求被走私,从而规避代理服务器访问控制 尽管这种形式请求走私不会导致套接字中毒...HTTP2hop-by-hop header设置包含Base64编码HTTP/2连接参数,根据规范仅允许明文连接上进行h2c升级,并且不应转发HTTP2设置标(RFC 7540第3.2.1节)...://backend:80 注意:Traefik代理连接字符串上包含HTTP-2-Settings,这可能导致某些h2c实现上攻击失败 支持h2c后端服务器如何?...UpgradeConnection,从而实现h2c开箱即用: HAProxy Traefik Nuster 默认情况下,这些服务代理传递过程不会转发升级连接,但可以以不安全方式进行配置

1K10

跟我一起探索HTTP-协议升级机制

example/1, foo/2 根据之前请求协议,可能需要其他标信息,例如:从 HTTP/1.1 升级到 WebSocket 允许配置有关 WebSocket 连接详细信息,以及连接时提供一定程度安全性...创建初始 HTTP/1.1 会话之后,你需要发送另一个 HTTP 标准请求请求升级,但在标头中要带上 Upgrade Connection,也就是: Connection: Upgrade Upgrade...除了 Upgrade Connection,其余通常是可选,或者由浏览器和服务器都会在交互过程处理好。...允许一个请求中使用多个 Sec-WebSocket-Extension 标;结果跟在一个标头文件包含了所有列出扩展一样。...如果服务器确实支持请求协议版本,则响应包含 Sec-WebSocket-Version 标

27120
  • 谈谈 HTTP2 协议协商机制

    向大家介绍 HTTP/2 过程,有一些问题经常会被问到。例如要部署 HTTP/2 一定要先升级到 HTTPS 么?升级到 HTTP/2 之后,不支持 HTTP/2 浏览器还能正常访问么?...Upgrade 头部字段列出所希望升级到协议和版本,多个协议之间用英文逗号空格(0x2C, 0x20)隔开。...下面是建立 WebSocket 连接 HTTP 请求: GET ws://example.com/ HTTP/1.1Connection: UpgradeUpgrade: websocketOrigin...并不是所有 HTTP/2 客户端都支持 ALPN,理论上建立 TLS 连接后,依然可以再通过 HTTP Upgrade 进行协议升级,只是这样额外引入一次往返。...对于自己实现客户端和服务端,如果打算使用 HTTP/2 ClearText,由于 HTTP Upgrade 协商会增加一次往返,可以要求双方必须支持 HTTP/2,直接发送 HTTP/2 数据,走协商

    2.5K20

    Nginx 作为 WebSockets 代理

    WebSocket HTTP协议不同,但是WebSocket握手HTTP握手兼容,它使用HTTPUpgrade协议连接HTTP升级到WebSocket。...一个WebSockets应用程序会在客户端和服务端保持一个长时间工作连接。用来将连接HTTP升级到WebSocketHTTP升级机制使用HTTPUpgradeConnection协议。...一项挑战是WebSocket是一个hop-by-hop协议,所以,当代理服务器拦截到一个客户端发来Upgrade请求时,它(指服务器)需要将它自己Upgrade请求发送给后端服务器,也包括合适请求...为了使NGINX可以将来自客户端Upgrade请求发送给后端服务器,UpgradeConnection信息必须被显式设置。...为了能使NGINX正确处理WebSocket, 只需正确地设置消息来处理更新从httpWebSocket连接Upgrade请求

    1.2K10

    websocket

    TCP连接成功后,浏览器通过HTTP协议向服务器发送带有UpgradeHTTP Request消息 ConnectionHTTP1.1规定Upgrade只能应用在直接连接。...带有UpgradeHTTP1.1消息必须含有Connection,因为Connection意义就是,任何接收到此消息的人(往往是代理服务器)都要在转发此消息之前处理掉Connection中指定域...UpgradeHTTP1.1用于定义转换协议header域。如果服务器支持的话,客户端希望使用已经建立好HTTP(TCP)连接,切换到WebSocket协议。...HTTP版本为HTTP1.1,返回码是101,表示升级到websocket协议 Connection字段,包含Upgrade Upgrade字段,包含websocket Sec-WebSocket-Accept...大体上Websocket身份认证都是发生在握手阶段,通过请求内容来认证。一个常见例子是url附带参数。 new WebSocket("ws://localhost:3000?

    2.6K20

    ASP.NET Core 因为 Nginx 配置 ConnectionUpgrade 导致 Kestrel 返回 400 错误

    今天遇到了一个坑,服务器经过了 Nginx 之后,发送 POST 请求如果请求里面有 Body 内容,那么 Kestrel 将会返回 400 错误,同时也不会经过任何中间件 HTTP...标准里面, HTTP 协议提供了一种特殊机制,这一机制允许将一个已建立连接升级成新、不相容协议。...而这个机制做法如 mozilla 协议升级机制 文档所说,客户端请求时候将会添加两个额外 Header 内容: Connection: Upgrade 设置 Connection 值为...“Upgrade” 来指示这是一个升级请求 Upgrade: protocols Upgrade 指定一项或多项协议名,按优先级排序,以逗号分隔 一个典型包含升级请求例子差不多是这样:...如果Upgrade ,那么也 Connection 上加上 Upgrade ,否则就使用 keep-alive 作为内容 map $http_connection $connection_upgrade

    1.4K10

    Nginx代理WebSocket方法

    但是WebSocket握手HTTP握手兼容, 它使用HTTPUpgrade协议连接HTTP升级到WebSocket。这使得WebSocket程序可以更容易使用现已存在基础设施。...用于将连接HTTP升级到WebSocketHTTP升级机制使用UpgradeConnection。反向代理服务器支持WebSocket时面临一些挑战。...允许客户机后端服务器之间建立隧道,Nginx支持WebSocket。对于NGINX将升级请求从客户端发送到后台服务器,必须明确设置UpgradeConnection标题。...WebSocket,只需要服务器浏览器通过HTTP协议进行一个握手动作,然后单独建立一条TCP通信通道进行数据传送。...WebSocket连接过程是: ❝1)客户端发起http请求,经过3次握手后,建立起TCP连接http请求里存放WebSocket支持版本号等信息,如:UpgradeConnectionWebSocket-Version

    5.6K30

    一文读懂WebSocket

    WebSocket API,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性连接,并进行双向数据传输。...必须带有Upgrade请求,且其值必须为websocket,表示这个HTTP请求目的是要申请升级到websocket协议,而不是其他协议。...必须带有Connection请求,其值必须为Upgrade,表示这个HTTP请求是一个协议升级请求。 必须带有Sec-WebSocket-Key请求,且其值为以BASE-64编码随机字符串。...其次,该响应报文还必须满足如下要求: 必须包含Upgrade响应,并且其值必须为websocket。 必须包含Connection响应,且其值必须为Upgrade。...3.客户端检查服务端响应报文 当客户端接收到服务端响应报文后,检查其HTTP状态码是不是101,以及检查是否有UpgradeConnection与Sec-WebSocket-Accept响应

    93831

    一文读懂WebSocket

    WebSocket API,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性连接,并进行双向数据传输。...必须带有Upgrade请求,且其值必须为websocket,表示这个HTTP请求目的是要申请升级到websocket协议,而不是其他协议。...必须带有Connection请求,其值必须为Upgrade,表示这个HTTP请求是一个协议升级请求。 必须带有Sec-WebSocket-Key请求,且其值为以BASE-64编码随机字符串。...其次,该响应报文还必须满足如下要求: 必须包含Upgrade响应,并且其值必须为websocket。 必须包含Connection响应,且其值必须为Upgrade。...3.客户端检查服务端响应报文 当客户端接收到服务端响应报文后,检查其HTTP状态码是不是101,以及检查是否有UpgradeConnection与Sec-WebSocket-Accept响应

    86950

    通俗易懂讲解WebSocket

    WebSocket API,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性连接,并进行双向数据传输。...必须带有Upgrade请求,且其值必须为websocket,表示这个HTTP请求目的是要申请升级到websocket协议,而不是其他协议。...必须带有Connection请求,其值必须为Upgrade,表示这个HTTP请求是一个协议升级请求。 必须带有Sec-WebSocket-Key请求,且其值为以BASE-64编码随机字符串。...其次,该响应报文还必须满足如下要求: 必须包含Upgrade响应,并且其值必须为websocket。 必须包含Connection响应,且其值必须为Upgrade。...3.客户端检查服务端响应报文 当客户端接收到服务端响应报文后,检查其HTTP状态码是不是101,以及检查是否有UpgradeConnection与Sec-WebSocket-Accept响应

    1K50

    Nginx支持WebSocket反向代理-学习小结

    用于将连接HTTP升级到WebSocketHTTP升级机制使用UpgradeConnection。反向代理服务器支持WebSocket时面临一些挑战。...允许客户机后端服务器之间建立隧道,NGINX支持WebSocket。对于NGINX将升级请求从客户端发送到后台服务器,必须明确设置UpgradeConnection标题。...default upgrade; '' close; } map指令作用: 该作用主要是根据客户端请求$http_upgrade 值,来构造改变$connection_upgrade...其中规则没有做匹配,因此使用默认,即 $connection_upgrade 一直是 upgrade。然后如果 $http_upgrade为空字符串的话, 那值会是 close。...WebSocket,只需要服务器浏览器通过HTTP协议进行一个握手动作,然后单独建立一条TCP通信通道进行数据传送。

    2.9K40

    WebSocket与Nginx小秘密

    通过HTTP升级机制,使用HTTPUpgradeConnection协议方式可以将连接HTTP升级为WebSocket。如下图所示 ?...因为转发给缓存/代理服务器而失效),为了让Nginx代理服务器可以将来自客户端Upgrade请求发送到后端服务器,要求UpgradeConnection信息必须被显式设置。...1.map是根据客户端请求 $http_upgrade 值来构造改变 $connection_upgrade 值,即根据变量 $http_upgrade {} 里规则创建新变量 $connection_upgrade...2.HTTPUpgrade协议机制用于将连接HTTP连接升级到WebSocket连接Upgrade机制使用了Upgrade协议Connection协议;为了让Nginx可以将来自客户端Upgrade...请求发送到后端服务器,UpgradeConnection信息必须被显式设置。

    1.6K20

    如何为Nginx配置 WebSocket?

    为了建立一个 WebSocket连接,客户端浏览器首先要向服务器端发起一个 HTTP请求,这个请求稍有些不同,它包含了一些附加信息,其中附加信息Upgrade: WebSocket表明这是一个申请协议升级...服务器端解析这些附加信息,然后产生应答信息返回给客户端,客户端和服务器端 WebSocket连接就建立起来了,双方就可以通过这个连接通道自由传递信息,并且这个链接持续存在直到客户端或者服务器端某一方主动关闭链接...: 13 Upgrade: WebSocket 表示这是一个特殊 HTTP请求,客户端和服务器端通讯协议从 HTTP协议升级到 WebSocket协议。...这是因为HTTP协议是无状态(连接断开之后就不知道刚才客户端是谁了)。WebSocket 解决了HTTP无状态特性,在你关闭链接之前,服务器端一直知道你信息。 2....验证 访问服务器, 浏览器请求信息与服务器端响应信息如下图。 ? 小结 ---- 最后来总结下文章知识点 WebSocket 是一种客户端与服务器端之间保持TCP长连接网络协议。

    2.9K20

    为什么有了http,还需要websocket懂了!

    有两种情况长轮询响应:达到http请求超时时间服务器正常处理请求返回响应结果长轮询短轮询比起来,明显减少了很多不必要http请求次数,但是连接挂起也导致资源浪费!...我们看下WebSocket协议客户端请求和服务端响应示例,关于http这里就不多介绍了(这里自行回想下Http请求requestreposone部分)header意思是,浏览器想升级http协议...// 6上述字段说明如下:Upgrade:字段必须设置 websocket,表示希望升级到 WebSocket 协议Connection:须设置 Upgrade,表示客户端希望连接升级Sec-WebSocket-Key.../MboVUk= //4上述字段说明如下:101 响应码确认升级到 WebSocket 协议Connection:值为 “Upgrade” 来指示这是一个升级请求Upgrade:表示升级为 WebSocket...“IP 地址 + 端口号”,开头协议名不是“http”,引入是两个新名字:“ws”“wss”,分别表示明文和加密 WebSocket 协议连接确认发建立连接是前提,但是只有当请求参数Sec-WebSocket-Key

    94561

    WebSocket简介

    这种传统模式带来很明显缺点,即浏览器需要不断向服务器发出请求,然而HTTP请求可能包含较长头部,其中真正有效数据可能只是很小一部分,显然这样浪费很多带宽等资源。...下面是一个典型Websocket握手请求实例: 客户端请求 GET / HTTP/1.1 Upgrade: websocket Connection: Upgrade Host: example.com...但是,与Referer 不同是,Origin 只包含了协议和主机名称。 其他一些定义 HTTP 协议字段,如 Cookie 等,也可以 Websocket 中使用。...实例 为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常 HTTP 请求不同,包含了一些附加信息,其中附加信息"Upgrade: WebSocket..."表明这是一个申请协议升级 HTTP 请求,服务器端解析这些附加信息然后产生应答信息返回给客户端,客户端和服务器端 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由传递信息

    93520

    Nginx学习之反向代理WebSocket配置实例

    WebSocket集群 实际生产环境,要求多个WebSocket服务器必须具有高性能高可用,那么WebSocket协议就需要一个负载均衡层,NGINX从1.3开始支持WebSocket,其可以作为一个反向代理为...Nginx配置 注:看官方文档说 Nginx 1.3 以后版本才支持 websocket 反向代理,所以要想使用支持 websocket 功能,必须升级到 1.3 以后版本 NGINX通过允许一个客户端后端服务器之间建立隧道来支持...为了NGINX发送来至于客户端Upgrade请求到后端服务器,UpgradeConnection头部必须被设置明确。...反向代理服务器支持WebSocket时面临挑战 WebSocket是端对端,所以当一个代理服务器从客户端拦截一个Upgrade请求,它需要去发送它自己Upgrade请求到后端服务器,也包括合适...因为WebSocket是一个长连接,不像HTTP那样是典型连接,所以反向代理服务器需要允许连接保持着打开,而不是它们看起来空闲时就将它们关闭。

    1.7K50

    基于 socket.io 快速实现一个实时通讯应用WebSocket概念实现用socket.io实现一个实时接收信息例子分析webSocket协议参考文章

    socket.io包含了服务端客户端库,如果在浏览器中使用了socket.iojs,服务端也必须同样适用。...websocket”,用于告诉服务器此连接需要升级到websocket; 必须包括”Connection域,并且其值为“Upgrade”; 必须包括”Sec-WebSocket-Key”域,其值采用...base64编码随机16字节长字符序列; 如果请求来自浏览器客户端,还必须包括Origin域 。...5 upgrade——engine.io切换传输之前,它测试,如果服务器客户端可以通过这个传输进行通信。...如果此测试成功,客户端发送升级数据包,请求服务器刷新其旧传输上缓存并切换到新传输。 6 noop——noop数据包。主要用于接收到传入WebSocket连接时强制轮询周期。 实例 ?

    2.4K30
    领券