前端常见知识点二之浏览器
生活随笔
收集整理的這篇文章主要介紹了
前端常见知识点二之浏览器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前端常見知識點之瀏覽器
目錄
- 前端常見知識點之瀏覽器
- 1.web Quality(無障礙)
- 2.幾個實用的BOM對象方法
- 3. cookie、sessionStroage、localStroage的區別
- 4.cookie和[session](https://zhuanlan.zhihu.com/p/88499420)的區別
- 5.描述一下XSS和CSRF攻擊?如何防御?
- 6.click在ios上有300ms延遲,原因及如何解決
- 7.addEventListener參數
- 8.前端優化
- 9.在地址欄里輸入一個URL,到頁面呈現,中間會發生什么?
- 10.Event loop(事件輪詢)
1.web Quality(無障礙)
能夠被殘障人士使用的網站稱得上一個易用的(易訪問的)網站
使用alt屬性:
有時候瀏覽器無法顯示圖像,alt會發揮它的作用:
- 用戶關閉了圖像顯示
- 不支持顯示圖形的迷你瀏覽器
- 瀏覽器是語音瀏覽器(供盲人和弱勢群體使用)
如果您使用了alt屬性,那么瀏覽器至少可以顯示或讀出有關圖像的描述。
2.幾個實用的BOM對象方法
BOM–瀏覽器對象。
location.href-- 返回或設置文檔的URl
location.search-- 返回URL中的查詢字符串部分(?id=5&name=xxx)
location.hash-- 返回URl中#后面的內容(#/discover/playlist/?cat=xx")
location.host-- 返回域名部分
location.hostname-- 返回域名部分不包含端口
location.pathname-- 返回URL域名后的部分
location.port-- 返回URL中的端口部分
location.protocol-- 返回協議部分
location.assign-- 設置當前文檔的URL
location.replace()-- 設置當前文檔的URL,并且在history對象的地址列表中移除
location.reload()-- 重載當前頁面
history.go()-- 前進或后退指定頁面數3.
history.back()-- 后退一頁
history.forward()-- 前進一頁
navigator.userAgent-- 返回用戶胡代理 頭的字符串表示(就是包括瀏覽器版本信息等字符串)
navigator.cookieEnabled— 返回瀏覽器是否啟用cookie
3. cookie、sessionStroage、localStroage的區別
- 共同點:都是保存在瀏覽器,并且是同源的
- cookie:cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞。而sessionStorage和localStorage不會自動把數據發送給服務器,僅在本地保存。cookie數據還有路徑(path)的概念。可以限制cookie只屬于某個路徑下,存儲大小很小只有4k左右。key:可以在瀏覽器和服務器來回傳遞,存儲量小,只有大約4k左右。
- sessionStorage: 僅在當前瀏覽器窗口關閉前有效,不能持久保持。localStroage始終有效,窗口關閉或瀏覽器關閉也一直保存。大小都為5M。key:本身就是一個會話過程,關閉瀏覽器后消失,session為一個會話,當頁面不同,即使是同一頁面打開兩次,也被視為同一會話
- localStroage:localStorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。key:同源窗口都會共享,并且不會失效,不管窗口或者瀏覽器關閉與否都會始終生效
- 補充cookie作用:1. 保存用戶登錄狀態。使用戶下次訪問不需要重新登陸。cookie還可以設置過期時間,當超過時間期限后,cookie就會失效。2. 跟蹤用戶行為。cookie能夠2保存用戶的上次的選擇。如果網站提供了換膚或者更換布局的功能,那么可以使用cookie來記錄用戶的選項。例如:背景色、分辨率等。當用戶下次訪問時,仍然可以保存上次訪問的界面風格。
4.cookie和session的區別
5.描述一下XSS和CSRF攻擊?如何防御?
- XSS防御的總體思路:對輸入(和URL參數)進行過濾,對輸出進行編碼,也就是對提交的所有內容進行過濾。對URL中的參數進行過濾,過濾會導致腳本執行的相關內容。然后對動態輸出到頁面的內容進行編碼,使腳本無法在瀏覽器中執行。雖然對輸入過濾可以被繞過,但也還是會攔截很大一部分的xss攻擊。
cookie如何防范xss攻擊?需要在http頭部配置:set-cookie:httponly–這個屬性可以防止xss,它會禁止js腳本來訪問cookie; secure–這個屬性告訴瀏覽器僅在請求為https的時候發送cookie; - 防御CSRF攻擊主要有三種策略:驗證HTTP Referer字段;在本地請求中添加token并驗證;在HTTP頭中自定義屬性并驗證。
6.click在ios上有300ms延遲,原因及如何解決
粗暴型,禁用縮放
<meta name="viewport" content="width=device-width,user-scalable=no"利用FastClick,其原理是:
檢測到touchend事件后,立即發出模擬click時間,并且吧瀏覽器300ms之后真正出現的時間給阻斷掉
7.addEventListener參數
addEventListener(event,function,userCapture)
event指定事件名;function指定要事件觸發時執行的函數;useCapture事件是否在捕獲或者冒泡階段執行。
8.前端優化
降低請求量: 合并資源、減少HTTP請求數、minify/gzip壓縮、webp、lazyload;
加快請求速度:預解析DNS、減少域名數、并行加載、CDN分發;
緩存:HTTP協議緩存請求、離線緩存manifest、離線數據緩存localStrong;
渲染:JS/CSS優化、加載順序、服務端渲染、piprline。
9.在地址欄里輸入一個URL,到頁面呈現,中間會發生什么?
DNS解析 => TCP連接 => 發送HTTP請求 => 服務器處理請求并返回HTTP報文 => 瀏覽器解析渲染頁面 => 連接結束
為了尋找這個ip,瀏覽器首先會尋找緩存,查看緩存中是否有記錄,緩存的查找記錄為:瀏覽器緩存 => 系統緩存 => 路由緩存。緩存中沒有則查找系統的hosts文件中是否有記錄,如果沒有則查詢DNS服務器,得到服務器的IP地址
這個請求報文會包括這次請求的信息,主要是請求方法,請求說明和請求附帶的數據,并將這個http請求封裝在一個tcp包中,這個tcp包會依次經過傳輸層、網絡層、數據鏈路層、物理層到達服務器。
10.Event loop(事件輪詢)
一個程序結構,用來等待、發送,消息和事件。用來協調事件,用戶交互,腳本,渲染,網絡等任務。
- 宏任務:script、定時器、I/O操作、UI渲染
- 微任務:ajax、promise
總結
以上是生活随笔為你收集整理的前端常见知识点二之浏览器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秦皇岛到黄骅港没有直达车去哪倒车去黄骅港
- 下一篇: 前端常见知识点四之webscoket