第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

關(guān)于http劫持和keep-alive

關(guān)于http劫持和keep-alive

Go
慕桂英3389331 2021-06-28 13:11:46
我用resp, err := http.Get("http://example.com/")得到一個(gè) http.Response,我想準(zhǔn)確地寫入一個(gè) http 處理程序,但只有 http.ResponseWriter,所以我劫持了它。...webConn, webBuf, err := hj.Hijack()if err != nil {    // handle error}defer webConn.Close()// Write respresp.Write(webBuf)...寫原始請(qǐng)求但是當(dāng)我劫持時(shí),http 連接不能重用(保持活動(dòng)),所以它很慢。怎么解決?謝謝!對(duì)不起,我的游泳池英語。update 12/9keep-alive,保持兩個(gè)tcp連接,可以復(fù)用。但是當(dāng)我劫持和 conn.Close() 時(shí),它不能重用舊連接,因此每次刷新時(shí)它都會(huì)創(chuàng)建一個(gè)新的 tcp 連接。
查看完整描述

2 回答

?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

不要使用劫持,因?yàn)橐坏┙俪郑琀TTP服務(wù)器庫不會(huì)對(duì)連接做任何其他事情,所以不能重用。


我改變方式,復(fù)制Header和Body,看起來像反向代理(http://golang.org/src/pkg/net/http/httputil/reverseproxy.go),是有效的。


例子:


func copyHeader(dst, src http.Header) {

    for k, w := range src {

        for _, v := range w {

            dst.Add(k, v)

        }

    }

}


func copyResponse(r *http.Response, w http.ResponseWriter) {

    copyHeader(w.Header(), r.Header)

    w.WriteHeader(r.StatusCode)

    io.Copy(w, r.Body)

}


func handler(w http.ResponseWriter, r *http.Response) {

    resp, err := http.Get("http://www.example.com")

    if err != nil {

        // handle error

    }

    copyResponse(resp, w)

}


查看完整回答
反對(duì) 回復(fù) 2021-07-12
  • 2 回答
  • 0 關(guān)注
  • 209 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)