由于沒有錄音只記得一小部分,還有一部分是關于專案的,,,,,
1. 設計模式
參考:https://www.cnblogs.com/pony1223/p/7608955.html
https://www.cnblogs.com/pony1223/p/7608955.html
2.從url到頁面呈現
輸入url-->找快取,如果沒有-->查詢DNS服務器得到服務器的IP--->建立TCP連接--->發送HTTP請求--->服務器決議請求,回傳HTTP報文--->瀏覽器渲染頁面
2.1 DNS域名決議具體原理
1.瀏覽器快取:瀏覽器會按照一定的頻率快取DNS記錄,
2. 作業系統快取:如果瀏覽器快取中找不到需要的DNS記錄,那就去作業系統中找,
3. 路由快取:路由器也有DNS快取,
4. ISP的DNS服務器:ISP是互聯網服務提供商(Internet Service Provider)的簡稱,ISP有專門的DNS服務器應對DNS查詢請求,
5. 根服務器:ISP的DNS服務器還找不到的話,它就會向根服務器發出請求,進行遞回查詢(DNS服務器先問根域名服務器.,然后再問頂級域名服務器,之后是權威域名服務器,二級域名服務器,直到查詢到IP地址,瀏覽器接收到IP地址后將其存入快取以便下次使用),
2.2 TCP三次握手
首先客戶端發起會話請求,SYN=1,ACK=0,seq=J;
服務端收到請求后,確認建立會話,將SYN=1,ACK=1,ack=J+1,seq=K并將自己所能接受的最大位元組傳送給客戶端;
客戶端收到后,檢查ACK標志位(確認位)是否為1,以及ack(確認序號)是否正確,正確后設定自己的最大傳輸位元組,然后向服務端發送資料確認,此時ACK=1,ack=K+1,服務端收到后檢驗seq以及ack的值,正確則成功建立會話,后面繼續通信,
2.3 瀏覽器渲染
HTML是個樹形結構,瀏覽器根據這個html來構建DOM樹,再構建DOM樹程序中間如果有遇到js腳本和外部JS連接,會停止構建DOM樹來執行和下載相應的js代碼,因此JS代碼推薦寫在HTML代碼后面,之后根據樣式構建CSSOM樹,構建完之后與DOM合并為渲染樹,之后進行布局,布局主要是確定各個元素的位置和尺寸,之后是渲染頁面,(因為html檔案中會含有圖片,視頻,音頻等資源,在決議DOM的程序中,遇到這些都會進行并行下載,瀏覽器對每個域的并行下載數量有一定的限制,一般是4-6個,當然在這些所有的請求中我們還需要關注的就是快取)
3.TCP四次揮手
第一次:客戶端發送連接釋報文,報文中FIN=1,seq=u,并且停止發送資料此時客戶端進入終止等待1階段,
第二次:服務器收到連接釋放報文,發出確認報文,ACK=1,ack=u+1,seq=v,此時服務器進入關閉等待階段,客戶端收到服務器的確認請求后,進入終止等待2階段,等待服務器發送連接釋放報文,
第三次:服務器將最后的資料發送完畢后,向客戶端發連接送釋放報文,此時服務器進入最后確認狀態,等待客戶端確認,
第四次:客戶端收到服務器連接釋放報文后,發出確認,此時客戶端進入了時間等待階段,等待2MSL時間后關閉,服務器只要收到客戶端發生的確認后就關閉,
4.性能優化
詳細參考:https://www.cnblogs.com/xiaohuochai/p/9178390.html
降低請求量:合并資源,減少HTTP 請求數,minify / gzip 壓縮,webP,lazyLoad,
加快請求速度:預決議DNS,減少域名數,并行加載,CDN 分發,
快取:HTTP 協議快取請求,離線快取 manifest,離線資料快取localStorage,
渲染:JS/CSS優化,加載順序,服務端渲染,pipeline,
5.前端安全性的了解
參考:https://segmentfault.com/a/1190000014839133?utm_source=index-hottest
(1) XSS:XSS是前端談論最多的安全問題,是通過在你的輸入文本當中或者這HTML標簽當中插入js腳本進行攻擊,比如會在你的a標簽或者img標簽之前插入一些腳本檔案就能攻擊到你的網站,所有在用HTML去切入到div的時候一定要注意,或者長串的字串嵌入到a標簽的時候,
解決辦法:
- 瀏覽器禁止頁面的JavaScript訪問帶有set-cookie:httpOnly屬性的cookie
- 如果要使用HTML進行轉換內容的時候,寫代碼時改為innerText而不用innerHTML,或者把<script><iframe>等標簽替換掉;
- 對一些切入標簽的字串進行轉義
(2)CSRF也稱為跨站請求偽造,其實就是對網站中的一些表單提交行為被黑客利用,比如你的網站登錄的時候存到cookie的一些個人資訊,當你訪問黑客的網站有一段相同代碼隱藏div,但你點擊的時候就會導致你的網站被登出或者被登錄,就是在對別的網站就行操作的時候會對你之前訪問的網站發送請求,
解決辦法:
1.增加token驗證.因為cookie發送請求的時候會自動增加上,但是token卻不會,這樣就避免了攻擊
2.Referer驗證,Refer首部包含了當前請求頁面的來源頁面地址,
3. 驗證碼
CSRF攻擊程序中,用戶在不知情的情況下構造了網路請求,添加驗證碼后,強制用戶必須與應用進行互動,但是網站不可能把所有的操作都加上驗證碼
(3)點擊劫持:點擊劫持是一種視覺上的欺騙手段,攻擊者使用一個透明的、不可見的iframe,覆寫在一個網頁上,然后誘使用戶在網頁上進行操作,此時用戶將在不知情的情況下點擊透明的iframe頁面,通過調整iframe頁面的位置,可以誘使用戶恰好點擊在iframe頁面的一些功能性按鈕上,
解決方法:X-Frame-Options HTTP回應頭是用來給瀏覽器指示允許一個頁面能否在<frame>、<iframe>、<object>中展現的標記,有三個可選值:
- DENY:瀏覽器會拒絕當前頁面加載任何frame頁面(即使是相同域名的頁面也不允許)
- SAMEORIGIN:允許加載frame頁面,但是frame頁面的地址只能為同源域名下的頁面
- ALLOW-FROM:可以加載指定來源的frame頁面(可以定義frame頁面的地址
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/27612.html
標籤:其他
下一篇:跨域/DOM
