使用Telnet協(xié)議探究HTTP事務

寫在前面

我們在絕大部分使用HTTP服務的場景中,都是利用瀏覽器或者請求發(fā)送工具(Postman)來構造HTTP請求報文,并由這些工具接收響應報文,最終根據(jù)一定規(guī)則渲染報文的效果(二進制流、文件、圖片、或普通web界面)。那么HTTP協(xié)議到底是怎么工作的呢?或者說一次HTTP的請求事務過程是怎樣的呢?下面我們利用【telnet】命令來探究HTTP事務的執(zhí)行過程。

Telnet與HTTP

由于HTTP使用了TCP/IP 傳輸協(xié)議,而且它是基于文本的,沒有使用那些難以理解的二進制格式,因此很容易直接與Web服務器進行對話。Telnet程序可以將(本地)鍵盤連接到某個目標(遠端或本地)TCP端口,并將此TCP端口的輸出回送到顯示屏(本地)上。Telnet常用于遠程終端會話,但它幾乎可以連接所有的TCP服務器,包括HTTP服務器??梢酝ㄟ^Telnet程序直接與Web服務器進行對話。通過Telnet可以打開一條到某臺機器上某個端口的TCP連接,然后直接向那個端口輸入一些字符(命令)。Web服務器會將Telnet程序作為一個Web客戶端來處理,所有回送給TCP連接的數(shù)據(jù)都會顯示在(本地)顯示屏上。
??我們用Telnet與一個實際的Web服務器進行交互。我們要用Telnet獲取URL www.itdecent.cn/index 所指向的文檔。下面我們來說明一下會發(fā)生什么情況:

  • 首先,查找 www.itdecent.cn 的IP地址,打開一條到那臺機器端口80的TCP連接。Telnet會為我們完成那些“跑腿兒”的工作。
  • 一旦打開了TCP連接,就要輸入HTTP請求了。
  • 請求結束(由一個空行表示)之后,服務器會在一條HTTP響應中將內(nèi)容回送并關閉連接。

Telnet模擬HTTP客戶端開啟HTTP事務

下面是使用Telnet的HTTP事務圖:

Telnet模擬HTTP客戶端開啟HTTP事務示意圖

??Telnet會查找主機名(使用DNS找到對應的IP地址)并打開一條連接,連接到在 www.itdecent.cn 的端口80 上監(jiān)聽的Web服務器。這條命令之后的三行內(nèi)容是Telnet的輸出,告訴我們它已經(jīng)建立了連接。
??然后我們輸入最基本的請求命令 GET /index HTTP/1.1,發(fā)送一個提供了遠端主機名的Host首部,后面跟上一個空行,請求從服務器 www.itdecent.cn 上獲取資源 /index。隨后,服務器會以一個響應行、幾個響應首部、一個空行和最后面的HTML文檔主體來應答。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容