天天看點

5分鐘快速梳理你的HTTP體系

5分鐘快速梳理你的HTTP體系

HTTP 定義

  1. HTTP(超文本傳輸協定) 是 用戶端 與 服務端 之間資訊交流的 橋梁。
  2. 在資訊交流之前必須要做的就是 用戶端通過連接配接TCP/IP協定 80 端口 ,以便 服務端偵聽HTTP請求。

    3.HTTP 是 一種通用的 , 無狀态的應用層協定,基于标準客戶機/伺服器模型。

HTTP 特點

1.采用 “請求/響應”的互動模式, 用戶端發送請求,服務端接受請求,處理請求,并将處理結果傳回給用戶端。服務端不會主動發送請求。<br/>

2.協定設計靈活,拓展性好,HTTP可以通過擴充新的請求方法實作新的功能。<br/>

3.無狀态: 協定對于事務處理沒有存儲功能,意思就是如果上次響應的結果在該請求中需要用,那麼是用不了的。<br/><br/>

缺點:<br/>每次連接配接的數量增大。<br/><br/>
優點:<br/>1.伺服器處理速度快,效率高<br/>
     2.避免0了叢集特點間狀态同步的開銷。<br/><br/>           

4.持久連接配接: 連接配接可以重複使用,提高了網絡連接配接使用效率。 持久連接配接 在HTTP1.1中已 經是預設選項。

5.支援内容協商

HTTP 請求/響應互動模型

5分鐘快速梳理你的HTTP體系

HTTP 常用請求方法

  • GET 方法

    1.GET 方法 是 用戶端 向服務端 擷取資源時使用的,資源類型有圖檔,音頻,HTML.....<br/>

    2.伺服器在處理GET請求時,它會根據用戶端發送過來的url上具體參數進行傳回結果處理。<br/>

    3.當用GET請求擷取資料量較大時,可能會出現傳輸過程中斷情況,HTTP協定提供了斷點續傳機制,通過GET 方法擷取資源時可以指定擷取的起始點。<br/>

  • POST 方法

    1.POST 方法主要是 用戶端向服務端發送資料資源。<br/><br/>

    2.POST 和 GET 方法差別:

    POST 請求會包含資訊體,資訊體中攜帶了要發送給服務端的資料。           
  • HEAD 方法

    1. HEAD 方法 和 GET 方法 POST方法類似<br/>
    1. 差別在于:<br/>

      GET方法傳回的請求URL辨別資源内容本身<br/>

      HEAD方法僅僅傳回相關響應頭資訊,不傳回資源内容<br/><br/>

3.HEAD 方法 主要用于 測試資源是否存在,是否被删除或修改

  • PUT 方法

    PUT方法用請求有效載荷替換目标資源的所有目前表示。
  • DELETE

    DELETE方法删除指定的資源。

HTTP URI

  • URI

    1.定義
    URI,通一資源标志符(Uniform Resource Identifier, URI),表示的是web上每一種可用的資源,如 HTML文檔、圖像、視訊片段、程式等都由一個URI進行定位的。               

    2.URI的結構組成:

    ①通路資源的命名機制;

    ②存放資源的主機名;

    ③資源自身的名稱。

    3.執行個體

    https://xxx.xxx.com/details/1

    ①這是一個可以通過https協定通路的資源,

    ②位于主機 xxx.xxx.com上,

    ③通過“/details/1”可以對該資源進行唯一辨別(注意,這個不一定是完整的路徑)

  • URI 構成

    • URL 統一資源定位符
    • 統一資源名稱
  • URL

    URL是URI的一個子集。它是Uniform Resource Locator的縮寫,譯為“統一資源定位 符”。
    
               

    2.URL的一般格式為(帶方括号[]的為可選項):

    protocol :// hostname[:port] / path / ;parameters#fragment

    3.URL的格式由三部分組成:

    ①第一部分是協定(或稱為服務方式)。

    ②第二部分是存有該資源的主機IP位址(有時也包括端口号)。

    ③第三部分是主機資源的具體位址,如目錄和檔案名等。

    第一部分和第二部分用“://”符号隔開,

    第二部分和第三部分用“/”符号隔開。

    第一部分和第二部分是不可缺少的,第三部分有時可以省略。

URL 和 URI 差別

URI:統一資源标志符(Uniform Resource Identifier)

URL:統一資源定位符(uniform resource location)

說白了,URI與URL都是定位資源位置的,就是表示這個資源的位置資訊,就像經緯度一樣可以表示你在世界的哪個角落。URI是一種寬泛的含義更廣的定義,而URL則是URI的一個子集,就是說URL是URI的一部分。
  換句話說,每個URL都是URI,但是不是每個URI都是URL的。

           

HTTP 發送請求

5分鐘快速梳理你的HTTP體系

HTTP 響應請求

5分鐘快速梳理你的HTTP體系

HTTP 狀态碼

100

Continue

繼續。用戶端應繼續其請求

101

Switching Protocols

切換協定。伺服器根據用戶端的請求切換協定。隻能切換到更進階的協定,例如,切換到HTTP的新版本協定

200

OK

