首頁 運維 安全 快速了解HTTP和HTTPS協定!

快速了解HTTP和HTTPS協定!

Jun 17, 2020 am 11:06 AM
http https

快速了解HTTP和HTTPS協定!

1.什麼是協定?

網路協定是電腦之間為了實現網路通訊而達成的一種「約定」或」規則“,有了這種」約定“,不同廠商的生產設備,以及不同作業系統組成的電腦之間,就可以實現通訊。

2.HTTP協定是什麼?

HTTP協定是超文本傳輸協定的縮寫,英文是Hyper Text Transfer Protocol。它是從WEB伺服器傳輸超文本標記語言(HTML)到本機瀏覽器的傳送協定。

設計HTTP最初的目的是為了提供一個發佈和接收HTML頁面的方法。

HTPP有多個版本,目前廣泛使用的是HTTP/1.1版本。

3.HTTP原則

HTTP是基於TCP/IP通訊協定來傳遞資料的協議,傳輸的資料類型為HTML 文件,、圖片檔, 查詢結果等。

HTTP協定一般用於B/S架構()。瀏覽器以HTTP客戶端透過URL向HTTP服務端即WEB伺服器傳送所有請求。

我們以存取百度為例:


快速了解HTTP和HTTPS協定!
存取百度流程

4.HTTP特點

  • #http協定支援客戶端/服務端模式,也是一種請求/回應模式的協議。

  • 簡單快速:客戶向伺服器要求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。

  • 靈活:HTTP允許傳輸任意類型的資料物件。傳輸的類型由Content-Type加以標記。

  • 無連線:限制每次連線只處理一個請求。伺服器處理完請求,並收到客戶的應答後,即斷開連接,但是卻不利於客戶端與伺服器保持會話連接,為了彌補這種不足,產生了兩項記錄http狀態的技術,一個叫做Cookie,一個叫做Session。

  • 無狀態:無狀態是指協定對於事務處理沒有記憶,後續處理需要前面的訊息,則必須重傳。

5.URI和URL的差異

HTTP使用統一資源識別碼(Uniform Resource Identifiers, URI)來傳輸資料和建立連線。

  • URI:Uniform Resource Identifier 統一資源識別符號

  • URL:Uniform Resource Location 統一資源定位

URI 是用來標示一個具體的資源的,我們可以透過URI 知道一個資源是什麼。

URL 則是用來定位具體的資源的,標示了一個具體的資源位置。網路上的每個檔案都有一個唯一的URL。

6.HTTP封包組成

#請求訊息構成


##1、請求行:包含請求方法、URL、協定/版本


2、請求頭(Request Header)

3、請求正文 快速了解HTTP和HTTPS協定!
請求封包組成

#回應封包構成


1、狀態列


2、回應頭

###3、回應正文###
快速了解HTTP和HTTPS協定!
回應封包組成

#7.常見請求方法

  • #GET:請求指定的頁面訊息,並傳回實體主體。

  • POST:向指定資源提交資料進行處理請求(例如提交表單或上傳檔案)。資料被包含在請求體中。 POST請求可能會導致新的資源的建立和/或已有資源的修改。

  • HEAD:類似於get請求,只不過返回的回應中沒有具體的內容,用於獲取報頭

  • PUT:從客戶端向伺服器傳送的資料取代指定的文件的內容。

  • DELETE:請求伺服器刪除指定的頁面。

get請求

快速了解HTTP和HTTPS協定!
GET請求

post請求

快速了解HTTP和HTTPS協定!
#POST請求

post和get的差異:

  • 都包含請求標頭請求行,post多了請求body。

  • get多用來查詢,請求參數放在url中,不會對伺服器上的內容產生作用。 post用來提交,如把帳號密碼放入body。

  • GET是直接加入到URL後面的,直接就可以在URL中看到內容,而POST是放在封包內部的,使用者無法直接看到。

  • GET提交的資料長度是有限制的,因為URL長度有限制,具體的長度限制視瀏覽器而定。而POST沒有。

8.回應狀態碼

#造訪一個網頁時,瀏覽器會向web伺服器發出請求。此網頁所在的伺服器會傳回一個包含HTTP狀態碼的資訊頭以回應瀏覽器的請求。

