'網站中:https和http的主要區別'

HTML 信息安全 瀏覽器 zhinengdianzi 2019-09-15
"

https和http的主要區別

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。

4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

HTTP和HTTPS的基本概念

HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。

HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

HTTPS協議的主要作用可以分為兩種

一種是建立一個信息安全通道,來保證數據傳輸的安全;

另一種就是確認網站的真實性。

http的無狀態以及建立連接方式

1、無狀態:

http協議為了保證服務器的內存,不會維持客戶端發過來的請求,即同一個客戶端的這次請求和上次請求是沒有對應關係,對http服務器來說,它並不知道這兩個請求來自同一個客戶端。例如:一個瀏覽器在短短几秒之內兩次訪問同一對象時,服務器進程不會因為已經給它發過應答報文而不接受第二次服務請求。

為了解決這個問題, Web程序引入了Cookie機制來維護狀態。

2、建立連接方式

HTTP中支持兩種連接方式:非持久連接和持久連接(HTTP1.1默認的連接方式為持久連接)。

1、非持久連接方式

讓我們查看一下非持久連接情況下從服務器到客戶傳送一個Web頁面的步驟。

假設該貝面由1個基本HTML文件和10個JPEG圖像構成,而且所有這些對象都存放在同一臺服務器主機中。再假設該基本HTML文件的URL為:

http://www.baidu.com/cnblogs.com/xxxx-6/index.html。

下面是具體步騾:

1. HTTP客戶初始化一個與服務器主機baidu.com中的HTTP服務器的TCP連接。HTTP服務器使用默認端口號80監聽來自HTTP客戶的連接建立請求。

2. HTTP客戶經由與TCP連接相關聯的本地套接字發出—個HTTP請求消息。這個消息中包含路徑名/xxxx-6/index.html

3. HTTP服務器經由與TCP連接相關聯的本地套接字接收這個請求消息,再從服務器主機的內存或硬盤中取出對象/xxxx-6/index.html,經由同一個套接字發出包含該對象的響應消息。

4. HTTP服務器告知TCP關閉這個TCP連接(不過TCP要到客戶收到剛才這個響應消息之後才會真正終止這個連接)。

5. HTTP客戶經由同一個套接字接收這個響應消息。TCP連接隨後終止。該消息標明所封裝的對象是一個HTML文件。客戶從中取出這個文件,加以分析後發現其中有10個JPEG對象的引用。

6.給每一個引用到的JPEG對象重複步騾1-4。

上述步驟之所以稱為使用非持久連接,原因是每次服務器發出一個對象後,相應的TCP連接就被關閉,也就是說每個連接都沒有持續到可用於傳送其他對象。每個TCP連接只用於傳輸一個請求消息和一個響應消息。就上述例子而言,用戶每請求一次那個web頁面,就產生11個TCP連接。

2、持久連接

非持久連接有一個很大的缺點就是,每一個http請求都需要建立一個TCP連接,就上面的例子而言,get一個html頁面就要建立十一次TCP連接,這是嚴重浪費資源行為!

首先,客戶得為每個待請求的對象建立並維護一個新的連接。對於每個這樣的連接,TCP得在客戶端和服務器端分配TCP緩衝區,並維持TCP變量。對於有可能同時為來自數百個不同客戶的請求提供服務的web服務器來說,這會嚴重增加其負擔。

其次,如前所述,每個對象都有2個RTT的響應延長——一個RTT用於建立TCP連接另—個RTT用於請求和接收對象。最後,每個對象都遭受TCP緩啟動,因為每個TCP連接都起始於緩啟動階段。不過並行TCP連接的使用能夠部分減輕RTT延遲和緩啟動延遲的影響。

【RTT(Round-Trip Time): 往返時延。在計算機網絡中它是一個重要的性能指標,表示從發送端發送數據開始,到發送端收到來自接收端的確認(接收端收到數據後便立即發送確認),總共經歷的時延。】

持久連接就能夠很好解決這一缺點,在持久連接情況下,服務器在發出響應後讓TCP連接繼續打開著。同一對客戶/服務器之間的後續請求和響應可以通過這個連接發送。整個Web頁面(上例中為包含一個基本HTML文件和10個圖像的頁面)自不用說可以通過單個持久TCP連接發送:甚至存放在同一個服務器中的多個web頁面也可以通過單個持久TCP連接發送。

