1. 程式人生 > >HTTP協議相關知識點

HTTP協議相關知識點

es2017 類型 ati mage 服務器 客戶 提示信息 得到 而且

主要參考 http://www.imooc.com/article/14397,來源:慕課網,作者種子_fe

HTTP是超文本傳輸協議,主要特點有:

  • 支持客戶、服務器模式
  • 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑,而且HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快;
  • 靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記;
  • 無連接:每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。節省了傳輸時間;
  • 無狀態:HTTP是無狀態協議,對於事務處理沒有記憶能力,缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳。

http請求:requset消息的結構

技術分享

三部分:請求行,請求頭,請求體

  1. request line包括請求方法Method(GET/POST)、請求資源的路徑path to resource(對應後端路由部分定義的路徑)、http協議的版本號。
  2. request header請求頭
  3. request body請求體,當使用GET方法發送請求的時候,請求體是空的

http響應:response消息的結構

技術分享

三部分:響應行,響應頭,響應體

  1. response line包括http協議版本號,響應狀態碼和響應狀態消息
  2. request header響應頭
  3. response body相應體

HTTP響應狀態碼

HTTP/1.1中定義了5類狀態碼, 狀態碼由三位數字組成,第一個數字定義了響應的類別

1XX 提示信息類 - 表示請求已被成功接收,繼續處理

2XX 響應成功類 - 表示請求已被成功接收,理解,接受

3XX 重定向類 - 要完成請求必須進行更進一步的處理

4XX 客戶端錯誤類 - 請求有語法錯誤或請求無法實現

5XX 服務器端錯誤類 - 服務器未能實現合法的請求

狀態碼有很多,不過一開始只需要掌握一些比較常見的:

  • 200 ok: 最常見的就是成功響應狀態碼200了, 這表明該請求被成功地完成,所請求的資源發送回客戶端。上面打開項目主頁的實例中就是200
  • 304 not modified: 假如我們打開主頁後在瀏覽器中刷新,就會看到響應的狀態碼變成了304,這代表之前響應的html文檔已經被緩存了,服務器端相同的文檔沒有變化,可以繼續使用緩存的文檔,因此304響應沒有response body部分
  • 302 found: 重定向,新的URL會在response header中的Location中返回,瀏覽器將會自動使用新的URL發出新的Request,假如我們在登錄頁提交登錄表單發送一個POST請求進行登錄,就會得到一個302響應並且重定向到/index路徑下
  • 404 not found: 請求資源不存在(輸錯了URL,或者服務器端現在沒有這個頁面了)
  • 500 Internal Server Error: 服務器發生了不可預期的錯誤,這個一般在會在服務器的程序碼出錯時發生

HTTP協議相關知識點