gpt4 book ai didi

go - 什么时候在 golang 中使用劫持?

转载 作者:IT老高 更新时间:2023-10-28 13:05:40 33 4
gpt4 key购买 nike

我不明白我们为什么要使用劫持,因为我可以直接在响应正文中写一些东西,有人可以解释一下吗?

func writeSome(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "write some thing")
}

同理:

func hijack(w http.ResponseWriter, r *http.Request) {
hj, _ := w.(http.Hijacker)
_, buf, _ := hj.Hijack()
buf.WriteString("write some thing")
buf.Flush()
}

我很困惑

最佳答案

当您不想使用内置服务器的 HTTP 协议(protocol)实现时,请使用 Hijack。这可能是因为您想切换协议(protocol)(例如切换到 WebSocket)或内置服务器妨碍了您。

上面的两个代码片段不会在网络上创建相同的输出。第一个片段的输出将包含一个响应 header :

HTTP/1.1 200 OK
Date: Wed, 26 Nov 2014 03:37:57 GMT
Content-Length: 16
Content-Type: text/plain; charset=utf-8

write some thing

第二个片段绕过内置的服务器代码并写入

write some thing

直接输出。

关于go - 什么时候在 golang 中使用劫持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27075478/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com