通常,HTTP服務器在某個連接閒置一段特定時間後關閉它,而這段時間通常是可以配置的。

持久連接分為不帶流水線(without pipelining)和帶流水線(with pipelining)兩個版本。

不帶流水線的版本:

客戶只在收到前一個請求的響應後才發出新的請求。這種情況下,web頁面所引用的每個對象(上例中的10個圖像)都經歷1個RTT的延遲,用於請求和接收該對象。與非持久連接2個RTT的延遲相比,不帶流水線的持久連接已有所改善,不過帶流水線的持久連接還能進一步降低響應延遲。不帶流水線版本的另一個缺點是,服務器送出一個對象後開始等待下一個請求,而這個新請求卻不能馬上到達。這段時間服務器資源便閒置了。

帶流水線的持久連接:

HTTP/1.1的默認模式使用帶流水線的持久連接。這種情況下,HTTP客戶每碰到一個引用就立即發出一個請求,因而HTTP客戶可以一個接一個緊挨著發出各個引用對象的請求。服務器收到這些請求後,也可以一個接一個緊挨著發出各個對象。如果所有的請求和響應都是緊挨著發送的,那麼所有引用到的對象一共只經歷1個RTT的延遲(而不是像不帶流水線的版本那樣,每個引用到的對象都各有1個RTT的延遲)。另外,帶流水線的持久連接中服務器空等請求的時間比較少。與非持久連接相比,持久連接(不論是否帶流水線)除降低了1個RTT的響應延遲外,緩啟動延遲也比較小。其原因在於既然各個對象使用同一個TCP連接,服務器發出第一個對象後就不必再以一開始的緩慢速率發送後續對象。相反,服務器可以按照第一個對象發送完畢時的速率開始發送下一個對象。

HTTP和HTTPS的主要特點和工作流程

HTTP特點

1.支持客戶/服務器模式。(C/S模式)

2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。

3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。

5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快

HTTP工作流程

第一步:建立TCP/IP連接,客戶端與服務器通過Socket三次握手進行連接

第二步:客戶端向服務端發起HTTP請求(例如:POST/login.html http/1.1)

第三步:客戶端發送請求頭信息,請求內容,最後會發送一空白行,標示客戶端請求完畢

第四步:服務器做出應答,表示對於客戶端請求的應答,例如:HTTP/1.1 200 OK

第五步:服務器向客戶端發送應答頭信息

第六步:服務器向客戶端發送請求頭信息後,也會發送一空白行,標示應答頭信息發送完畢,接著就以Content-type要求的數據格式發送數據給客戶端

第七步:服務端關閉TCP連接,如果服務器或者客戶端增Connection:keep-alive就表示客戶端與服務器端繼續保存連接,在下次請求時可以繼續使用這次的連接

HTTPS特點

HTTPS是HTTP協議的修改,它加密數據並確保其機密性。其配置可保護用戶在與網站交互時免於竊取個人信息和計費數據。

1、優點

相比於http,https可以提供更加優質保密的信息,保證了用戶數據的安全性,此外https同時也一定程度上保護了服務端,使用惡意攻擊和偽裝數據的成本大大提高。

2、缺點

缺點也同樣很明顯,

第一https的技術門檻較高,多數個人或者私人網站難以支撐,CA機構頒發的證書都是需要年費的,此外對接Https協議也需要額外的技術支持;

其二,目前來說大多數網站並不關心數據的安全性和保密性,其https最大的優點對它來說並不適用;

其三,https加重了服務端的負擔,相比於http其需要更多的資源來支撐,同時也降低了用戶的訪問速度;

第四,目前來說Http網站仍然大規模使用,在瀏覽器側也沒有特別大的差別,很多用戶不關心的話根本不感知。

HTTPS工作流程

"

https和http的主要區別

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。

4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

HTTP和HTTPS的基本概念

HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。

HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。

HTTPS協議的主要作用可以分為兩種

一種是建立一個信息安全通道,來保證數據傳輸的安全;

