1 回答

TA貢獻1830條經驗 獲得超3個贊
只是在這里添加一些信息.. 那不是您正在編寫的簡單服務器。您正在嘗試編寫一個沒有net/http包的 HTTP 服務器。這是不平凡的。也許你想要一個回聲服務器?
您的瀏覽器需要格式正確的 HTTP 響應。這意味著您不能只是向連接寫入一個隨機字符串并期望它知道如何處理它。這是HTTP 協議描述的維基百科(我不打算在 SO 答案中描述整個協議)。
如果你只想要一個應該有效的簡單答案:
HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8;
Content-Length: LENGTH OF BODY HERE
BODY
請注意,標頭由 分隔,\r\n最后一個標頭后跟兩個:\r\n\r\n。
所以這:
conn.Write([]byte("HTTP/1.1 200 OK\r\n"))
conn.Write([]byte("Content-Type: text/plain; charset=UTF-8\r\n"))
newmessage := "Hello World!"
conn.Write([]byte("Content-Length: " + strconv.Itoa(len(newmessage)) + "\r\n\r\n"))
conn.Write([]byte(newmessage + "\n"))
另外,我想因為這是一個協議問題,我還可以讓您知道典型的 HTTP 端口是 80,而替代/測試端口是 8080。我猜只是為您的知識添加了一些約定。
- 1 回答
- 0 關注
- 176 瀏覽
添加回答
舉報