前后端通信 —— HTTP/HTTPS

目錄

一、HTTP/HTTPS 簡介

1、HTTP

2、HTTPS

二、HTTP 工作過程

三、HTTP 消息

1、HTTP消息結構

2、HTTP消息示例

四、HTTP 方法(常用)

1、GET

2、POST

3、PUT

4、DELETE

5、GET與POST對比

五、HTTP 狀態碼(常用)

1、HTTP 狀態碼是什么

2、常見的HTTP狀態碼


一、HTTP/HTTPS 簡介

1、HTTP

HTTP(Hypertext Transfer Protocol),超文本傳輸協議;

  • 是一種用于在萬維網上傳輸數據的應用層協議
  • 主要用來定義客戶端和服務器之間的通信規則,包括請求和響應的格式、方法、狀態碼等;
  • 是一個基于 TCP/IP 通信協議來傳遞數據(HTML 文件、圖片文件、查詢結果等);

2、HTTPS

HTTPS(HyperText Transfer Protocol Secure),超文本傳輸安全協議;

在 HTTP 上加入 SSL/TLS 協議,為數據傳輸提供了加密和身份驗證,是HTTP的安全版本;

二、HTTP 工作過程

1、客戶端發起請求

用戶通過客戶端(如瀏覽器)輸入 URL,客戶端向服務器發起一個 HTTP 請求;

2、服務器處理請求

服務器接收到請求后,根據請求的類型(如GET、POST等)和請求的資源,進行相應的處理;

3、服務器返回響應

服務器將處理結果包裝成HTTP響應消息,發送回客戶端;

4、客戶端渲染頁面

客戶端接收到響應后,根據響應內容(如HTML、圖片等)渲染頁面,展示給用戶;

三、HTTP 消息

HTTP消息是指,在HTTP協議中,客戶端與服務端之間進行數據傳輸的基本單元;

  • 是前后端通信的基礎,由一系列的文本行組成,有著固定的結構和格式;
  • 遵循HTTP協議的規范,確保數據能夠在客戶端和服務器之間正確、高效地傳輸;
  • 分為兩種類型:請求消息和響應消息;

1、HTTP消息結構

?(1)請求消息

(2)響應消息

組成部分說明

起始行

Start Line

  • 請求消息:起始行包括請求方法、請求URI、HTTP版本;
  • 響應消息:起始行包括HTTP版本、狀態碼、狀態文本信息;

頭部字段

Headers

  • 提供了關于消息的元數據,如消息類型、消息大小、消息來源、認證信息等;
  • 頭部字段由不區分大小寫的【字段名:字段值】;
  • 請求頭部字段包括User-Agent(用戶代理信息)、Accept(可接受的響應內容類型)、Authorization(認證信息)等;
  • 響應頭部字段包括Content-Type(內容類型)、Content-Length(內容長度)、Server(服務器信息)等;

空行

Empty Line

  • 空行是一個單獨的換行符,用于分隔頭部字段和消息體(消息體可能沒有);

消息體

Body

  • 消息體包含了請求或響應的實際數據;
  • 在請求消息中,消息體通常包含要發送給服務器的數據,如表單數據或上傳的文件。在響應消息中,消息體通常包含服務器返回的資源內容,如HTML頁面、圖片、視頻等;
  • 不是所有的HTTP消息都包含消息體;例如,GET請求通常不包含消息體;

2、HTTP消息示例

(1)請求消息

(2)響應消息

四、HTTP 方法(常用)

常用的HTTP方法有:GET、POST、PUT、DELETE;

序號方法語義說明
1GET查找從服務器獲取資源。
2POST新增向服務器發送數據以創建新資源。
3PUT修改向服務器發送數據以更新現有資源。
4DELETE刪除從服務器刪除指定的資源。

這些方法雖然有各自的語義,但并不是強制性的;

1、GET

GET方法,用于從服務器獲取資源;

用于請求數據而不對數據進行更改;

例如,從服務器獲取數據、圖片、文件等;

2、POST

POST方法,用于向服務器發送數據以創建新資源;

