HTTP 協議的基本格式

目錄

(一)HTTP是什么

(二)報文格式

(1)請求

①首行

1.URL

2.方法(method)

Ⅰ.GET

Ⅱ.POST

Ⅲ.PUT

Ⅳ.DELETE

3.版本號

②請求頭(header)

1.鍵值對

Ⅰ.Host

Ⅱ.???????Content-Length

Ⅲ.???????Content-type

Ⅳ.???????User-Agent

Ⅴ.???????Referer

③空行(請求頭結束的標志)

④請求正文(body)(有的有,有的沒有)

(2)響應

①首行(狀態行)

1.版本號

2.狀態碼

200 OK

301 Moved Permanently

302 Move Temporarily

403 Forbidden

404 Not Found

418

500 Internal Server

502 Bad Gateway

504 Gateway Timeout

②響應頭(header)

③空行(響應報頭結束的標志)

④正文(body)


(一)HTTP是什么

即“超文本傳輸協議”。

(二)報文格式

(1)請求

①首行

唯一資源定位符,描述了網絡上的某個資源的具體位置。

1.URL

URL encode:URL的 query string 中的 value 部分,可能需要進行轉義。

2.方法(method)

Ⅰ.GET
  1. HTTP中最常見方法,GET請求一般沒有body。

  2. 實現冪等,就可實現緩存。

  3. 官方建議實現“冪等性”。

Ⅱ.POST
  1. 特點:有body用來傳輸數據。

  2. base64編碼:通過這個把二進制內容轉文本,從而減輕服務器負擔。

  3. 觸及場景:登錄,上傳資源、文件。

Ⅲ.PUT

????????與POST相似,具有冪等性。

.DELETE
3.版本號

????????Restful 風格的API設計。

請求頭(header)

1.鍵值對
    • 鍵和值之間用“: ”來分割。

    • 標準規定的。

Ⅰ.???????Host

????????訪問的服務器和端口。

Ⅱ.???????Content-Length
  • 描述了body的長度。

  • 解決了“粘包問題”。

Ⅲ.???????Content-type
  • 描述了body的數據格式。

  • 常見格式:

    • text/html

    • text/css

    • application/javascript

    • application/json

    • image/png

    • image/jpg

Ⅳ.???????User-Agent

????????所使用設備。

>>>響應式編程

Ⅴ.???????Referer

????????記錄上一個頁面。

Ⅵ.???????Cookie

  • 鍵值對。

  • 瀏覽器在本地存儲數據的一種機制。

  • 應用場景:

    • 保存沒那么重要,但是有用的數據(也可以使用LacalStorage、IndexDB實現本地存儲)

    • 流量標簽

    • 保存用戶的身份標識

>>>Cookie和會話(存儲用戶的詳細信息)配合使用

③空行(請求頭結束的標志)

④請求正文(body)(有的有,有的沒有)

(2)響應

①首行(狀態行)

1.版本號
2.狀態碼

  • 200 OK

????????HTTP層面的成功,不代表業務層面的成功。

  • 301 Moved Permanently

????????永久重定向。

  • 302 Move Temporarily

????????臨時重定向。

3開頭的響應一般不會有body,但是會有location,表示接下來跳轉到的頁面

  • 403 Forbidden

????????訪問被拒絕(沒有權限)。

  • 404 Not Found

????????客戶端訪問的資源不存在。

  • 418

? ? ? ? I am a teapot

  • 500 Internal Server

????????服務器拋出異常。

  • 502 Bad Gateway

????????網關后面的服務器故障。

  • 504 Gateway Timeout

????????服務器響應時間過長。

②響應頭(header)

③空行(響應報頭結束的標志)

④正文(body)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/99097.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/99097.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/99097.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡的基本概念-2

1、數據交換技術:電路交換、報文交換與分組交換網絡核心部分的關鍵設備是路由器,其工作方式是分組交換。要理解分組交換,必須先了解其前兩種技術。1. 電路交換 (Circuit Switching)核心思想:通信前必須預先建立一條專用的物理通路…

車載網絡技術--SOME_IP協議詳解

文章目錄前言SOME/IP概念SOME/IP協議格式SOME/IP功能介紹序列化序列化規則發布和訂閱服務發現(SOME/IP-SD)SOME/IP-TP協議使用場景SOME/IP-TP協議參考文章:前言 本文介紹了SOME/IP協議的具體內容,包括報文格式,協議選…

JVM 核心知識全解析:從類加載到垃圾回收的深度認知

