一、HTTP 和 HTTPS 介紹
HTTP(HyperText Transfer Protocol) 是一種無狀態的通訊協議,通常用於在客戶端(例如瀏覽器)和伺服器之間傳輸超文字(如 HTML 頁面)。但這僅僅是一個單向通訊協議,資料傳輸過程中並未加密,所以它比較容易被中間人攻擊。無狀態,即不能儲存每次提交的資訊,如果使用者發來一個新的請求,伺服器無法知道它是否與上次請求有關聯。

HTTPS(HyperText Transfer Protocol Secure),則是在 HTTP 的基礎上增加了加密層,使用 SSL/TLS 協議來保護資料的傳輸。可以理解為 HTTP 的“高階版”,帶有加密的護航,讓資料在傳輸過程中更安全。
特性 | HTTP | HTTPS |
安全性 | 無加密,易受攻擊 | 加密傳輸,安全性高 |
埠號 | 預設埠為 80 | 預設埠為 443 |
效能 | 較快(沒有加密負擔) | 較慢(加密解密有一定開銷) |
證書 | 不需要證書 | 需要 SSL/TLS 證書 |
瀏覽器表現 | 沒有“安全”標記 | 顯示鎖形標誌,使用者感到安全 |
二、網際網路訊息如何傳遞
在網際網路中,資訊傳遞就像是一場複雜的郵遞過程,訊息需要透過一系列的“郵局”(即路由器),逐步從傳送方傳遞到接收方。為了讓這個過程更具邏輯性,我們可以將其比作寄送包裹的過程。
1、網際網路通訊的路徑
1.訪問某個網站
訪問網站 www.example.com。這個網址在網際網路上並不是唯一的地址,它只是一個更易於記憶的字串。真正定位到網站的地址,必須透過它的 IP 地址。這就好比你想找一個朋友的住址,但只知道他的名字,你需要透過電話簿(類似 DNS 解析)來查詢他具體的住址(IP 地址)。
2.瀏覽器傳送請求
在瀏覽器中輸入網址後,瀏覽器會發起一個請求,這個請求會包含想要訪問的資訊。例如,HTTP 請求頭中可能包含要訪問的頁面路徑、瀏覽器型別、語言等資訊。就像向郵局遞交一個包裹,包裹裡帶著想要傳送的內容(即請求資訊)。
3.DNS 解析
由於 IP 地址很不好記憶,所以 DNS(域名系統)起到了將易記的域名(如 www.example.com)轉換為計算機能夠理解的 IP 地址(如 192.168.1.1)的作用。這是透過向 DNS 伺服器查詢來實現的。
4.路由器的作用
拿到正確的 IP 地址後,訊息會透過一系列路由器(路由器就像郵遞員一樣,負責在各個“郵局”之間傳遞包裹)逐步轉發到目標伺服器。每個路由器根據接收到的包裹資訊,決定將包裹轉發給哪個下一個路由器或最終目標。這些路由器會透過 MAC 地址 來標識彼此,就像每個郵局都有一個地址和“郵遞員”一樣。

在這個過程中,MAC 地址 是每臺網絡裝置(如路由器、計算機等)唯一標識的地址。MAC 地址常常在區域網內起作用,而在網際網路上,資料包會依賴 IP 地址進行轉發。

例如,當你的包裹從一個路由器(網路節點)到達下一個節點時,包裹的 "收件人地址"(即 MAC 地址)會發生變化,每經過一個路由器,包裹的封面上的 “地址” 會更新為當前路由器的 MAC 地址,直到最終到達目標伺服器。

5.目標伺服器響應請求
當資料包最終到達目標伺服器時,伺服器會處理你的請求(例如返回一個網頁、圖片或檔案)。伺服器根據請求的資訊,選擇正確的資料進行返回。就像郵局在接收到包裹後,將其交給收件人。