另一種就是確認網站的真實性。

http的無狀態以及建立連接方式

1、無狀態:

http協議為了保證服務器的內存,不會維持客戶端發過來的請求,即同一個客戶端的這次請求和上次請求是沒有對應關係,對http服務器來說,它並不知道這兩個請求來自同一個客戶端。例如:一個瀏覽器在短短几秒之內兩次訪問同一對象時,服務器進程不會因為已經給它發過應答報文而不接受第二次服務請求。

為了解決這個問題, Web程序引入了Cookie機制來維護狀態。

2、建立連接方式

HTTP中支持兩種連接方式:非持久連接和持久連接(HTTP1.1默認的連接方式為持久連接)。

1、非持久連接方式

讓我們查看一下非持久連接情況下從服務器到客戶傳送一個Web頁面的步驟。

假設該貝面由1個基本HTML文件和10個JPEG圖像構成,而且所有這些對象都存放在同一臺服務器主機中。再假設該基本HTML文件的URL為:

http://www.baidu.com/cnblogs.com/xxxx-6/index.html。

下面是具體步騾:

1. HTTP客戶初始化一個與服務器主機baidu.com中的HTTP服務器的TCP連接。HTTP服務器使用默認端口號80監聽來自HTTP客戶的連接建立請求。

2. HTTP客戶經由與TCP連接相關聯的本地套接字發出—個HTTP請求消息。這個消息中包含路徑名/xxxx-6/index.html

3. HTTP服務器經由與TCP連接相關聯的本地套接字接收這個請求消息,再從服務器主機的內存或硬盤中取出對象/xxxx-6/index.html,經由同一個套接字發出包含該對象的響應消息。

4. HTTP服務器告知TCP關閉這個TCP連接(不過TCP要到客戶收到剛才這個響應消息之後才會真正終止這個連接)。

5. HTTP客戶經由同一個套接字接收這個響應消息。TCP連接隨後終止。該消息標明所封裝的對象是一個HTML文件。客戶從中取出這個文件,加以分析後發現其中有10個JPEG對象的引用。

6.給每一個引用到的JPEG對象重複步騾1-4。

上述步驟之所以稱為使用非持久連接,原因是每次服務器發出一個對象後,相應的TCP連接就被關閉,也就是說每個連接都沒有持續到可用於傳送其他對象。每個TCP連接只用於傳輸一個請求消息和一個響應消息。就上述例子而言,用戶每請求一次那個web頁面,就產生11個TCP連接。

2、持久連接

非持久連接有一個很大的缺點就是,每一個http請求都需要建立一個TCP連接,就上面的例子而言,get一個html頁面就要建立十一次TCP連接,這是嚴重浪費資源行為!

首先,客戶得為每個待請求的對象建立並維護一個新的連接。對於每個這樣的連接,TCP得在客戶端和服務器端分配TCP緩衝區,並維持TCP變量。對於有可能同時為來自數百個不同客戶的請求提供服務的web服務器來說,這會嚴重增加其負擔。

其次,如前所述,每個對象都有2個RTT的響應延長——一個RTT用於建立TCP連接另—個RTT用於請求和接收對象。最後,每個對象都遭受TCP緩啟動,因為每個TCP連接都起始於緩啟動階段。不過並行TCP連接的使用能夠部分減輕RTT延遲和緩啟動延遲的影響。

【RTT(Round-Trip Time): 往返時延。在計算機網絡中它是一個重要的性能指標,表示從發送端發送數據開始,到發送端收到來自接收端的確認(接收端收到數據後便立即發送確認),總共經歷的時延。】

持久連接就能夠很好解決這一缺點,在持久連接情況下,服務器在發出響應後讓TCP連接繼續打開著。同一對客戶/服務器之間的後續請求和響應可以通過這個連接發送。整個Web頁面(上例中為包含一個基本HTML文件和10個圖像的頁面)自不用說可以通過單個持久TCP連接發送:甚至存放在同一個服務器中的多個web頁面也可以通過單個持久TCP連接發送。

通常,HTTP服務器在某個連接閒置一段特定時間後關閉它,而這段時間通常是可以配置的。

持久連接分為不帶流水線(without pipelining)和帶流水線(with pipelining)兩個版本。

