天天看點

使用telnet模拟http請求

HTTP

首先我們需要知道http封包是由一系列的字元串組成的。然後我們來了解具體的相關事項。

方法

HTTP支援幾種不同形式的請求指令,這些指令就被稱為HTTP方法。每個HTTP請求封包都包含一個方法,這個方法決定了服務區将會執行的動作。

HTTP方法如下:

GET 從服務區向用戶端發送命名資源

PUT 将來自用戶端的資料存儲到一個命名的伺服器資源中

DELETE 從服務區中删除命名資源

POST 将用戶端資料發送到一個服務區網關應用程式

HEAD 僅發送命名資源響應中的HTTP首部

狀态碼

每條HTTP響應封包傳回時都會攜帶一個狀态碼。狀态碼是一個三位數字的代碼,每條代碼一般代表了一個具體的狀态。除了狀态碼,HTTP還會發送一條解釋性的原因短國文本。

如:404

需要注意的是所有的處理過程使用的都是數字碼,是以說哪怕傳回的是404 xxxx也是可以的。

封包

HTTP封包都是純文字。所有對HTTP封包都可以很友善的進行讀寫。

例:Get  /index.htm HTTP/1.0

   Accept:text/html

   Host: www.baidu.com

   Accept-Language:en

例:HTTP/1.0 200OK

   Content-type:text/plain

   Content-length:19

   TEST!

HTTP封包包括三個部分

起始行:封包的第一行就是起始行,在請求封包中用來說明要做些什麼,在響應封包中說明出現了什麼情況。

首部字段:起始行後的内容被稱為首部字段,每個字段都包含一個屬性和對應的值,為了便于解析,兩者之間使用冒号【:】來分隔。首部以一個空行結束

主體:在首部字段的空行後就是可選的封包主體了,其中包含了所有類型的資料,請求主體中包括了要發送給伺服器的資料,響應主體中則包含了需要傳回給用戶端的資料。起始行和資料字段都是文本形式且都是結構化的,而主體則不同,主體中可以包含任意類型的資料。

在windows下使用telnet www.baidu.com 80

使用telnet模拟http請求

這時會顯示空白的指令行,按下【ctrl+]】

使用telnet模拟http請求

回車進入編輯狀态,此時又回到空白狀态,輸入http請求

使用telnet模拟http請求

輸入兩個回車,即兩個\r\n即可得到結果

使用telnet模拟http請求