狀態碼分類

  • #1XX- 訊息型,伺服器收到請求,需要請求者繼續操作。

  • 2XX- 成功型,請求成功收到,理解並處理。

  • 3XX - 重定向,需要進一步的操作以完成請求。

  • 4XX - 用戶端錯誤,請求包含語法錯誤或無法完成請求。

  • 5XX - 伺服器錯誤,伺服器在處理請求的過程中發生了錯誤。

常見狀態碼

  • #200 OK - 客戶端請求成功

  • 301 - 資源(網頁等)被永久轉移到其它URL

  • #302 - 暫時跳轉

  • #400 Bad Request - 客戶端請求有語法錯誤,不能被伺服器所理解

  • 401 Unauthorized - 請求未經授權,這個狀態代碼必須和WWW- Authenticate標頭域一起使用

  • 404 - 請求資源不存在,可能是輸入了錯誤的URL

  • #500 - 伺服器內部發生了不可預期的錯誤

  • 503 Server Unavailable - 伺服器目前無法處理客戶端的請求,一段時間後可能會恢復正常。

9.為什麼要用https?

實際使用中,絕大說的網站現在都採用的是https協議,也是未來網路發展的趨勢。以下是透過wireshark抓取的一個部落格網站的登入請求流程。

快速了解HTTP和HTTPS協定!
部落格登入抓包

可以看到存取的帳號密碼都是明文傳輸, 這樣客戶端發出的請求很容易被不法分子截取利用,因此,HTTP協定不適合傳輸一些敏感訊息,例如:各種帳號、密碼等訊息,使用http協定傳輸隱私資訊非常不安全。

一般http存在以下問題:

  • 要求訊息明文傳輸,容易被竊聽截取。

  • 資料的完整性未校驗,容易被竄改

  • #沒有驗證對方身份,有冒充危險

#10.什麼是HTTPS?

#為了解決上述HTTP存在的問題,就用到了HTTPS。

HTTPS 協定(HyperText Transfer Protocol over Secure Socket Layer):一般理解為HTTP SSL/TLS,透過 SSL憑證驗證伺服器的身份,並為瀏覽器和伺服器之間的通訊進行加密。

那SSL又是什麼?

SSL(Secure Socket Layer,安全通訊端層):1994年為Netscape 所研發,SSL 協定位於TCP/IP 協定與各種應用層協定之間,為數據通訊提供安全支援。

TLS(Transport Layer Security,傳輸層安全性):其前身是SSL,它最初的幾個版本(SSL 1.0、SSL 2.0、SSL 3.0)由網景公司開發,1999年從3.1 開始被IETF 標準化改名,發展至今已經有TLS 1.0、TLS 1.1、TLS 1.2 三個版本。 SSL3.0和TLS1.0由於有安全漏洞,已經很少被使用。 TLS 1.3 改動會比較大,目前仍在草案階段,目前使用最廣泛的是TLS 1.1、TLS 1.2。

SSL發展史(網路加密通訊)

1、1994年NetSpace公司設計SSL協定(Secure Sockets Layout)1.0版本,但未發布。

2、1995年NetSpace發表SSL/2.0版本,很快發現有嚴重漏洞

3、1996年發布SSL/3.0版本,得到大規模應用

#4 、1999年,發布了SSL升級版TLS/1.0版本,目前應用最廣泛的版本

5、2006年和2008年,發布了TLS/1.1版本和TLS/1.2版本

11.瀏覽器在使用HTTPS傳輸資料的流程是什麼?


快速了解HTTP和HTTPS協定!
#HTTPS資料傳輸流程

1 、首先客戶端透過URL存取伺服器建立SSL連線。

2、服務端收到客戶端請求後,會將網站支援的憑證資訊(憑證中包含公鑰)傳送一份給客戶端。

3、客戶端的伺服器開始協商SSL連線的安全等級,也就是資訊加密的等級。

4、用戶端的瀏覽器根據雙方同意的安全等級,建立會話金鑰,然後利用網站的公鑰將會話金鑰加密,並傳送給網站。

5、伺服器利用自己的私鑰解密出會話金鑰。

6、伺服器利用會話金鑰加密與客戶端之間的通訊。

12.HTTPS的缺點

  • #HTTPS協定多次握手,導致頁面的載入時間延長近50% ;

  • HTTPS連線快取不如HTTP高效,會增加資料開銷和功耗;

  • 申請SSL憑證需要錢,功能越強大的證書費用越高。

  • SSL所涉及的安全演算法會消耗 CPU 資源,對伺服器資源消耗較大。

