前端高頻面試題2:瀏覽器/計算機網絡

?本專欄相關鏈接

前端高頻面試題1:HTML/CSS

前端高頻面試題2:瀏覽器/計算機網絡

前端高頻面試題3:JavaScript


?1.什么是強緩存、協商緩存??

  • 強緩存: 當瀏覽器請求資源時,首先檢查本地緩存是否命中。如果命中,則直接從緩存中讀取資源,無需向服務器發送任何請求。(返回200)

  • 協商緩存: 當強緩存未命中時,瀏覽器會向服務器發送請求,詢問服務器資源是否發生變化。如果服務器告知資源未改變,則瀏覽器從緩存中讀取資源;如果服務器告知資源已改變,則瀏覽器會下載新資源并更新緩存。(返回304)

?2.Cookie、Session、LocalStorage、SessionStorage的區別

  • Cookie:

    • 存儲位置:Cookie存儲在客戶端的瀏覽器中。

    • 生命周期:Cookie可以設置過期時間(Expires或Max-Age),到期后自動刪除;若未設置過期時間,則為會話級(瀏覽器關閉后清除)。

    • 容量限制:一般大小限制為4KB左右。

    • 使用場景:主要用于用戶身份認證(如記住登錄狀態)、保存用戶偏好設置和跟蹤用戶行為(如廣告點擊記錄)。

    • 安全性:容易被劫持(如XSS攻擊),可以通過設置HttpOnly和Secure屬性提高安全性。

    • 登錄狀態:可以在用戶未登錄時使用。

    • 跨頁面:可以跨多個頁面和不同子域共享。

    • 傳輸數據:每次請求都會攜帶 Cookie 數據。

  • Session:

    ??高安全性場景:適用于需要保護敏感數據的場景,如在線銀行、支付系統等。

    • 存儲位置:Session存儲在服務端,服務器為每一個用戶創建唯一的會話(Session)。

    • 生命周期:Session存在于用戶活動的會話期間,當用戶退出或者關閉瀏覽器,會話數據就會被刪除。

    • 容量限制:取決于服務器配置。

    • 使用場景:用戶會話管理:用于存儲用戶的會話信息,如購物車數據、用戶權限等。

    • 安全性:相對安全,通過加密的 Session ID 進行識別和驗證,且客戶端不可見。

    • 登錄狀態:需要用戶登錄后才能創建和訪問會話數據。

    • 跨頁面:通常只能在單個會話期間。

    • 傳輸數據:僅在初始會話時傳輸 Session ID,后續請求不再攜帶全部會話數據。

  • LocalStorage:

    ??前端緩存:用于緩存大量數據,提高應用性能和用戶體驗。

    • 存儲位置:存儲在客戶端,瀏覽器內。

    • 生命周期:持久性存儲,除非手動刪除,否則永久有效。

    • 容量限制:一般為 5-10MB,各瀏覽器可能不同。

    • 使用場景:長期數據存儲:適用于存儲長期有效的數據,如用戶偏好設置、瀏覽歷史等。

    • 安全性:易受 XSS 攻擊,數據存儲在客戶端。

    • 登錄狀態:需要用戶登錄后才能創建和訪問會話數據。

    • 跨頁面:可以在同一域下的所有頁面中共享數據。

    • 傳輸數據:不隨請求發送,僅在客戶端存儲和訪問。

  • SessionStorage:

    ??多標簽頁數據隔離:在同一域名下的不同標簽頁之間實現數據隔離,防止數據污染。

    • 存儲位置:存儲在客戶端,瀏覽器內。

    • 生命周期:會話級別,瀏覽器關閉或標簽頁關閉后失效。

    • 容量限制:一般為 5-10MB,各瀏覽器可能不同。

    • 使用場景:臨時數據存儲:適用于存儲會話級別的數據,如表單數據、頁面狀態等。

    • 安全性:易受 XSS 攻擊,數據存儲在客戶端。

    • 登錄狀態:需要用戶登錄后才能創建和訪問會話數據。

    • 跨頁面:手動新建標簽頁無法共享數據,通過鏈接打開新頁面會復制一套原有數據,但與原數據是獨立的。

    • 傳輸數據:不隨請求發送,僅在客戶端存儲和訪問。

