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
這時會顯示空白的指令行,按下【ctrl+]】
回車進入編輯狀态,此時又回到空白狀态,輸入http請求
輸入兩個回車,即兩個\r\n即可得到結果