什么是JVM? JVM全稱(Java Virtual Machine),中譯為:Java虛擬機 本質:是一個運行在計算機上的程序 職責:運行Java字節碼文件(因為計算機只能認識機器碼文件,所以需要JVM將…

Keepalived 負載均衡

Keepalived 負載均衡 Keepalived 可以與 LVS(Linux Virtual Server)結合,提供強大的四層負載均衡功能。它通過 IPVS(IP Virtual Server)內核模塊實現高性能的負載分發。 核心組件 Virtual Server:虛擬服務器…

拷打DeepSeek實現自動生成差分電荷計算文件和后處理

差分電荷(charge density difference)是材料模擬中分析電子結構變化的直觀工具。 它把成鍵后的真實電荷密度減去成鍵前各碎片疊加的電荷密度,得到一張“電子遷移地圖” 于是可以一眼看出化學鍵形成時電子從哪里來到哪里去,表面吸…

AI問答-Nuxt4:什么時候發布的,有哪些特性,和Nuxt3相比 有哪些優勢 / Nuxt4 / Nuxt-v4

Nuxt 4于2025年7月至8月期間正式發布,作為Nuxt框架的重大版本更新,其核心聚焦于穩定性提升、開發者體驗優化及性能增強,與Nuxt 3相比,優勢體現在項目結構、數據獲取、類型系統、開發工具鏈等多個層面。一、Nuxt 4 發布時間線測試階…

isinstance()和insubclass()

??isinstance() 和 issubclass() 的功能與用法????1. isinstance(obj, classinfo)????功能??:檢查對象 obj 是否是 classinfo 類(或其子類)的實例。 ??返回值??:True 或 False。 ??用法??:class A…

判斷QMetaObject::invokeMethod()里的函數是否調用成功

今天,在Qt編程,碰到一個需要使用invokeMethod方式來獲取函數是否執行成功的情況。 ? ? invokeMethod()即可以同步調用,也可以異步調用。若調用者、被調用者,都在同一個線程,則是同步調用;若調用者、被調用…

【linux】特殊權限

us對文件:用戶執行該文件時,會以文件所有者的權限運行chmod us filename # 符號模式 chmod 4755 filename # 數字模式(4表示SetUID)典型應用:/usr/bin/passwd(允許普通用戶修改自己的密碼,…

OpenCV:指紋識別

目錄 一、核心算法 1:SIFT 特征提取(尺度不變特征變換) 1.1 算法原理(4 步核心流程) 1.2 重點代碼實現與參數解析 1.3 關鍵輸出解讀 二、核心算法 2:FLANN 特征匹配(快速最近鄰搜索&#x…

快速排序:高效的分治排序算法

快速排序因其平均時間復雜度$O(n\log n)$而成為廣泛應用的高效排序算法。其核心是分治法: 選擇基準 (Pivot):從待排序序列中選取一個元素(如第一個元素$arr[0]$)。 分區 (Partition):將序列重新排列,所有小于基準的元素置于其前,大于或等于的置于其后。基準元素最終位于…

網絡編程之UDP廣播與粘包問題

一,廣播簡介從上述講的例?中,不管是TCP協議還是UDP協議,都是”單播”, 就是”點對點”的進?通信,如果要對網絡里面的所有主機進?通信,實現”點對多”的通信,我們可以使用UDP中的?播通信。 理論上可以像…

教育領域大模型生成題目安全研究報告

教育領域大模型生成題目安全研究報告 一、研究背景與意義 隨著大語言模型(LLM)在教育領域的深度應用,自動生成題目已成為提升教學效率、實現個性化教學的關鍵技術手段,廣泛應用于課堂練習、作業布置、考試命題等場景。然而&…

Android安卓項目調試之Gradle 與 Gradle Wrapper的概念以及常用gradle命令深度詳解-優雅草卓伊凡

Android安卓項目調試之Gradle 與 Gradle Wrapper的概念以及常用gradle命令深度詳解-優雅草卓伊凡好的,我們來詳細梳理一下 Android 開發中 Gradle 的常用配置和調試命令。這對于每一位 Android 開發者來說都是必須掌握的核心技能。第一部分:Gradle 與 Gr…

Maven入門_簡介、安裝與配置

ZZHow(ZZhow1024) 參考課程: 【尚硅谷新版Maven教程】 [https://www.bilibili.com/video/BV1JN411G7gX] 一、Maven簡介 02_依賴管理工具 解決 jar 包的規模問題解決 jar 包的來源問題解決 jar 包的導入問題解決 jar 包之間的依賴 03_構建工具 我們沒有注意過…

Spark(1):不依賴Hadoop搭建Spark環境

不依賴Hadoop搭建Spark環境0 概述1 單機安裝Spark1.1 下載Spark預編譯包1.2 解壓和設置1.3 配置環境變量1.4 驗證安裝2 Spark運行模式2.1 Local模式(本地模式)2.1.1 Spark Shell2.1.1.1 Python版的Shell2.1.1.2 Scala版的Shell2.1.2 提交獨立的Spark應用…

【ThreeJs】【自帶依賴】Three.js 自帶依賴指南

🛠? Three.js 輔助庫生態手冊 定位:覆蓋 90% 開發場景的工具選型實操指南,區分「入門必備」和「進階擴展」。 適用人群:Three.js 新手(≥ r132 版本)、需要規范開發流程的團隊。 1. 控制器(Co…

Mac電腦上如何打印出字體圖標

背景 我今天打開了一個之前開發的APP,看到項目中用到了字體圖標,發現有個“面條”圖標用錯了,想著修改一下吧。然后用輸入法打出”面條“,在輸入法的彈窗中就一直往下找,發現并沒有出現圖標。 想著打出”面條圖標“也沒…

當AI遇上數據庫:Text2Sql.Net如何讓“說人話查數據“成為現實

一句話概括:還在為寫復雜SQL而頭疼?Text2Sql.Net讓你用自然語言就能查數據庫,堪稱程序員的"數據庫翻譯官"! 🎯 引言:從"SQL地獄"到"自然語言天堂" 想象一下這樣的場景&…

整體設計 之 緒 思維導圖引擎 之 引 認知系統 之8 之 序 認知元架構 之4 統籌:范疇/分類/目錄/條目 之2 (豆包助手 之6)

問題Q68、我們現在僅僅分析了 認知演進 的 “進”的問題,通過層次結構 和 統籌 的同構約束 給出了 不同對象及其對應的操作和約束。 --這句話 你能完全理解嗎(這意味著 完整的程序細節設計)。 還沒有分析的還有 “演” 以及組合詞 “演進” -…