3.?輸入一個URL到頁面過程中發生了什么

  1. 通過 DNS 解析域名的實際 IP 地址

  2. 檢查瀏覽器是否有緩存,命中則直接取本地磁盤的 html,如果沒有命中強緩存,則會向服務器發起請求(先進行下一步的 TCP 連接)

  3. 若強緩存和協商緩存都沒有命中,則返回請求結果

  4. 然后與 WEB 服務器通過三次握手建立 TCP 連接。期間會判斷一下,若協議是 https 則會做加密,如果不是,則會跳過這一步

  5. 加密完成之后,瀏覽器發送請求獲取頁面 html,服務器響應 html,這里的服務器可能是 server、也可能是 cdn

  6. 接下來是瀏覽器解析 HTML,開始渲染頁面

    1. 構建DOM樹:詞法分析然后解析成DOM樹(dom tree),是由dom元素及屬性節點組成,樹的根是document對象

    2. 構建CSS規則樹:生成CSS規則樹(CSS Rule Tree)

    3. 構建render樹:Web瀏覽器將DOM和CSSOM結合,并構建出渲染樹(render tree)

    4. 布局(Layout):計算出每個節點在屏幕中的位置

    5. 繪制(Painting):即遍歷render樹,并使用UI后端層繪制每個節點。

4. DNS解析的過程?

  1. 瀏覽器緩存:瀏覽器首先檢查自身緩存是否有該域名的IP記錄,若有則直接使用。

  2. 系統緩存與Hosts文件:若瀏覽器無緩存,操作系統檢查本地緩存(如Windows的DNS緩存)及Hosts文件,存在記錄則返回。

  3. 本地DNS服務器查詢:

    1. 用戶配置的本地DNS服務器(如ISP提供的或公共DNS)接收遞歸查詢請求。

    2. 若本地DNS有緩存且未過期,直接返回IP;否則開始迭代查詢。

  4. 根域名服務器指引:本地DNS向根服務器查詢,根服務器返回管理該頂級域(如.com)的頂級域名服務器地址。

  5. 頂級域名服務器指引:本地DNS詢問頂級服務器(如.com服務器),獲取管理目標域(如example.com)的權威服務器地址。

  6. 權威域名服務器解析:本地DNS向權威服務器查詢,獲得域名對應的IP(如www.example.com的A記錄),并緩存結果。

  7. 結果返回與緩存:本地DNS將IP返回給用戶,瀏覽器緩存該記錄,后續請求可快速響應。?

5.Cookie有哪些配置項?

1.名稱和值(Name and Value)

每個Cookie都有一個名稱和值,名稱和值由服務器設置,并在發送給客戶端時存儲在瀏覽器中。

document.cookie = "username=JohnDoe";

2.域(Domain)

指定Cookie所屬的域。默認情況下,Cookie屬于創建它的域。

document.cookie = "username=JohnDoe; domain=example.com";

3.路徑(Path)

指定Cookie的有效路徑。只有在該路徑下的頁面才能訪問Cookie。

document.cookie = "username=JohnDoe; path=/account";

4.有效期(Expires)

指定Cookie的過期時間。可以設置為特定的日期和時間,超過這個時間后,Cookie將被刪除。

document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT";

5.最大年齡(Max-Age)

指定Cookie從創建開始的有效時間,以秒為單位。這個屬性比expires屬性更精確。

document.cookie = "username=JohnDoe; max-age=3600";

6.安全性(Secure)

指定Cookie只能通過HTTPS協議發送,確保數據傳輸的安全性。

document.cookie = "username=JohnDoe; secure";

7.HttpOnly

指定Cookie只能通過HTTP協議訪問,客戶端JavaScript無法訪問,增加安全性,防止跨站腳本攻擊(XSS)。

document.cookie = "username=JohnDoe; HttpOnly";

8.SameSite

指定Cookie的SameSite屬性,防止跨站請求偽造(CSRF)攻擊。取值可以是StrictLaxNone

document.cookie = "username=JohnDoe; SameSite=Strict";

6.常見的瀏覽器狀態碼有哪些

  • 200 OK??:請求成功,服務器成功處理了請求
  • ??201 Created??:請求成功,并在服務器創建了新的資源
  • ??301 Moved Permanently??:請求的資源已永久移動到新位置(客戶端應使用新URI進行后續請求,如網站域名永久更改)
  • ??302 Found??:請求的資源臨時移動到另一個位置(客戶端應使用新URI進行本次請求,但后續請求可能使用原URI,如臨時維護重定向)
  • ??303 See Other??:服務器指示客戶端通過GET方法在另一個URI獲取資源(常用于POST請求后的重定向,如提交表單后跳轉到結果頁面)
  • ??304 Not Modified??:資源未修改,客戶端可使用緩存版本(用于條件GET請求,如瀏覽器緩存有效時)
  • ??400 Bad Request??:請求語法錯誤(多為傳參形式錯誤)
  • ??401 Unauthorized??:請求需要用戶身份認證(未登錄)
  • ??403 Forbidden??:無訪問權限
  • ??404 Not Found??:請求資源不存在
  • ??405 Method Not Allowed??:請求方式不被允許(如使用Post請求一個Get請求)
  • ??500 Internal Server Error??:服務器內部錯誤
  • ??502 Bad Gateway??:服務器作為網關或代理,上游服務器無法收到響應(如后臺通過nginx代理,但后臺服務沒有啟動)
  • ??503 Service Unavailable??:服務器暫時無法處理請求(通常由于過載或維護,客戶端可稍后重試,如服務器重啟中)