常用于提交表單數據或上傳文件,發送的數據包含在請求體中;

例如,新增用戶、添加商品等;

3、PUT

PUT方法,向服務器發送數據以更新現有資源;

如果資源不存在,則創建新的資源;

例如,用戶修改密碼、更新商品庫存等;

4、DELETE

DELETE方法,從服務器刪除指定的資源;

請求中包含要刪除的資源標識符;

例如:注銷個人賬戶、刪除某個商品信息;

5、GET與POST對比

GET 請求POST 請求
用途常用于獲取數據,如查詢操作;常用于創建數據,如表單提交、文件上傳等;
數據傳遞方式將數據作為URL的一部分進行傳遞,會顯示在地址欄中;將數據放在請求體中進行傳遞,不會顯示在地址欄中;
數據長度限制對數據的長度有限制,跟地址長度有關系,不同的瀏覽器有所不同,一般最多幾k;理論上能攜帶的數據是無限的,但實際受配置和性能的影響;
緩存可以被緩存;一般不會被緩存;
安全性相對不安全,傳遞的數據在瀏覽器地址欄直接可見,不適合傳遞敏感數據;相對安全,更適合傳遞敏感信息;
對服務器的影響通常只是用來獲取資源,不會對服務器上的資源產生影響;通常是用來創建資源,對服務器上的資源會產生;

五、HTTP 狀態碼(常用)

1、HTTP 狀態碼是什么

HTTP狀態碼是HTTP協議中,用來描述服務器響應客戶端請求結果的一種編碼方式;

  • 是服務器端返回的,對客戶端請求的處理結果;
  • 它由三位數字組成,每個數字表示不同的含義;
  • 定義服務器對請求的處理結果,是服務器返回的;

2、常見的HTTP狀態碼

熟悉常用的狀態碼對前后端開發有很大的幫助;

不僅可以快速識別請求是否成功;

也可以得出在請求過程中出現的錯誤類型,進而相應的相應的處理;

HTTP狀態碼

英文名稱

語義

1xx

信息,服務器收到請求,需要請求者繼續執行操作
100Continue繼續。客戶端應繼續其請求;
101Switching Protocols切換協議。服務器根據客戶端的請求切換協議;

2xx

成功,操作被成功接收并處理

200

OK請求成功。請求所希望的響應頭或數據體將隨此響應返回;
201Created已創建。成功請求并創建了新的資源;
202Accepted已接受。已經接受請求,但未處理完成;
204No Content無內容。服務器成功處理,但未返回內容;
206Partial Content部分內容。服務器成功處理了部分GET請求;

3xx

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

301

Moved Permanently永久移動。請求的資源已被永久移動到新位置;

302

Found臨時移動。與301類似,客戶端應繼續使用原先的URL請求資源;

304

Not Modified ?未修改。自上次請求后,請求的資源未被修改過;
305Use Proxy使用代理。所請求的資源必須通過代理訪問;
307Temporary Redirect臨時重定向。與302類似。使用GET請求重定向;

4xx

客戶端錯誤,請求包含語法錯誤或無法完成請求

400

Bad Request客戶端請求的語法錯誤,服務器無法理解;
401Unauthorized請求要求用戶的身份認證;
403Forbidden服務器理解請求,但拒絕執行它;

404

Not Found

服務器無法找到請求的資源;

405Method Not Allowed請求方法不被允許用于請求的資源;
409Conflict請求與當前資源的狀態沖突;
410Gone服務器無法找到請求的資源,且該資源可能不再可用;

5xx

服務器錯誤,服務器在處理請求的過程中發生了錯誤

500

Internal Serve Error服務器內部錯誤,無法完成請求;
501Not Implemented服務器不支持請求請求的功能;
502Bad Gateway服務器作為網關或代理,從上游服務器收到無效響應;
503Service Unavailable服務器當前無法使用(由于超載或停機維護);
504Gateway Timeout服務器作為網關或代理,但沒有及時從上游服務器收到請求;

=========================================================================

每天進步一點點~~!

先記錄到這里吧~~!

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

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

相關文章

常用的簡單的ps快捷鍵

