面試知識 瀏覽器(web)

2022-03-15 08:05:30 字數 2256 閱讀 5686

1.https和http的區別主要如下:

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

2).http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

3).http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。

4).http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

2.http和https的基本概念

http:是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準(tcp),用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。

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

https協議的主要作用可以分為兩種:一種是建立乙個資訊保安通道,來保證資料傳輸的安全;另一種就是確認**的真實性。

3.http和https的主要特點

http特點

1).支援客戶/伺服器模式。(c/s模式)

3).靈活:http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type加以標記。

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

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

https特點

https是http協議的修改,它加密資料並確保其機密性。其配置可保護使用者在與**互動時免於竊取個人資訊和計費資料。

1)、優點

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

2)、缺點

缺點也同樣很明顯,第一https的技術門檻較高,多數個人或者私人**難以支撐,ca機構頒發的證書都是需要年費的,此外對接https協議也需要額外的技術支援;其二,目前來說大多數**並不關心資料的安全性和保密性,其https最大的優點對它來說並不適用;其三,https加重了服務端的負擔,相比於http其需要更多的資源來支撐,同時也降低了使用者的訪問速度;第四,目前來說http**仍然大規模使用,在瀏覽器側也沒有特別大的差別,很多使用者不關心的話根本不感知。

4.http和https的工作流程

http工作流程

第一步:建立tcp/ip連線,客戶端與伺服器通過socket三次握手進行連線

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

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

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

第五步:伺服器向客戶端傳送應答頭資訊

第六步:伺服器向客戶端傳送請求頭資訊後,也會傳送一空白行,標示應答頭資訊傳送完畢,接著就以content-type要求的資料格式傳送資料給客戶端

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

https工作流程

第一步:客戶使用https的url訪問web伺服器,要求與web伺服器建立ssl連線。

第三步:客戶端的瀏覽器與web伺服器開始協商ssl連線的安全等級,也就是資訊加密的等級。

第五步:web伺服器利用自己的私鑰解密出會話金鑰。

第六步:web伺服器利用會話金鑰加密與客戶端之間的通訊。

5.**如何進行效能的優化工作?(主要講述前端)

主要從,dom,css,js 等等方面來考慮

2)、減少dom的操作,比如使用虛擬dom

3)  、減少屬性選擇器,萬用字元選擇器、標籤選擇器的使用;推薦使用類選擇器的使用;從右到左解析瀏覽器;

4)、html的標籤使用更加語義化;

5)、減少http的請求;css sprites雪碧圖,的懶載入來減少的請求;js**的合併;http請求的快取,主要是本地快取localstorage,sessionstorage;

6)、ajax的非同步請求;

7)、 js**的優化技巧應用;

8)、6.

web瀏覽器 vs2019開發web瀏覽器

專案目的是使用vs2019開發乙個簡單瀏覽器,瀏覽器控制項和webform直接可以通過互相通訊 剛開始使用自帶的webbrowser控制項,但是核心是ie,訪問 有各種相容性問題,後來使用webview2,webview2是使用microsoft edge核心 開始使用遇到了幾個問題,記錄一下解決思...

Web瀏覽器指令碼

利用現成的工具 如tampermonkey 使用js語言,利用jquery庫編寫 乙個簡單的指令碼範例 其中主要使用的引數含義分別是 userscript name 指令碼名稱 namespace 指令碼命名空間 預設 version 版本號 description 指令碼描述資訊 author 作...

瀏覽器渲染過程 面試

瀏覽器中位址列中輸入東西後,按下enter鍵,會發生什麼?瀏覽器會判斷輸入的是乙個位址,還是乙個query。這個只說是 的情況。瀏覽器會查詢本地快取的dns列表,以獲取主機位址,若dns快取未命中,則瀏覽器發出請求,進行查詢,查詢之後的結果快取起來。連線主機 傳送請求 獲得乙個伺服器的響應 進行渲染...