
HTTP 定義
- HTTP(超文本傳輸協定) 是 用戶端 與 服務端 之間資訊交流的 橋梁。
在資訊交流之前必須要做的就是 用戶端通過連接配接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 請求/響應互動模型
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 方法
-
- HEAD 方法 和 GET 方法 POST方法類似<br/>
-
差別在于:<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 發送請求
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** ------------------------------------> 伺服器錯誤,伺服器在處理請求的過程中發生了錯誤
彩蛋環節
結語
❤️關注+點贊+收藏+評論+轉發❤️,原創不易,鼓勵筆者創作更好的文章