常用快捷鍵: V移動工具 M矩形選框工具 W快速選擇工具 C裁剪工具 P鋼筆工具 T文字工具 U矩形工具 Z放大/縮放 altshiftctrls儲存為web格式的快捷鍵 altVE新建參考線 ctrlj 復制當前圖層 d 快速把前景色背景色變為黑白 x 切換前景色和背景色 ctrldelete 填充顏色 ct…

關于windows下編譯xLua插件的流程記錄

1.工程準備 1.xLua工程:GitHub - Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. 2.build_xlua_with_libs工程:GitHub - chexiongsheng/build_xlua_with_libs…

Onnx 1-深度學習-Operators

自動化測試-芯片神經網絡-模型ONNX-Operators 概念綜述一: Operators1> Conv2> MaxPool1. 參數2. shape 計算demo3> roipooling1. Roi-pooling 概念2. ROI pooling步驟3. demo4. R-CNN & Fast R-CNN二:維度變換1> Reshape-改變形狀1. 參數2. shape 計算demo3.…

實用調試技巧(Visual Studio)

目錄 Debug 和 Release 的區別 F10 --- 逐過程調試 & F11 --- 逐語句調試 F9 --- 新建/切換斷點 & F5 --- 開始調試 shift F5 & ctrl F5 Debug 和 Release 的區別 Debug:通常為調試版本,它包含調試信息,并且不作任何優化…

亞信科技基于 Apache SeaTunnel 的二次開發應用實踐

亞信科技在Apache SeaTunnel的實踐分享 自我介紹 各位同學好,很榮幸通過Apache SeaTunnel社區和大家進行分享交流。我是來自亞信科技的潘志宏,主要負責公司內部數據中臺產品的開發。 本次分享的主題是Apache SeaTunnel在亞信科技的集成實踐&#xff0c…

商品分類左右聯動

1、先看效果 2、以hooks方法處理&#xff0c;方便復制使用&#xff0c;見代碼 Good.vue文件 <script setup lang"ts" name"goods">import {onMounted, ref, nextTick} from "vue";import useProductScroll from "/utils/hooks/useP…

el-table 鼠標移入更改懸停背景顏色

鼠標懸停時需要更改當前行背景顏色&#xff0c;一開始寫的顏色會改變&#xff0c;但是一閃而過就沒了 這是因為移入移出的動畫效果導致的 .el-table__body {.el-table__row:hover {background-color: pink !important;}} 更改為后面的代碼&#xff0c;就可以了 .el-table__…

Milvus核心設計(2)-----TSO機制詳解

目錄 背景 動機 Timestamp種類及使用場景 Guarantee timestamp Service timestamp Graceful time Timestamp同步機制 主流程 時間戳同步流程 背景 Milvus 在設計上突出了分布式的設計,雖然Chroma 也支持分布式的store 與 query。但是相對Milvus來說,不算非常突出。…

Windows 32 匯編筆記(一):基礎知識

一、80x86 處理器的工作模式 1.1 實模式 實模式概述 實模式&#xff08;Real Mode&#xff09;是80x86處理器最早支持的工作模式&#xff0c;也是最基礎的工作模式。實模式主要用于早期的MS-DOS操作系統和其他簡單的操作環境。在實模式下&#xff0c;處理器能夠直接訪問1MB的…

Python 神器:wxauto 庫——解鎖微信自動化的無限可能

&#x1f4dd;個人主頁&#x1f339;&#xff1a;誓則盟約 ?收錄專欄?&#xff1a;機器學習 &#x1f921;往期回顧&#x1f921;&#xff1a;“探索機器學習的多面世界&#xff1a;從理論到應用與未來展望” &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f…

mysql高并發設計

mysql高并發設計 一、部署方案 https://blog.csdn.net/weixin_37519752/article/details/138728036 方案1&#xff1a;雙主 1、優點 寫入擴展性&#xff1a;兩個節點都可以處理寫入操作&#xff0c;提高了寫入操作的擴展性。 高可用性&#xff1a;在任一節點故障時&#xff…

數據結構復習計劃之復雜度分析(時間、空間)

