HTTP系列 -- 請求與響應

概述

  1. Server(服務器):服務器作爲硬件來說,通常是指那些具有較高計算能力,能夠提供給多個用戶使用的計算機

  2. Client(客戶端):是指與服務器相對應,爲客戶提供本地服務的程序

瀏覽器 + 服務器 + HTTP 三者關係

  • 瀏覽器負責發起請求
  • 服務器在80端口接收請求
  • 服務器負責返回內容(響應)
  • 瀏覽器負責下載響應內容

HTTP 的作用就是指導瀏覽器和服務器如何進行溝通。

請求

請求頭(Request Headers)格式

1
2
3
4
1.請求類型 路徑 協議/版本 // 請求行
2.key: value // 請求頭
3.
4.要上傳的數據 // 其他消息體

請求類型

  1. GET ==> 用於獲取數據。

  2. POST ==> 用於提交數據,請求服務器進行處理。

  3. PUT ==> 向指定資源位置上傳其最新內容(所有內容都更新)。

  4. PATCH ==> 用於將局部修改應用到資源。

  5. DELETE ==> 請求服務器刪除Request-URI所標識的資源。

  6. HEAD ==> 向服務器發出指定資源的請求,但服務器將不傳回資源的本文部分。

  7. OPTIONS ==> 使服務器傳回該資源所支持的所有HTTP請求方法,向Web服務器發送OPTIONS請求,可以測試服務器功能是否正常運作。

路徑

必須以 / 開頭,如果不設置,默認爲 / ,路徑包括查詢參數,但是不包括錨點

版本:

版本大部分都是 HTTP/1.1,還有HTTP/2.

請求頭(key: value):

請求頭定義一些操作參數。其中

1
2
3
4
5
Host: www.baidu.com  // 域名
User-Agent: // 用的什麼軟件發起的請求
Content-Type: application/x-www-form-urlcoded //標識了第4部分的格式,POST 請求
Content-Length:
Cookie:

第3部分:

是一個空行(回車)。

第4部分:

上傳的數據,可以沒有

說明

  • https 協議 ==> 所有數據在網絡上請求和傳輸的時候都是加密的
  • http 協議 ==> 所有數據在網絡上請求和傳輸的時候都是明文的

響應

響應頭(Response Headers)格式

1
2
3
4
1.協議/版本 狀態碼 狀態解釋
2.key: value
3.
4.要下載的數據

狀態碼:

表示網頁服務器超文本傳輸協議響應狀態的3位數字代碼。

  • 2xx成功 ==> 代表請求已成功被服務器接收、理解、並接受。

    1
    2
    a.200 OK 請求已成功,請求所希望的響應頭或數據體將隨此響應返回(GET)。
    b.204 No Content 服務器成功處理了請求,沒有返回任何內容(創建成功 ==> POST)。
  • 3xx重定向 ==> 類狀態碼代表需要客戶端採取進一步的操作才能完成請求。

    1
    2
    3
    a.301 Move Permanently 被請求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本響應返回的若干個URI之一。
    b.302 Found 要求客戶端執行臨時重定向。
    c.304 Not Modified 表示資源未被修改。在這種情況下,由於客戶端仍然具有以前下載的副本,因此不需要重新傳輸資源。
  • 4xx客戶端錯誤 ==> 這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了服務器的處理。

    1
    2
    a.403 Forbidden 客戶端錯誤,服務器已經理解請求,但是拒絕執行  它。
    b.404 Not Found 請求失敗,請求所希望得到的資源未被在服務器上發 現,但允許用戶的後續請求。
  • 5xx服務器錯誤 ==> 表示服務器無法完成明顯有效的請求。

    1
    2
    a.500 Internal Server Error 通用錯誤消息,服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。
    b.502 Bad Gateway 作爲網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。

HTML 與 HTTP

所有 App 都會內置一個瀏覽器(WebView)用來展示 HTML,而 HTML 都是通過 HTTP 下載的,而如果你要使用 HTTP 一般都會用到 URL。



© CZBBhkrx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章