?7.什么是瀏覽器的重繪、重排(回流)

  • 重繪:重繪是指當元素樣式發生改變,但不影響布局,瀏覽器重新繪制元素的過程。如改變元素的color、background、box-shadow等屬性。

  • 重排(回流):重排是指元素的布局屬性發生變化,需要重新計算元素在瀏覽器中的位置,瀏覽器重新進行布局的過程。如元素寬高度、位置、增刪元素等。

8.GET和POST請求的區別

  • 區別點

    • GET請求會被瀏覽器主動緩存,POST不會;

    • GET在瀏覽器回退不會再次請求,POST會再次提交請求;

    • GET請求參數會被完整保留在瀏覽器歷史記錄里,POST中的參數不會;

    • GET請求能由瀏覽器自動發起(請求image等),POST不能;

    • GET參數放于URL中,POST通常放于Request Body中。

  • 相同點

    • 都不安全,基于http明文傳輸(可自行進行加密處理);

    • 參數沒有大小限制,但URL有長度限制。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82860.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82860.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82860.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MATLAB-電偶極子所產出的電磁場仿真

% 清除工作區 clear all % 用戶輸入 a input(輸入點電荷的位置如[1,0,1;2,0,2]表示位置在(1,0,1),(2,0,2): ); Q input(輸入點電荷的電荷量,-表示電性,如[1,-1]: ); a1 input(電場線角度間隔: ); % 角度間隔 % 設置繪圖范圍 xmin min(a(:,1)) - 4;…

混合云數據庫連接問題:本地與云實例的兼容性挑戰

關鍵詞:混合云數據庫,混合云架構,數據庫連接問題,網絡策略,兼容性挑戰,權限沖突,防火墻,VPN,ExpressRoute,Direct Connect,SQL Server,MySQL,PostgreSQL,Azure SQL Database,AWS RDS 隨著企業數字化轉型的深入,混合云架構正成為主流選擇。它結合了本地數據中心…

pikachu靶場通關筆記16 CSRF關卡02-CSRF(POST)

目錄 一、CSRF原理 二、源碼分析 三、滲透實戰 1、構造CSRF鏈接 (1)登錄 (2)bp設置inception on (3)修改個人信息 (4)構造CSRF鏈接 2、模擬受害者登錄 3、誘導受害者點擊 …

CAD2025安裝教程與資源下載

軟件下載 軟件名稱:CAD2025軟件語言:簡體中文軟件大小:2.69G系統要求:Windows10或更高,32/ 64位操作系統硬件要求:CPU2GHz ,RAM4G或更高下載鏈接: 鏈接:https://pan.qua…

SpringBoot離線應用的5種實現方式

在當今高度依賴網絡的環境中,離線應用的價值日益凸顯。無論是在網絡不穩定的區域運行的現場系統,還是需要在斷網環境下使用的企業內部應用,具備離線工作能力已成為許多應用的必備特性。 本文將介紹基于SpringBoot實現離線應用的5種不同方式。…

數據類型 -- 字符

在C中,字符型(char)用于存儲單個字符,如字母、數字、符號等。字符型是最基本的數據類型之一,常用于處理文本、字符數組(字符串)等場景。 1. 基本類型 ? char:標準字符類型&#x…

國標GB28181視頻平臺EasyGBS視頻實時監控系統打造換熱站全景可視化管理方案

一、方案背景? 在城市供熱體系中,換熱站作為連接熱源與用戶的核心樞紐,其運行穩定性直接影響供熱質量。面對供熱規模擴大與需求升級,傳統人工巡檢模式暴露出效率低、響應慢、監測不足等問題。基于GB28181協議的EasyGBS視頻實時監控系統&…

174頁PPT家居制造業集團戰略規劃和運營管控規劃方案

甲方集團需要制定一個清晰的集團價值定位,從“指引多元”、“塑造 能力”以及“強化協同”等方面引領甲方做大做強 集團需要通過管控模式、組織架構及職能、授權界面、關鍵流程、戰略 實施和組織演進路徑,平衡風險控制和迅速發展,保證戰略落地…

python打卡第45天

tensorboard的發展歷史和原理 一、發展歷史 起源與 TensorFlow 一同誕生 (2015年底): TensorBoard 最初是作為 TensorFlow 開源項目(2015年11月發布)的一部分而設計和開發的。其核心目標是解決深度學習模型訓練過程中的“黑盒”問題,提供直觀…