第二節&#xff1a;算法 時間復雜度和空間復雜度 算法(Algorithm)&#xff1a;是對特定問題求解方法(步驟)的一種描述&#xff0c;是指令的有限序列&#xff0c;其中每一條指令表示一個或多個操作。 算法可以有三種表示形式&#xff1a; 偽代碼 自然語言 流程圖 算法的五…

貓不吃東西還嘔吐是什么原因?可以預防貓咪嘔吐的主食凍干推薦

貓咪突然食欲不振&#xff0c;還出現了嘔吐的癥狀&#xff0c;這究竟是為什么呢&#xff1f;結合我多年養貓的經驗&#xff0c;讓我們一起分析一下可能的原因。 一、 貓不吃東西還嘔吐是什么原因 &#xff08;1&#xff09;首先、排除貓瘟 如果你的貓咪一直家養&#xff0c;…

【Android】基于 LocationManager 原生實現定位打卡

目錄 前言一、實現效果二、定位原理三、具體實現1. 獲取權限2. 頁面繪制3. 獲取經緯度4. 方法調用5. 坐標轉換6. 距離計算7. 完整代碼 前言 最近公司有個新需求&#xff0c;想要用定位進行考勤打卡&#xff0c;在距離打卡地一定范圍內才可以進行打卡。本文將借鑒 RxTool 的 Rx…

php快速入門

前言 php是一門腳本語言&#xff0c;可以訪問服務器&#xff0c;對數據庫增刪查改&#xff08;后臺/后端語言&#xff09; 后臺語言&#xff1a;php&#xff0c;java&#xff0c;c&#xff0c;c&#xff0c;python等等 注意&#xff1a;php是操作服務器&#xff0c;不能直接在…

QUdpSocket 的bind函數詳解

QUdpSocket 是 Qt 框架中用于處理 UDP 網絡通信的類。bind 函數是此類中的一個重要方法&#xff0c;它用于將 QUdpSocket 對象綁定到一個特定的端口上&#xff0c;以便在該端口上接收 UDP 數據包。 函數原型 在 Qt 中&#xff0c;bind 函數的原型通常如下所示&#xff1a; b…

微軟開源項目GraphRAG——基于知識圖譜的RAG簡介

前言 在大型語言模型&#xff08;LLM&#xff09;的前沿研究中&#xff0c;一個核心挑戰與機遇并存的領域是擴展它們的能力&#xff0c;以解決超出其訓練數據范疇的問題。這不僅要求模型在面對全新數據時仍能保持卓越表現&#xff0c;還意味著開辟了全新的數據分析可能性&…

JVM 堆內存分配過程

設置堆內存大小和 OOM Java 堆用于存儲 Java 對象實例&#xff0c;那么堆的大小在 JVM 啟動的時候就確定了&#xff0c;我們可以通過 -Xmx 和 -Xms 來設定 -Xms 用來表示堆的起始內存&#xff0c;等價于 -XX:InitialHeapSize-Xmx 用來表示堆的最大內存&#xff0c;等價于 -XX…

Hadoop-15-Hive 元數據管理與存儲 Metadata 內嵌模式 本地模式 遠程模式 集群規劃配置 啟動服務 3節點云服務器實測

章節內容 上一節我們完成了&#xff1a; Hive中數據導出&#xff1a;HDFSHQL操作上傳內容至Hive、增刪改查等操作 背景介紹 這里是三臺公網云服務器&#xff0c;每臺 2C4G&#xff0c;搭建一個Hadoop的學習環境&#xff0c;供我學習。 之前已經在 VM 虛擬機上搭建過一次&am…

簡單的基追蹤一維信號降噪方法(MATLAB 2018)

基追蹤法是基于冗余過完備字典下的一種信號稀疏表示方法。該方法具有可提高信號的稀疏性、實現閾值降噪和提高時頻分辨率等優點。基追蹤法采用表示系數的范數作為信號來度量稀疏性&#xff0c;通過最小化l型范數將信號稀疏表示問題定義為一類有約束的極值問題&#xff0c;進而轉…