13.總結HTTPS和HTTP的差異

  • ##HTTPS是HTTP協定的安全版本,HTTP協定的資料傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協定進行了加密處理。

  • http和https使用連接方式不同,預設連接埠也不一樣,http是80,https是443。

推薦教學:web伺服器安全性

#

以上是快速了解HTTP和HTTPS協定!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1671
14
CakePHP 教程
1428
52
Laravel 教程
1331
25
PHP教程
1276
29
C# 教程
1256
24
http狀態碼520是什麼意思 http狀態碼520是什麼意思 Oct 13, 2023 pm 03:11 PM

http狀態碼520是指伺服器在處理請求時遇到了一個未知的錯誤,無法提供更具體的資訊。用於表示伺服器在處理請求時發生了一個未知的錯誤,可能是由於伺服器配置問題、網路問題或其他未知原因導致的。通常是由伺服器配置問題、網路問題、伺服器過載或程式碼錯誤等原因導致的。如果遇到狀態碼520錯誤,最好聯絡網站管理員或技術支援團隊以取得更多的資訊和協助。

http狀態碼403是什麼 http狀態碼403是什麼 Oct 07, 2023 pm 02:04 PM

http狀態碼403是伺服器拒絕了客戶端的請求的意思。解決http狀態碼403的方法是:1、檢查身份驗證憑證,如果伺服器要求身份驗證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對IP位址進行了限制,確保客戶端的IP位址被列入白名單或未列入黑名單;3、檢查文件權限設置,如果403狀態碼與文件或目錄的權限設置有關,確保客戶端具有足夠的權限訪問這些文件或目錄等等。

如何使用Nginx Proxy Manager實現HTTPS協定下的反向代理 如何使用Nginx Proxy Manager實現HTTPS協定下的反向代理 Sep 26, 2023 am 08:40 AM

如何使用NginxProxyManager實現HTTPS協定下的反向代理近年來,隨著網際網路的普及和應用場景的多樣化,網站和應用程式的存取方式變得越來越複雜。為了提高網站的存取效率和安全性,許多網站開始採用反向代理來處理使用者的請求。而針對HTTPS協定的反向代理,在保護使用者隱私和確保通訊安全性方面扮演著重要的角色。本文將介紹如何使用NginxProxy

瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 Feb 18, 2024 pm 08:41 PM

掌握HTTP301狀態碼的意思:網頁重定向的常見應用場景隨著網路的快速發展,人們對網頁互動的要求也越來越高。在網頁設計領域,網頁重定向是一種常見且重要的技術,透過HTTP301狀態碼來實現。本文將探討HTTP301狀態碼的意義以及在網頁重新導向中的常見應用場景。 HTTP301狀態碼是指永久重新導向(PermanentRedirect)。當伺服器接收到客戶端發

HTTP 200 OK:了解成功回應的意義與用途 HTTP 200 OK:了解成功回應的意義與用途 Dec 26, 2023 am 10:25 AM

HTTP狀態碼200:探索成功回應的意義與用途HTTP狀態碼是用來表示伺服器回應狀態的數字代碼。其中,狀態碼200表示請求已成功被伺服器處理。本文將探討HTTP狀態碼200的具體意義與用途。首先,讓我們來了解HTTP狀態碼的分類。狀態碼分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的回應。而200是2xx中最常見的狀態碼

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 Sep 12, 2023 pm 01:15 PM

快速應用:PHP非同步HTTP下載多個檔案的實用開發案例分析隨著互聯網的發展,檔案下載功能已成為許多網站和應用程式的基本需求之一。而對於需要同時下載多個檔案的場景,傳統的同步下載方式往往效率低且耗費時間。為此,使用PHP非同步HTTP下載多個檔案成為了越來越常見的解決方案。本文將透過一個實際的開發案例,詳細分析如何使用PHP非同步HTTP

http請求415錯誤解決方法 http請求415錯誤解決方法 Nov 14, 2023 am 10:49 AM

解決方法:1、檢查請求頭中的Content-Type;2、檢查請求體中的資料格式;3、使用適當的編碼格式;4、使用適當的請求方法;5、檢查伺服器端的支援。

See all articles