我有一個簡單的 http/https 代理并嘗試處理此標頭。當我得到Get標頭時,嘗試將 tcp 套接字連接到該網站。但是這個有其他資料和Host不同Referer。我應該如何處理這個標題?
GET http://webcode.me/format.css HTTP/1.1
Host: webcode.meun, 23 Jan 2022 10:39:25 GMT??∟?Y_=?>∟>?????B?
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer: http://webcode.me/rom client: 282
這是我的代碼
func handleSocket(client_to_proxy net.Conn) {
buffer := make([]byte, 8*1024)
length, e := client_to_proxy.Read(buffer)
if e != nil {
fmt.Println("ERR1 ", e)
return
}
var host []string
headers := strings.Split(message, "\r\n")
for _, header := range headers {
if strings.HasPrefix(header, "Host") {
host = strings.Split(strings.Replace(header, " ", "", 1), ":")
break
}
}
splited := strings.Split(message, " ")
if splited[0] == "CONNECT" {
proxy_to_server, e := net.Dial("tcp", splited[1])
if e != nil {
fmt.Println("ERROR3 ", e)
return
}
fmt.Println("CONNECTed TO: " splited[1])
_, e = client_to_proxy.Write([]byte("HTTP/1.1 200 Connection Established\r\n"))
if e != nil {
fmt.Println("ERROR4 ", e)
return
}
read443(client_to_proxy, proxy_to_server)
} else if splited[0] == "GET" {
proxy_to_server, e := net.Dial("tcp", host[1] ":80")
if e != nil {
fmt.Println("ERROR5 ", e)
return
}
_, e = proxy_to_server.Write([]byte(message))
if e != nil {
fmt.Println("ERROR6 ", e)
return
}
write80(client_to_proxy, proxy_to_server)
}
}
uj5u.com熱心網友回復:
錯誤1)我使用AES/ECB加密資料,資料長度必須是密鑰長度的倍數。所以我添加了一些位元組來修復它并且在解密后沒有洗掉它。
錯誤 2) 我在 GET 之后使用 URL,現在在主機之后使用 URL。然后將所有收到的標頭發送到主機。
我在使用 https 連接某些主機時仍然遇到問題,但希望它們能盡快修復。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530865.html
標籤:http去代理人
下一篇:AWSCLI中缺少命令?