請求成功。一般用于GET與POST請求

201

Created

已建立。成功請求并建立了新的資源

202

Accepted

已接受。已經接受請求,但未處理完成

203

Non-Authoritative Information

非授權資訊。請求成功。但傳回的meta資訊不在原始的伺服器,而是一個副本

204

No Content

無内容。伺服器成功處理,但未傳回内容。在未更新網頁的情況下,可確定浏覽器繼續顯示目前文檔

205

Reset Content

重置内容。伺服器處理成功,使用者終端(例如:浏覽器)應重置文檔視圖。可通過此傳回碼清除浏覽器的表單域

206

Partial Content

部分内容。伺服器成功處理了部分GET請求

300

Multiple Choices

多種選擇。請求的資源可包括多個位置,相應可傳回一個資源特征與位址的清單用于使用者終端(例如:浏覽器)選擇

301

Moved Permanently

永久移動。請求的資源已被永久的移動到新URI,傳回資訊會包括新的URI,浏覽器會自動定向到新URI。今後任何新的請求都應使用新的URI代替

302

Found

臨時移動。與301類似。但資源隻是臨時被移動。用戶端應繼續使用原有URI

303

See Other

檢視其它位址。與301類似。使用GET和POST請求檢視

304

Not Modified

未修改。所請求的資源未修改,伺服器傳回此狀态碼時,不會傳回任何資源。用戶端通常會緩存通路過的資源,通過提供一個頭資訊指出用戶端希望隻傳回在指定日期之後修改的資源

305

Use Proxy

使用代理。所請求的資源必須通過代理通路

306

Unused

已經被廢棄的HTTP狀态碼

307

Temporary Redirect

臨時重定向。與302類似。使用GET請求重定向

400

Bad Request

用戶端請求的文法錯誤,伺服器無法了解

401

Unauthorized

請求要求使用者的身份認證

402

Payment Required

保留,将來使用

403

Forbidden

伺服器了解請求用戶端的請求,但是拒絕執行此請求

404

Not Found

伺服器無法根據用戶端的請求找到資源(網頁)。通過此代碼,網站設計人員可設定"您所請求的資源無法找到"的個性頁面

405

Method Not Allowed

用戶端請求中的方法被禁止

406

Not Acceptable

伺服器無法根據用戶端請求的内容特性完成請求

407

Proxy Authentication Required

請求要求代理的身份認證,與401類似,但請求者應當使用代理進行授權

408

Request Time-out

伺服器等待用戶端發送的請求時間過長,逾時

409

Conflict

伺服器完成用戶端的 PUT 請求時可能傳回此代碼,伺服器處理請求時發生了沖突

410

Gone

用戶端請求的資源已經不存在。410不同于404,如果資源以前有現在被永久删除了可使用410代碼,網站設計人員可通過301代碼指定資

源的新位置

411

Length Required

伺服器無法處理用戶端發送的不帶Content-Length的請求資訊

412

Precondition Failed

用戶端請求資訊的先決條件錯誤

413

Request Entity Too Large

由于請求的實體過大,伺服器無法處理,是以拒絕請求。為防止用戶端的連續請求,伺服器可能會關閉連接配接。如果隻是伺服器暫時無法處理,則會包含一個Retry-After的響應資訊

414

Request-URI Too Large

請求的URI過長(URI通常為網址),伺服器無法處理

415

Unsupported Media Type

伺服器無法處理請求附帶的媒體格式

416

Requested range not satisfiable

用戶端請求的範圍無效

417

Expectation Failed

伺服器無法滿足Expect的請求頭資訊

422

表明由于所提供的的作為請求部分的資料非法,建立或修改操作不能被完成

429

TooManyRequests

表明超出了用戶端通路頻率的限制或者服務端接收到多于它能處理的請求。建議用戶端讀取相應的Retry-After 首部,然後等待該首部指出的時間後重試。

500

Internal Server Error

伺服器内部錯誤,無法完成請求

501

Not Implemented

伺服器不支援請求的功能,無法完成請求

502

Bad Gateway

作為網關或者代理工作的伺服器嘗試執行請求時,從遠端伺服器接收到了一個無效的響應

503

Service Unavailable

由于超載或系統維護,伺服器暫時的無法處理用戶端的請求。延時的長度可包含在伺服器的Retry-After頭資訊中

504

Gateway Time-out

充當網關或代理的伺服器,未及時從遠端伺服器擷取請求

505

HTTP Version not supported

伺服器不支援請求的HTTP協定的版本

HTTP 狀态碼分類

1** ------------------------------------> 資訊,伺服器收到請求,需要請求者繼續執行

2** ------------------------------------> 成功,操作被成功接收并處理

3** ------------------------------------> 重定向,需要進一步的操作以完成請求

4** ------------------------------------> 用戶端錯誤,請求包含文法錯誤或無法完成請求

5** ------------------------------------> 伺服器錯誤,伺服器在處理請求的過程中發生了錯誤

彩蛋環節

5分鐘快速梳理你的HTTP體系

結語

❤️關注+點贊+收藏+評論+轉發❤️,原創不易,鼓勵筆者創作更好的文章