為深入研究 HTTP 協議,本文實作一個互動式 HTTP 模擬器,支援手工輸入請求頭/實體、集中發送(避免伺服器提前斷開)、回應頭與實體分段顯示(避免二進制資源亂碼)、循環多次請求。完整原始碼與執行截圖均已提供。
while(true) 包裹單次請求/回應流程。host:port,輸入 q 退出。Socket,設 10 秒連接/讀取逾時,寫入請求並 flush()。Y/N 決定是否顯示實體;HEAD 方法自動跳過實體顯示;最後關閉 Socket。BufferedReader 處理控制台與 Socket 字元流。\r\n 為邊界,標記 b 區分頭尾空行。connect(),防止伺服器在輸入過程中逾時斷開。java http.HttpSimulator
host:port> www.csdn.net
請輸入HTTP請求:
GET / HTTP/1.1
Host: www.csdn.net
是否顯示HTTP的內容(Y/N): Y
主控台依序顯示狀態行、回應頭、HTML 內容。
此模擬器是學習 HTTP 協議、除錯伺服器行為、測試特殊頭字段的利器,後續文章將持續用於示範各類 HTTP 交互場景。