HTTP協議相關知識點
阿新 • • 發佈:2017-09-19
es2017 類型 ati mage 服務器 客戶 提示信息 得到 而且
主要參考 http://www.imooc.com/article/14397,來源:慕課網,作者種子_fe
HTTP是超文本傳輸協議,主要特點有:
- 支持客戶、服務器模式
- 簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑,而且HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快;
- 靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記;
- 無連接:每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。節省了傳輸時間;
- 無狀態:HTTP是無狀態協議,對於事務處理沒有記憶能力,缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳。
http請求:requset消息的結構
三部分:請求行,請求頭,請求體
- request line包括請求方法Method(GET/POST)、請求資源的路徑path to resource(對應後端路由部分定義的路徑)、http協議的版本號。
- request header請求頭
- request body請求體,當使用GET方法發送請求的時候,請求體是空的
http響應:response消息的結構
三部分:響應行,響應頭,響應體
- response line包括http協議版本號,響應狀態碼和響應狀態消息
- request header響應頭
- 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協議相關知識點