以前寫代碼,說什麼設置消息頭啊之類的,一直搞不懂爲何要這樣作,原來是和HTTP消息有關。瀏覽器和服務器的數據傳輸過程是瀏覽器向服務器發送一個請求,而後服務器回送一個響應。html
HTTP請求:客戶端鏈接上服務器後,向服務器請求某個web資源,稱之爲客戶端向服務器發送了一個HTTP請求。而這些HTTP請求中包含的是 一個請求行、若干個請求頭和請求體。請求頭和請求體之間要用空行隔開;web
請求行中包含了:HTTP的請求方式、請求資源名稱、HTTP版本。瀏覽器
例如:POST/ post.html HTTP/ 1.1服務器
請求行格式:請求方式 資源路徑 協議/版本post
請求方式中有包含了:POST(請求查詢,請求數據附加在URL以後,以?號分割,多個數據用&鏈接,沒有請求體);spa
GET(向服務器提交數據);htm
DELETE(刪除數據);blog
PUT(更新數據)。資源
請求頭:用於描述客戶端請求哪臺主機,以及客戶端的環境信息等。請求頭以鍵值對(key=value)的方式傳遞數據。請求
請求體:瀏覽器在POST請求中,向服務器傳遞的參數。每一個數據都是鍵值對的形式,以&鏈接多個值
HTTP響應:表明服務器向客戶端會送的數據,包含一個響應行,若干個響應頭以及響應體,頭和體同樣要用空行隔開。
響應行:包含HTTP協議的版本和描述服務器對請求的處理結果。
例如:HTTP/ 1.1 200 OK
格式:協議/版本 狀態碼 狀態碼描述
狀態碼:200(請求成功);
302(請求重定向);
404(請求資源不存在);
500(服務器內部發生錯誤)。
響應頭:用於描述服務器的基本信息,以及數據的描述,經過這些數據的描述信息,能夠通知客戶端這樣處理這些信息。
響應體:表明服務器向客戶端瀏覽器回送的正文。若響應頭中Content-Type爲 text/html,那麼響應體中就是一個HTML,瀏覽器解析以後顯示。