6.響應回傳
一旦目標伺服器生成了響應,它會透過與請求時相同的路徑,逆向傳送回給瀏覽器。由於路由器和中間裝置的作用,資料包在路由過程中仍然會更新其 MAC 地址和其它資訊,但最終會正確到達瀏覽器,呈現出網頁內容。
2、IP 地址和 MAC 地址的作用
1.IP 地址
是每個網路主機的唯一地址,主要用於定址,讓資料包能夠找到目的地。你可以把 IP 地址看作“郵寄地址”,幫助路由器知道資料應該發往哪裡。
2.MAC 地址
是硬體裝置(如網絡卡)的一種物理地址,它在區域網內用於裝置間的通訊。可以理解為裝置的“身份證”,每個裝置都有一個獨特的 MAC 地址。
3.DNS 解析
人們使用域名而不是 IP 地址,主要是因為域名更容易記憶。但計算機只能透過 IP 地址找到目標伺服器,因此需要使用 DNS(域名解析系統)將域名轉換成 IP 地址。
三、埠號
網絡卡中具有許多和網路通訊的軟體,資料幀到達網絡卡後,根據埠號來區別不同的軟體或程序,埠後是用來確定資料目的程式的
服務型別 | 預設埠號 |
HTTP | 80 |
HTTPS | 443 |
FTP | 21 |
MySQL | 3306 |
SSH | 22 |
四、HTTP協議
HTTP(Hypertext Transfer Protocol),即 超文字傳輸協議,是一種無狀態的請求-響應協議,用於客戶端(通常是瀏覽器)和伺服器之間的通訊。它是網際網路中最基礎、最常用的協議之一。HTTP 協議在實現網頁瀏覽時起著核心作用,它是瀏覽器和伺服器之間交換資料的語言。
1、什麼是超文字
“超文字”指的是網頁上的內容,通常以 HTML(Hypertext Markup Language)格式呈現。HTML 是用來描述網頁結構的標記語言,因此,HTTP 協議常常被用於傳輸 HTML 檔案,當然它也傳輸其他格式的檔案,如圖片、影片、JSON 資料等。
2、HTTP請求和響應
HTTP 協議透過 請求(Request)和 響應(Response)進行資料交換。客戶端向伺服器傳送請求,伺服器處理請求後返回響應。
1.HTTP請求
客戶端(如瀏覽器)向伺服器發起請求。通常情況下,客戶端不會主動向伺服器發起請求,而是由使用者觸發的操作(例如點選連結、提交表單等)來生成請求。每個 HTTP 請求都由三個主要部分組成:
請求的組成
(1)請求行(Request Line):
請求方法(GET、POST、PUT、DELETE 等)
請求目標(例如 /index.html)
HTTP 版本(例如 HTTP/1.1)
(2)請求頭(Request Header):
請求頭包含了客戶端的相關資訊。常見的請求頭如下:
Accept-Encoding:指定客戶端能夠接受的編碼方式,例如 gzip, deflate,用來壓縮響應內容。
Host:指定伺服器的主機名,通常是網站的域名(如 www.baidu.com)。
User-Agent:指定發起請求的瀏覽器型別,例如 Mozilla/5.0。
Cookie:客戶端儲存的 Cookie 資訊,用於跟蹤使用者狀態。
(3)請求正文(Request Body):
請求正文包含實際請求的資料,通常用於 POST 或 PUT 請求,用於傳送表單資料或檔案。GET 請求一般沒有請求正文。
GET
/index
.html HTTP
/1.1
Host: www.example.com
User-Agent: Mozilla
/5.0
Accept-Encoding: gzip, deflate, br
這段請求的含義是:客戶端透過 GET 方法請求伺服器上的 /index.html 頁面,使用 HTTP/1.1 協議,且告訴伺服器瀏覽器型別是 Mozilla/5.0,支援 gzip, deflate, br 等壓縮方式。
請求方式
GET:用於請求指定的資源,資料透過 URL 引數傳遞。適用於查詢資料。
POST:用於向伺服器提交資料。適用於提交表單、檔案上傳等操作。
PUT:用於更新指定資源,通常帶有請求正文。
DELETE:用於刪除指定資源。
GET請求
透過URL傳遞引數,URL與引數之間用?隔開,多個引數用&隔開,也是表單的預設提交方式
GET傳送的資料量較小,主要是因為收到URL長度的限制
GET會將資料顯示到URL當中,不安全
GET請求一般用於直接獲取資料,提高查詢速度。
GET是無副作用的,因此可以被快取、書籤和分享
POST請求
POST的資料在請求主體內,所以相對比較安全,但不是絕對安全
POST對上傳資料的大小無限制,POST請求可以做檔案的上傳和下載。POST適用於增刪改操作
2.HTTP響應
伺服器接收到客戶端的請求後,會根據請求的內容返回一個響應。HTTP 響應通常包含以下幾個部分:
響應組成
(1)響應狀態行(Response Status Line):
HTTP 版本(如 HTTP/1.1)
狀態碼(例如 200 OK、404 Not Found、500 Internal Server Error 等)
狀態描述(簡短的文字描述)
(2)響應頭(Response Header):
響應頭包含了伺服器和返回資料的一些元資料:
Content-Type:指定響應資料的型別,如 text/html, application/json。
Content-Length:響應內容的長度。
Set-Cookie:伺服器設定的 Cookie,用於客戶端儲存狀態。
(3)響應正文(Response Body):
響應正文包含實際的響應資料,例如 HTML 檔案、JSON 資料或圖片等內容。
響應狀態碼
200 OK:請求成功,伺服器成功返回資料。
400 Bad Request:請求有語法錯誤,伺服器無法理解。
404 Not Found:請求的資源不存在。
405 Method Not Allowed:請求方法不被伺服器支援。
500 Internal Server Error:伺服器內部錯誤,無法處理請求。
502 Bad Gateway:伺服器作為閘道器或代理,從上游伺服器收到無效響應。
HTTP
/1.1200
OK
Content-Type:
text/
html
Content-Length:
1234
<
html
>
<
body
>
<
h1
>
Welcome
to
Example!
</
h1
>
</
body
>
</
html
>
在這個響應中,伺服器告訴客戶端,/index.html 頁面已成功返回,並且響應的內容為 HTML 格式,長度為 1234 位元組,包含了網頁的內容。
五、HTTPS
為了解決 HTTP 協議的安全問題,引入了 HTTPS(安全超文字傳輸協議)。HTTPS 在 HTTP 的基礎上加入了加密層,利用 SSL(安全套接字層)或 TLS(傳輸層安全協議)對資料進行加密。透過 HTTPS 協議,資料在傳輸過程中會被加密,這不僅保證了資料的機密性(防止資料被竊取),還確保了資料的完整性(防止資料在傳輸過程中被篡改)。
1、HTTPS的加密方式
1.對稱加密
產生秘鑰,加密解密使用同一個秘鑰。對稱加密速度快,但秘鑰的安全性較低,若秘鑰在傳輸過程中被竊取,攻擊者就能輕易解密資料。
2.非對稱加密
產生公鑰和私鑰,公鑰加密的資料需要私鑰解密,私鑰加密的資料需要公鑰解密。處理速度相對較慢,但是安全性較高。
2、HTTPS的加密過程
1.握手階段:
客戶端與伺服器之間首先進行一系列的加密握手。客戶端請求伺服器時,伺服器會返回一個數字證書,證書包含了公鑰和伺服器的身份資訊。客戶端透過驗證證書的合法性來確認伺服器的身份是否可信。
2.金鑰交換:
在握手階段,客戶端和伺服器會使用非對稱加密來交換金鑰。客戶端用伺服器的公鑰加密生成的“會話秘鑰”(對稱秘鑰),然後將加密後的會話秘鑰傳送給伺服器。伺服器用自己的私鑰解密出會話秘鑰。這樣,客戶端和伺服器就建立了一個加密的通訊通道,並可以使用會話秘鑰進行後續的資料加密和解密。
3.資料加密傳輸階段:
在後續的資料傳輸過程中,客戶端和伺服器會使用共享的對稱秘鑰進行加密與解密操作。由於對稱加密的效率高,資料傳輸速度較快。

