http - 使用 http 劫持者有什么好处

标签 http go go-http

Go http pkg 提供一个Hijacker接口(interface),任何人都可以告诉我什么时候应该使用它。

我查看评论,在 Hijack 调用让调用者接管连接后,HTTP 服务器库将不会对该连接执行任何其他操作。

我理解它是用来在一个端口内同时支持http请求和普通tcp交互的。这样对吗?它还有其他好处吗?

最佳答案

这意味着你接管了TCP连接的控制权。 TCP 是通用传输协议(protocol),而 HTTP 是 TCP 之上的应用协议(protocol)。 OSI seven layer model将 TCP 描述为第 4 层,将 HTTP 描述为第 7 层。

如果您需要实现不同的应用程序协议(protocol),这是劫持的一个用例。

或者如果您需要做一些专门针对 HTTP 的事情,比如防止保持事件连接,那是另一个用例。

Google 的 SPDY 是替代 Web 应用程序协议(protocol)的示例。 .这也是您劫持现有 HTTP 连接而不是直接创建 TCP 连接的一个很好的理由。对于 SPDY,浏览器首先会发出一个包含“接受” header 的 HTTP 请求,表明它也能够理解 SPDY。所以现在您可以劫持连接并实现 SPDY 而不是 HTTP。

关于http - 使用 http 劫持者有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334265/

相关文章:

class - 方法未定义(类型没有方法)

go - "http.FileServer(http.Dir...))"不能在单独的包中工作

go - 传入请求:具有自定义类型字段的上下文

java - 如何解析从表单到 REST Java/Jersey Web 服务的发布请求

api - 如何设计仅进行数据转换的 REST 调用?

json - 从 map 结构保存读取/写入/保存到 json

go - 如何在 Go 中编译程序

go - 使用 HTTP GET 请求调用 tcp i/o 超时

ios - 亚马逊 MWS 产品 API 返回 401 错误 "Access denied"

c# - HttpWebRequest 和 Tomcat