CentOS 7如何編譯安裝升級gcc至7.5版本?

CentOS 7如何編譯安裝升級gcc版本? 由于配置CentOS-SCLo-scl.repo與CentOS-SCLo-scl-rh.repo后執行yum install -y devtoolset-7安裝總是異常,遂決定編譯安裝gcc7.5 # 備份之前的yum .repo文件至 /tmp/repo_bak 目錄 mkdir -p /tmp/repo_bak && cd /etc…

中山大學美團港科大提出首個音頻驅動多人對話視頻生成MultiTalk,輸入一個音頻和提示,即可生成對應唇部、音頻交互視頻。

由中山大學、美團、香港科技大學聯合提出的MultiTalk是一個用于音頻驅動的多人對話視頻生成的新框架。給定一個多流音頻輸入和一個提示,MultiTalk 會生成一個包含提示所對應的交互的視頻,其唇部動作與音頻保持一致。 相關鏈接 論文:https://a…

iOS 門店營收表格功能的實現

iOS 門店營收表格功能實現方案 核心功能需求 數據展示:表格形式展示門店/日期維度的營收數據排序功能:支持按營收金額、增長率等排序篩選功能:按日期范圍/門店/區域篩選交互操作:點擊查看詳情、數據刷新數據可視化:關…

怎么解決cesium加載模型太黑,程序崩潰,不顯示,位置不對模型太大,Cesium加載gltf/glb模型后變暗

有時候咱們cesium加載模型時候型太黑,程序崩潰,不顯示,位置不對模型太大怎么辦 需要處理 可以聯系Q:424081801 謝謝 需要處理 可以聯系Q:424081801 謝謝

移植driver_monitoring_system里的MobileNet到RK3588

根據下面的內容寫一篇技術博客,要求增加更多的解釋,讓普通讀者也能了解為什么這樣做,具體怎么做 移植driver_monitoring_system里的MobileNet到RK3588 一、背景二、操作步驟2.1 下載源碼2.2 Tensorflow轉成ONNX2.2.1 在x86上創建容器,安裝依賴2.2.2 保存為saved-model2.2.3 sav…

低代碼平臺前端頁面表格字段綁定與后端數據傳輸交互主要有哪些方式?華為云Astro在這方面有哪些方式?

目錄 ?? 一、低代碼平臺中常見的數據綁定與交互方式 1. 接口綁定(API 調用) 2. 數據源綁定(DataSource) 3. 變量中轉(臨時變量 / 頁面狀態) 4. 數據模型綁定(模型驅動) ?? 二、華為云 Astro 輕應用的實現方式 ? 1. 數據源綁定(API服務+API網關) ? 2. 變…

《doubao-lite-32k 模型緩存機制使用指南》

doubao-lite-32k 模型緩存機制使用指南 一、緩存概述 1. 緩存作用 doubao-lite-32k 模型的緩存(Session 緩存)主要用于多輪對話場景,實現以下功能: 存儲歷史對話信息(Token),避免重復傳輸上下文,減少計算資源消耗。 優化長上下文(最長 32K Token)處理效率,提升多…

量子計算突破:新型超導芯片重構計算范式

??2024年IBM 1281量子比特超導芯片實現0.001%量子錯誤率,計算速度達經典超算2.5億倍??。本文解析: ??物理突破??:鉭基超導材料使量子相干時間突破??800μs??(提升15倍)??架構革命??:十字形…

云計算 Linux Rocky day03(which、快捷鍵、mount、家目錄、ls、alias、mkdir、rm、mv、cp、grep)

云計算 Linux Rocky day03(which、快捷鍵、mount、家目錄、ls、alias、mkdir、rm、mv、cp、grep) 目錄 云計算 Linux Rocky day03(which、快捷鍵、mount、家目錄、ls、alias、mkdir、rm、mv、cp、grep)1.which找到命令所對應的程序…

負載均衡LB》》HAproxy

Ubuntu 22.04 安裝HA-proxy 官網 資料 # 更新系統包列表: sudo apt update # 安裝 HAproxy sudo apt install haproxy -y # 驗證安裝 haproxy -v # 如下圖配置 Haproxy ##### 基于IP的訪問控制 acl ctrl_ip src 172.25.254.1 172.25.254.20 192.168.0.0/24 #…

輕創業技術方案:基于格行雙目攝像頭的代理系統設計!低成本創業項目有哪些?2025輕資產創業項目排行榜前十名!0成本創業項目推薦!格行代理項目靠譜嗎?

沒本金,沒資源,沒人脈,想掙錢且有持續穩定的現金流,只有一條路就是輕創業!這里說個表哥的真實創業故事。 我表哥90后,普通農村人,中專畢業跟朋友一起外出打工,剛開始也是吃喝玩樂不…