问题标签 [go-http]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
http - 使用 http 劫持者有什么好处
Go http pkg 提供了一个Hijacker接口,谁能告诉我什么时候应该使用它。
我检查了评论,在劫持调用让调用者接管连接之后,HTTP 服务器库不会对连接做任何其他事情。
我理解它,因为它用于在一个端口内同时支持 http 请求和通用 tcp 交互。这样对吗?有没有其他好处。
go - 什么时候在 golang 中使用劫持?
我不明白为什么我们使用劫持,因为我可以直接在响应正文中写一些东西,有人可以解释一下吗?
与此相同:
我很困惑
http - Golang - 劫持参数
将Hijack()与http.ResponseWriter
实例一起使用时
Hijack() (net.Conn, *bufio.ReadWriter, 错误)
net.Conn
从 the和 the读取有什么区别*bufio.ReadWriter
?
go - net.Listen 和 http.ListenAndServe 功能的区别
我是 Go 和网络的新手。我知道 net.Listen 和 http.ListenAndServe 都创建了一个服务器。但是它们的功能有什么区别呢?
http - 在同时请求时拨打 tcp I/O 超时
我正在用 Go 构建一个工具,它需要向许多不同的服务器同时发出大量 HTTP 请求。我在 Python 中的初始原型可以同时处理数百个请求。
但是,我发现在 Go 中Get http://www.google.com: dial tcp 216.58.205.228:80: i/o timeout
,如果同时请求的数量超过 ~ 30-40,这几乎总是会导致 a for some 。
我已经在 macOS、openSUSE、不同的硬件、不同的网络和不同的域列表上进行了测试,并且按照其他 Stackoverflow 答案中的描述更改 DNS 服务器也不起作用。
有趣的是,失败的请求甚至不会产生数据包,这在使用 Wireshark 进行检查时可以看出。
有什么我做错了还是 Go 中的错误?
最低可重现程序如下:
Two particular error messages are happening, a net.DNSError
that does not make any sense and a non-descript poll.TimeoutError
:
Update:
Running the requests with a seperate http.Client
as well as http.Transport
and net.Dialer
does not make any difference as can be seen when running code from this playground.
go - “http.FileServer(http.Dir...))”不能在单独的包中工作
目录树:
这有效:
但这会返回404 page not found
:
main.go:
应用程序.go:
终端打印STARTHTTP - CHECK 01
,因此StartHttp()
调用了该函数,并且终端要求允许传入网络连接,因此 http 服务器似乎正在侦听该端口。
是否有某种类型的上下文没有传递给另一个包?
go - web.Request 结构的字段状态未在 Golang 中正确克隆
在尝试设置两种不同web.Request
的状态以在某些测试用例中使用时,一种没有任何标题,另一种有,我遇到了问题:
设置
我创建fakeRequest
,fakeRequestNoHeaders
因此:
理智测试
我当然希望如此fakeRequest.Header != fakeRequestNoHeaders.Header
。我写了那个测试:
测试结果
它失败。
为什么会这样,我怎样才能实现我正在尝试的目标?
更新:我找到了罪魁祸首:
http.Request
由返回的基础httptest.NewRequest
实际上是一个指针。Header
简直就是属于那个Request
。现在问题归结为“如何深度复制那个Request
”。
go - 如何通过 Go 的 MaxBytesReader 确定我是否已达到大小限制
我是 Go 新手,使用 Mux 接受 HTTP POST 数据。我想使用MaxBytesReader来确保客户端不会压倒我的服务器。根据代码,有一个requestBodyLimit
布尔值指示是否已达到该限制。
我的问题是:使用 MaxBytesReader 时,如何确定在处理请求时我是否实际达到了最大值?
这是我的代码:
我怎样才能:
确定我已达到最大 POST 限制(或有权访问
requestBodyLimit
我的代码是否能够在这种情况下分支?