不帶流水線的版本:

客戶只在收到前一個請求的響應後才發出新的請求。這種情況下,web頁面所引用的每個對象(上例中的10個圖像)都經歷1個RTT的延遲,用於請求和接收該對象。與非持久連接2個RTT的延遲相比,不帶流水線的持久連接已有所改善,不過帶流水線的持久連接還能進一步降低響應延遲。不帶流水線版本的另一個缺點是,服務器送出一個對象後開始等待下一個請求,而這個新請求卻不能馬上到達。這段時間服務器資源便閒置了。

帶流水線的持久連接:

HTTP/1.1的默認模式使用帶流水線的持久連接。這種情況下,HTTP客戶每碰到一個引用就立即發出一個請求,因而HTTP客戶可以一個接一個緊挨著發出各個引用對象的請求。服務器收到這些請求後,也可以一個接一個緊挨著發出各個對象。如果所有的請求和響應都是緊挨著發送的,那麼所有引用到的對象一共只經歷1個RTT的延遲(而不是像不帶流水線的版本那樣,每個引用到的對象都各有1個RTT的延遲)。另外,帶流水線的持久連接中服務器空等請求的時間比較少。與非持久連接相比,持久連接(不論是否帶流水線)除降低了1個RTT的響應延遲外,緩啟動延遲也比較小。其原因在於既然各個對象使用同一個TCP連接,服務器發出第一個對象後就不必再以一開始的緩慢速率發送後續對象。相反,服務器可以按照第一個對象發送完畢時的速率開始發送下一個對象。

HTTP和HTTPS的主要特點和工作流程

HTTP特點

1.支持客戶/服務器模式。(C/S模式)

2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。

3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。

5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快

HTTP工作流程

第一步:建立TCP/IP連接,客戶端與服務器通過Socket三次握手進行連接

第二步:客戶端向服務端發起HTTP請求(例如:POST/login.html http/1.1)

第三步:客戶端發送請求頭信息,請求內容,最後會發送一空白行,標示客戶端請求完畢

第四步:服務器做出應答,表示對於客戶端請求的應答,例如:HTTP/1.1 200 OK

第五步:服務器向客戶端發送應答頭信息

第六步:服務器向客戶端發送請求頭信息後,也會發送一空白行,標示應答頭信息發送完畢,接著就以Content-type要求的數據格式發送數據給客戶端

第七步:服務端關閉TCP連接,如果服務器或者客戶端增Connection:keep-alive就表示客戶端與服務器端繼續保存連接,在下次請求時可以繼續使用這次的連接

HTTPS特點

HTTPS是HTTP協議的修改,它加密數據並確保其機密性。其配置可保護用戶在與網站交互時免於竊取個人信息和計費數據。

1、優點

相比於http,https可以提供更加優質保密的信息,保證了用戶數據的安全性,此外https同時也一定程度上保護了服務端,使用惡意攻擊和偽裝數據的成本大大提高。

2、缺點

缺點也同樣很明顯,

第一https的技術門檻較高,多數個人或者私人網站難以支撐,CA機構頒發的證書都是需要年費的,此外對接Https協議也需要額外的技術支持;

其二,目前來說大多數網站並不關心數據的安全性和保密性,其https最大的優點對它來說並不適用;

其三,https加重了服務端的負擔,相比於http其需要更多的資源來支撐,同時也降低了用戶的訪問速度;

第四,目前來說Http網站仍然大規模使用,在瀏覽器側也沒有特別大的差別,很多用戶不關心的話根本不感知。

HTTPS工作流程

網站中:https和http的主要區別

第一步:客戶使用https的URL訪問Web服務器,要求與Web服務器建立SSL連接。

第二步:Web服務器收到客戶端請求後,會將網站的證書信息(證書中包含公鑰)傳送一份給客戶端。

第三步:客戶端的瀏覽器與Web服務器開始協商SSL連接的安全等級,也就是信息加密的等級。

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

第五步:Web服務器利用自己的私鑰解密出會話密鑰。

第六步:Web服務器利用會話密鑰加密與客戶端之間的通信。

本文轉自網絡。

"

相關推薦

推薦中...