HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。點擊這裏瞭解 http 1.0 vs 2.0 區別。
特點
-
簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
-
靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
-
無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
-
無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
-
支持B/S及C/S模式。
請求消息Request
-
請求行,用來說明請求類型,要訪問的資源以及所使用的HTTP版本.
-
請求頭部,緊接着請求行(即第一行)之後的部分,用來說明服務器要使用的附加信息從第二行起爲請求頭部,HOST將指出請求的目的地.User-Agent,服務器端和客戶端腳本都能訪問它,它是瀏覽器類型檢測邏輯的重要基礎.該信息由你的瀏覽器來定義,並且在每個請求中自動發送等等
-
空行,請求頭部後面的空行是必須的
-
請求數據也叫主體,可以添加任意的其他數據。
響應消息Response
-
狀態行,由HTTP協議版本號, 狀態碼, 狀態消息 三部分組成。
-
消息報頭,用來說明客戶端要使用的一些附加信息
-
空行,消息報頭後面的空行是必須的
-
響應正文,服務器返回給客戶端的文本信息。
狀態碼
200 OK //客戶端請求成功
301 Moved Permanently //永久重定向,使用域名跳轉
302 Found // 臨時重定向,未登陸的用戶訪問用戶中心重定向到登錄頁面
400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden //服務器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後可能恢復正常
http的方法
-
get:客戶端向服務端發起請求,獲得資源。請求獲得URL處所在的資源。
-
post:向服務端提交新的請求字段。請求URL的資源後添加新的數據。
-
head:請求獲取URL資源的響應報告,即獲得URL資源的頭部
-
patch:請求局部修改URL所在資源的數據項
-
put:請求修改URL所在資源的數據元素。
-
delete:請求刪除url資源的數據