1. http和https
https的ssl加密是在傳輸層實現的。
(1)http和https的基本概念
http: 超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準(tcp),用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。
https: 是以安全為目標的http通道,簡單講是http的安全版,即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。
(2)http和https的區別?
http傳輸的資料都是未加密的,也就是明文的,網景公司設定了ssl協議來對http協議傳輸的資料進行加密處理,簡單來說https協議是由http和ssl協議構建的可進行加密傳輸和身份認證的網路協議,比http協議的安全性更高。
主要的區別如下:
https協議需要ca證書,費用較高。
http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
使用不同的鏈結方式,埠也不同,一般而言,http協議的埠為80,https的埠為443
http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。
(3)https協議的工作原理
客戶端在使用https方式與web伺服器通訊時有以下幾個步驟,如圖所示。
客戶使用https url訪問伺服器,則要求web 伺服器建立ssl鏈結。
web伺服器接收到客戶端的請求之後,會將**的證書(證書中包含了公鑰),返回或者說傳輸給客戶端。
客戶端和web伺服器端開始協商ssl鏈結的安全等級,也就是加密等級。
客戶端瀏覽器通過雙方協商一致的安全等級,建立會話金鑰,然後通過**的公鑰來加密會話金鑰,並傳送給**。
web伺服器通過自己的私鑰解密出會話金鑰。
web伺服器通過會話金鑰加密與客戶端之間的通訊。
(4)https協議的優點
使用https協議可認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;
https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全,可防止資料在傳輸過程中不被竊取、改變,確保資料的完整性。
https是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
谷歌曾在2023年8月份調整搜尋引擎演算法,並稱「比起同等http**,採用https加密的**在搜尋結果中的排名將會更高」。
(5)https協議的缺點
https握手階段比較費時,會使頁面載入時間延長50%,增加10%~20%的耗電。
https快取不如http高效,會增加資料開銷。
ssl證書也需要錢,功能越強大的證書費用越高。
ssl證書需要繫結ip,不能再同乙個ip上繫結多個網域名稱,ipv4資源支援不了這種消耗。
2. tcp三次握手,一句話概括
客戶端和服務端都需要直到各自可收發,因此需要三次握手。
簡化三次握手:
3. tcp和udp的區別
(1)tcp是面向連線的,udp是無連線的即傳送資料前不需要先建立鏈結。
(2)tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,即不保證可靠交付。 並且因為tcp可靠,面向連線,不會丟失資料因此適合大資料量的交換。
(4)tcp只能是1對1的,udp支援1對1,1對多。
(5)tcp的首部較大為20位元組,而udp只有8位元組。
(6)tcp是面向連線的可靠性傳輸,而udp是不可靠的。
4. websocket的實現和應用
(1)什麼是websocket?
websocket是html5中的協議,支援持久連續,http協議不支援永續性連線。http1.0和http1.1都不支援永續性的鏈結,http1.1中的keep-alive,將多個http請求合併為1個
(2)websocket是什麼樣的協議,具體有什麼優點?
http的生命週期通過request來界定,也就是request乙個response,那麼在http1.0協議中,這次http請求就結束了。在http1.1中進行了改進,是的有乙個connection:keep-alive,也就是說,在乙個http連線中,可以傳送多個request,接收多個response。但是必須記住,在http中乙個request只能對應有乙個response,而且這個response是被動的,不能主動發起。
websocket是基於http協議的,或者說借用了http協議來完成一部分握手,在握手階段與http是相同的。我們來看乙個websocket握手協議的實現,基本是2個屬性,upgrade,connection。
基本請求如下:
多了下面2個屬性:
upgrade:websocket
connection:upgrade
告訴伺服器傳送的是websocket
首先補充一下,http和https的區別,相比於http,https是基於ssl加密的http協議
簡要概括:http2.0是基於2023年發布的http1.0之後的首次更新。
提公升訪問速度(可以對於,請求資源所需時間更少,訪問速度更快,相比http1.0)
允許多路復用:多路復用允許同時通過單一的http/2連線傳送多重請求-響應資訊。改善了:在http1.1中,瀏覽器客戶端在同一時間,針對同一網域名稱下的請求有一定數量限制(連線數量),超過限制會被阻塞。
二進位制分幀:http2.0會將所有的傳輸資訊分割為更小的資訊或者幀,並對他們進行二進位制編碼
首部壓縮
伺服器端推送
相容 瀏覽器相容那些事
這段時間,經常會接到很多需要處理瀏覽器相容問題的工作。開個玩笑的說,如果看到乙個人的電腦裝了很多瀏覽器,那麼勇敢地懷疑他的崗位是不是web前端開發吧。有一段時間,我的電腦同時安裝了chrome ff 360 ie 搜狗和yy瀏覽器,另外還有ietester用作除錯不同版本的ie。瀏覽器相容一事是前端...
手機瀏覽器與我的那些事(三)
最近一直在學習,cordova與vue的結合 cordova與ios的結合 原生路由框架 axios的封裝 好多好多 分享下我最開始的一套 感受 對領導莫大的信任感覺到熱 lei 淚 liu 盈 man 眶 mian 只有2周,當然2週是開發時間,自動算上周末14天 動手前的想法 1.1介面的切換用...
手機瀏覽器與我的那些事(五)
1.建立專案 cordova create testcordovaproject com.catchzeng.testcordova testcordova 引數說明 2.新增平台 cd testcordovaproject sudo cordova platform add ios新增成功後可在專...