-
Http協議與Https協議
-
HTTP:是互聯網上應用最為廣泛的一種網路協議,是一個客戶端和服務器端請求和應答的標準(TCP),用于從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少,
-
HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL,
-
HTTPS協議的主要作用可以分為兩種:一種是建立一個資訊安全通道,來保證資料傳輸的安全;另一種就是確認網站的真實性,
-
HTTP協議傳輸的資料都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私資訊非常不安全,為了保證這些隱私資料能加密傳輸,于是網景公司設計了SSL(Secure Sockets Layer)協議用于對HTTP協議傳輸的資料進行加密,從而就誕生了HTTPS,
-
HTTPS和HTTP的區別主要如下:
1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用,
2、http是超文本傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議,
3、http和https使用的是完全不同的連接方式,用的埠也不一樣,前者是80,后者是443,
4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全,
-
Https的優點:
-
使用HTTPS協議可認證用戶和服務器,確保資料發送到正確的客戶機和服務器;
(2)HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全,可防止資料在傳輸程序中不被竊取、改變,確保資料的完整性,
(3)HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本,
(4)谷歌曾在2014年8月份調整搜索引擎演算法,并稱“比起同等HTTP網站,采用HTTPS加密的網站在搜索結果中的排名將會更高”,
-
缺點:
-
(1)HTTPS協議握手階段比較費時,會使頁面的加載時間延長近50%,增加10%到20%的耗電;
(2)HTTPS連接快取不如HTTP高效,會增加資料開銷和功耗,甚至已有的安全措施也會因此而受到影響;
(3)SSL證書需要錢,功能越強大的證書費用越高,個人網站、小網站沒有必要一般不會用,
(4)SSL證書通常需要系結IP,不能在同一IP上系結多個域名,IPv4資源不可能支撐這個消耗,
(5)HTTPS協議的加密范圍也比較有限,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用,最關鍵的,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下,中間人攻擊一樣可行,
-
-
-
Tcp/IP協議
-
它只是利用 IP 進行通信時所必須用到的協議群的統稱,具體來說,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都屬于 TCP/IP 協議,他們與 TCP 或 IP 的關系緊密,是互聯網必不可少的組成部分,TCP/IP 一詞泛指這些協議,因此,有時也稱 TCP/IP 為網際協議群,
互聯網進行通信時,需要相應的網路協議,TCP/IP 原本就是為使用互聯網而開發制定的協議族,因此,互聯網的協議就是 TCP/IP,TCP/IP 就是互聯網的協議,
-

三握四揮
-
-
認位ACK:當ACK=1時,確認號ack才生效,
-
確認號ack:期望收到的下一個報文段的第一個資料位元組的序號,
-
同時選擇一個初始序列號seq=x;
-

-
-
四次揮手
-
段首部的終止控制位FIN=1,序號seq=u
-

-
:為什么A要等待2MSL的時間?
-
-
為了保證A發送的最后一個報文段能夠到達B,因為這個 ACK 有可能丟失,從而導致處在 LAST-ACK 狀態的服務器收不到對 FIN-ACK 的確認報文,服務器會超時重傳這個 FIN-ACK,接著客戶端再重傳一次確認,重新啟動時間等待計時器,最后客戶端和服務器都能正常的關閉,假設客戶端不等待 2MSL,而是在發送完 ACK 之后直接釋放關閉,一旦這個 ACK 丟失的話,服務器就無法正常的進入關閉連接狀態,
-
可以防止已失效的報文段,客戶端在發送最后一個 ACK 之后,再經過經過 2MSL,就可以使本連接持續時間內所產生的所有報文段都從網路中消失,從保證在關閉連接后,不會有仍在網路中滯留的報文段去騷擾服務器,
-
為什么建立連接三次,斷開連接四次?
-
因為建立連接時,服務器的確認 ACK 和請求同步 SYN 可以放在一個報文里,而斷開連接時,服務器可能還有資料要傳送,因此,必須先發一個客戶端斷開連接請求的確認 ACK,以免客戶端超時重傳,待服務器的資料傳送完畢后,再發送一個請求斷開連接的報文段,
-
斷開時次數比連接多一次,是因為連接程序,通信只需要處理「連接」,而斷開程序,通信需要處理「資料+連接」,
-
為什么要四次揮手?
注:TCP 是全雙工通信,因此必須兩個方向分別斷開連接
-
A 向 B 發送一個連接釋放請求報文,代表 A 的資料傳送完了,請求釋放連接;
-
B 收到后,B 立即向 A 發送一個確認報文,代表 B 已經知道 A 沒有資料要傳送了,但是 B 可能還有資料要向 A 傳送;
-
B 的資料傳送完后,向 A 發送一個連接釋放請求報文,代表 B 的資料也傳送完了,請求釋放連接;
-
A 收到后,也立即向 B 發送一個確認報文,同時等待 2MSL 后,連接斷開,
-
-
長短連接
-
實質上是TCP協議的長連接和短連接
-
HTTP屬于應用層協議,在傳輸層使用TCP協議,在網路層使用IP協議,
-
IP協議主要解決網路路由和尋址問題,TCP協議主要解決如何在IP層之上可靠的傳遞資料包,使在網路上的另一端收到發端發出的所有包,并且順序與發出順序一致,
-
TCP有可靠,面向連接的特點,
-
在HTTP/1.0中,默認使用的是短連接,
-
也就是說,瀏覽器和服務器每進行一次HTTP操作,就建立一次連接,但任務結束就中斷連接,
如果客戶端訪問的某個HTML或其他型別的Web資源,如JavaScript檔案、影像檔案、CSS檔案等,
當瀏覽器每遇到這樣一個Web資源,就會建立一個HTTP會話,
-
-
但從HTTP/1.1起,默認使用長連接,用以保持連接特性,
-
在使用長連接的情況下,當一個網頁打開完成后,客戶端和服務器之間用于傳輸HTTP資料的 TCP連接不會關閉,
如果客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經建立的連接,
-
-
長連接短連接區別:
-
1.服務器端空間管理上:
Keep-Alive不會永久保持連接,因為TCP連接將會越來越多,直到把服務器的TCP連接數量撐爆到上限為止,它有一個保持時間,可以在不同的服務器軟體(如Apache)中設定這個時間;
短連接對于服務器來說管理較為簡單,存在的連接都是有用的連接,不需要額外的控制手段,
-
2.時間上:
-
在客戶請求頻繁的情況下:若使用短連接,將在TCP的建立和關閉操作上浪費時間和帶寬;
若使用長連接,就可以節省很多這樣的消耗;
-
-
-
長連接有兩個問題:
a.HTTP 1.1 基于串行檔案傳輸資料,因此這些請求必須是有序的,所以實際上我們只是節省了建立連接的時間,而獲取資料的時間并沒有減少
b.最大并發數問題,假設我們在 Apache 中設定了最大并發數 300,而因為瀏覽器本身的限制,最大請求數為 6,那么服務器能承載的最高并發數是 50
對稱加密和非對稱加密
-
非對稱加密:
-
用公鑰加密用私鑰解密
-
b.加密、解密相對于對稱加密效率更低,但是比對稱加密更安全,
-
公鑰可能被中間人偽造,造成資料不安全,
-

-
-
Https
-
-
總結:
-
對稱加密的效率最高
-
數字證書、對稱加密由于效率比較低適合做身份驗證
-
https底層用的還是對稱加密傳輸資料,所謂的數字證書、非對稱加密都是為了驗證對方的身份,
-
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292000.html
標籤:其他

