概述
-
Server(服務器):服務器作爲硬件來說,通常是指那些具有較高計算能力,能夠提供給多個用戶使用的計算機
-
Client(客戶端):是指與服務器相對應,爲客戶提供本地服務的程序
瀏覽器 + 服務器 + HTTP 三者關係
- 瀏覽器負責發起請求
- 服務器在80端口接收請求
- 服務器負責返回內容(響應)
- 瀏覽器負責下載響應內容
HTTP 的作用就是指導瀏覽器和服務器如何進行溝通。
請求
請求頭(Request Headers)格式
1 |
1.請求類型 路徑 協議/版本 // 請求行 |
請求類型
-
GET ==> 用於獲取數據。
-
POST ==> 用於提交數據,請求服務器進行處理。
-
PUT ==> 向指定資源位置上傳其最新內容(所有內容都更新)。
-
PATCH ==> 用於將局部修改應用到資源。
-
DELETE ==> 請求服務器刪除Request-URI所標識的資源。
-
HEAD ==> 向服務器發出指定資源的請求,但服務器將不傳回資源的本文部分。
-
OPTIONS ==> 使服務器傳回該資源所支持的所有HTTP請求方法,向Web服務器發送OPTIONS請求,可以測試服務器功能是否正常運作。
路徑
必須以 /
開頭,如果不設置,默認爲 /
,路徑包括查詢參數,但是不包括錨點
版本:
版本大部分都是 HTTP/1.1
,還有HTTP/2
.
請求頭(key: value):
請求頭定義一些操作參數。其中
1 |
Host: www.baidu.com // 域名 |
第3部分:
是一個空行(回車)。
第4部分:
上傳的數據,可以沒有
說明
- https 協議 ==> 所有數據在網絡上請求和傳輸的時候都是加密的
- http 協議 ==> 所有數據在網絡上請求和傳輸的時候都是明文的
響應
響應頭(Response Headers)格式
1 |
1.協議/版本 狀態碼 狀態解釋 |
狀態碼:
表示網頁服務器超文本傳輸協議響應狀態的3位數字代碼。
-
2xx成功 ==> 代表請求已成功被服務器接收、理解、並接受。
1
2a.200 OK 請求已成功,請求所希望的響應頭或數據體將隨此響應返回(GET)。
b.204 No Content 服務器成功處理了請求,沒有返回任何內容(創建成功 ==> POST)。 -
3xx重定向 ==> 類狀態碼代表需要客戶端採取進一步的操作才能完成請求。
1
2
3a.301 Move Permanently 被請求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本響應返回的若干個URI之一。
b.302 Found 要求客戶端執行臨時重定向。
c.304 Not Modified 表示資源未被修改。在這種情況下,由於客戶端仍然具有以前下載的副本,因此不需要重新傳輸資源。 -
4xx客戶端錯誤 ==> 這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了服務器的處理。
1
2a.403 Forbidden 客戶端錯誤,服務器已經理解請求,但是拒絕執行 它。
b.404 Not Found 請求失敗,請求所希望得到的資源未被在服務器上發 現,但允許用戶的後續請求。 -
5xx服務器錯誤 ==> 表示服務器無法完成明顯有效的請求。
1
2a.500 Internal Server Error 通用錯誤消息,服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。
b.502 Bad Gateway 作爲網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。
HTML 與 HTTP
所有 App 都會內置一個瀏覽器(WebView)用來展示 HTML,而 HTML 都是通過 HTTP 下載的,而如果你要使用 HTTP 一般都會用到 URL。