3、數字證書
為了防止第三方攻擊者偽裝成伺服器進行釣魚攻擊,HTTPS 使用 數字證書 來驗證伺服器的身份。數字證書就像是一個網站的“身份證”,它由 認證機構(CA) 頒發,包含了伺服器的公鑰和身份資訊。
證書組成
-
證書的持有者資訊(如公司名稱、網站域名等)
-
公鑰
-
證書頒發機構(CA)的資訊
-
證書的有效期
-
數字簽名(確保證書的完整性,防止篡改
認證機構(CA)是經過各國政府認可的權威機構,它們負責簽發和驗證證書的合法性。客戶端在訪問 HTTPS 網站時,瀏覽器會驗證證書的有效性,確保該證書由受信任的 CA 簽發並且沒有過期。
證書驗證過程
當客戶端訪問 HTTPS 網站時,首先會收到伺服器傳送的數字證書。客戶端會檢查證書的有效性,向證書的釋出機構(CA)確認證書是否合法。如果證書有效,客戶端會提取公鑰來加密生成的會話秘鑰,並將加密後的秘鑰傳送給伺服器。
六、Cookie和Session
1、Cookie
Cookie 是儲存在客戶端瀏覽器中的小檔案,用於儲存使用者的狀態資訊。由於 HTTP 協議是無狀態的,即每次請求都無法自動攜帶上次的狀態資訊,因此需要藉助 Cookie 來維護狀態。
1.Cookie特點
-
儲存在客戶端,容易被篡改或盜用。
-
可以設定過期時間。
-
每次請求都會隨請求頭一起傳送,可能會影響請求效能。
2、Session
Session 是在伺服器端儲存的使用者會話資訊,每個客戶端在訪問伺服器時,伺服器會分配一個唯一的 session ID。這個 ID 通常儲存在客戶端的 Cookie 中,當客戶端再次請求時,瀏覽器會自動帶上這個 session ID,伺服器透過 session ID 找到對應的會話資訊。
1.Session特點
-
儲存在伺服器端,相對更加安全。
-
需要藉助客戶端的 Cookie 來維持會話。
-
不會暴露在客戶端,防止被篡改。
3、Cookie和Session對比
特性 | Cookie | Session |
儲存位置 | 儲存在客戶端瀏覽器中 | 儲存在伺服器端 |
安全性 | 相對不安全,容易被篡改或盜用 | 較為安全,資料儲存在伺服器端,客戶端只有 Session ID |
容量 | 通常每個 Cookie 大小為 4KB | 受伺服器資源限制,一般較大 |
生命週期 | 可以設定過期時間,過期後自動刪除 | 會話結束或瀏覽器關閉時,Session 會話資料丟失 |
儲存內容 | 可以儲存少量資訊(如使用者偏好、登入資訊等) | 通常儲存較為重要的使用者資訊,如使用者身份、購物車等 |
資料傳輸 | 每次請求都會隨著請求頭一起傳送給伺服器 | 每次請求時只會傳送 Session ID(通常儲存在 Cookie 中) |
效能 | 每次請求傳送 Cookie 可能會增加網路負擔 | 效能較好,只傳輸 Session ID,資料儲存在伺服器端 |
跨域問題 | 不能跨域使用,不同域名下的 Cookie 無法共享 | 跨域時需要特別處理(如透過共享 Session ID) |
儲存大小限制 | 每個域名最多儲存 20 個 Cookie,每個 Cookie 4KB | 沒有硬性大小限制,但受伺服器記憶體限制 |
常見用途 | 使用者偏好、使用者登入狀態、跟蹤使用者行為等 | 使用者會話管理、驗證使用者身份等 |
七、總結HTTP和HTTPS
特性 | HTTP | HTTPS |
全稱 | 超文字傳輸協議(Hypertext Transfer Protocol) | 安全超文字傳輸協議(Hypertext Transfer Protocol Secure) |
協議型別 | 無加密協議 | 加密協議 |
安全性 | 不安全,資料以明文傳輸,容易受到中間人攻擊 | 安全,資料透過加密傳輸,防止資料被竊取或篡改 |
加密方式 | 無加密,資料傳輸過程中沒有保護 | 使用 SSL/TLS 協議對資料進行加密 |
埠號 | 使用 80 埠 | 使用 443 埠 |
驗證身份 | 不提供身份驗證 | 提供身份驗證,透過數字證書確保伺服器的身份 |
資料完整性 | 資料傳輸過程中容易被篡改 | 資料在傳輸過程中使用加密,保證完整性,防止篡改 |
效能 | 效能較高,因為沒有加密解密過程 | 效能稍低,因為需要加密解密,但使用的加密演算法對比一般不影響正常使用 |
資料傳輸方式 | 明文傳輸資料 | 加密傳輸資料 |
適用場景 | 適用於無需保密的內容,如公共資訊、非敏感資料 | 適用於需要保密和安全傳輸的內容,如登入資訊、支付資訊等 |
瀏覽器顯示 | URL 以http://開頭 | URL 以https://開頭,並通常帶有鎖形圖示,表示安全 |
數字證書 | 無需數字證書 | 需要透過 CA 認證機構頒發的數字證書驗證伺服器身份 |
受信任 | 無法驗證網站的真實身份,容易被釣魚網站偽造 | 提供可信的身份驗證,確保使用者訪問的是合法網站 |
連結:https://blog.csdn.net/weixin_74814027/article/details/145933302?spm=1001.2014.3001.5502
(版權歸原作者所有,侵刪)
文末福利
就目前來說,傳統運維衝擊年薪30W+的轉型方向就是SRE&DevOps崗位。
為了幫助大家早日擺脫繁瑣的基層運維工作,給大家整理了一套高階運維工程師必備技能資料包,內容有多詳實豐富看下圖!
共有 20 個模組





······



以上所有資料獲取請掃碼
備註:最新運維資料

100%免費領取
(後臺不再回復,掃碼一鍵領取)