HTTP 超文本傳輸協議

每次創建好一個 Web 項目,直接在瀏覽器輸入 http://localhost:8080 ;小程序和Android 也是通過 http://localhost:8080/ 訪問到後臺的方法。還記的計算機網絡課上的內容,Http屬於應用層,TCP(傳輸控制協議)、用戶數據報協議(UDP) 屬於傳輸層。

Http 超文本傳輸協議

      一種建立在 TCP 上的無狀態連接,用於客戶端和服務器之間的通信,規定了客戶端和服務器之間的通信格式,包括請求 ( request ) 與響應 ( response ) 的格式。【可通過瀏覽器 [F12] ,右鍵開發者工具,選擇 network 查看請求頭與響應頭 】

【工作流程】
      1、客戶端(瀏覽器)發送一個 HTTP 請求,2、服務端(網站後臺)收到請求開始處理,並將處理的結果返回給客戶端(瀏覽器),3、客戶端(瀏覽器)對結果進行處理並展示。
【請求方式】

  1. Web 瀏覽器請求:
    - 1-1. 用戶輸入地址後回車。
    - 1-2. 瀏覽器拼接 Http 報文併發送請求給服務器。
    - 1-3. 服務器處理請求後,發送響應報文給瀏覽器。
    - 1-4. 瀏覽器解析響應報文並使用渲染引擎顯示到界面。
  2. APP 客戶端請求:
    - 2-1. 用戶點擊按鈕等控件或者自動觸發網絡請求。
    - 2-2. Android 代碼調用拼裝 HTTP 報文併發送到服務器。
    - 2-3. 服務器處理請求後發送響應報文給手機。
    - 2-4. Android 代碼處理響應報文並作出相應的數據處理。
    【重點解釋】
  3. 客戶端:發送請求,獲取資源。
  4. 服務器:接收處理請求,提供資源響應。
  5. 報文。
    【報文】
          報文是在 HTTP 應用程序之間發送的數據塊,這些數據塊以一些文本的元信息(meta 標籤中的信息)開頭,描述了報文的內容和含義。由 3 部分組成,①起始行:對報文進行描述。②首部(header):屬性設置 。③主體。
  6. 請求報文。
    起始行:請求方法<method>、請求路徑<path>、HTTP版本<HTTP version>
      部:包含許多鍵值對,對響應數據的一些格式信息。
      體:
  7. 響應報文。
    起始行:HTTP版本<HTTP version>、狀態碼<status code>、原因短句<reason-phrase>
      部:包含許多鍵值對,對響應數據的一些格式信息。
      體:
    { 請求方法 }
    常用的是 Get 以及 POST 。還有 PUT 、DELETE、HEAD 等方法。
# GET	(冪等操作)
	Get-1. 報文中不發送主體,主在請求資源。
	Get-2. 通過 @Path 獲取參數。
# POST
	Post-1. 報文中的主體內容發送給服務器的內容,主在增加和修改。
	Post-2. 通過 @Field 獲取參數。
# PUT	(冪等操作)
	Put-1. 報文中的主體內容發送給服務器的內容,主在修改。
	Put-2. 通過 @Path 獲取參數。通過 @Field 獲取參數。
# DELETE	(冪等操作)
	Delete-1. 報文中不發送主體,主在刪除資源。
	Delete-2. 通過 @Path 獲取參數。
# HEAD
	Head-1. HEAD 與 GET 的使用相同,報文中沒有主體。
	Head-2. 主在用於下載需求,返回的 Headers 中有下載內容的大小,可用於顯示進度。

冪等操作:請求一次和請求多次的結果是一樣的。

返回的狀態碼

狀態碼是對結果進行類型化的描述的,大致分1、2、3、4、5等5類。
接觸最多的狀態碼就是 404,其次還有 400、500、415等。

  1. 404 是請求的資源不存在。
  2. 400 客戶端請求錯誤。
  3. 500 服務器內部錯誤。
  4. 415 請求格式錯誤。
  1. 1xx :臨時性消息。
    100:繼續發送。
    101:正在切換協議。
  2. 2xx :成功性消息。
    200:OK。
    201:創建成功。
  3. 3xx :重定向問題。
    301:域名永久移動。
    302:暫時移動。
    303:內容未改變,請求被重定向到客戶端本地緩存。
  4. 4xx :客戶端錯誤。
    400:客戶端請求錯誤,服務器不理解請求的語法。
    401:需要進行身份驗證。
    403:服務器拒絕訪問。
  5. 5xx :服務器錯誤。
    503:服務不可用。

報文的首部(Headers)

首部字段,主要分爲以下幾類:

  • 通用首部 ==> 提供了與報文相關的最基本的信息。
    在這裏插入圖片描述
  • 請求首部 ==> 在請求報文中有意義的內容
    在這裏插入圖片描述
    requestCode-1. Host:服務器的主機名與端口號,在目標服務器上定位子服務器的。
    requestCode-2. Accept:告訴服務器,客戶端接收的類型。
  • 響應首部 ==> 在響應報文中有意義的內容。
    在這裏插入圖片描述
  • body ==> 描述 主題的內容。
    請求與響應都可以包含的內容:
    1、Content-Type:實際返回內容的類型。text/html(html文本)、x-www-form-urlencoded(純文本)、multitype/form-data(二進制文件)、application/json,image/jpeg,application/zip。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章