前端面試筆記 - 網絡

Traditionally, why has it been better to serve site assets from multiple domains?

Do your best to describe the process from the time you type in a website's URL to it finishing loading on your screen.

What are the differences between Long-Polling, Websockets and Server-Sent Events?

Explain the following request and response

headers:web

  • Diff. between Expires, Date, Age and If-Modified-...
  • Do Not Track
  • Cache-Control
  • Transfer-Encoding
  • ETag
  • X-Frame-Options

緩存存儲策略

  • Cache-Control瀏覽器

    • max-age
    • public // 是
    • private //表示是否被代理服務器緩存 否
    • no-cache
    • no-store

緩存過時策略

  • Expires

緩存對比策略

  • REQ ETags, RESP If-None-Match
  • REQ Last-Modified, RESP If-Modified-Since

HTTP1.0 緩存字段詳解

1.Pragma。 設置頁面是否緩存,爲Pragma則緩存,no-cache則不緩存。緩存

  1. Expires。有了Pragma來禁用緩存,天然也須要有個東西來啓用緩存和定義緩存時間。若是Pragma頭部和Expires頭部同時存在,則起做用的會是Pragma。,響應報文中Expires所定義的緩存時間是相對服務器上的時間而言的,其定義的是資源「失效時刻」,若是客戶端上的時間跟服務器上的時間不一致(特別是用戶修改了本身電腦的系統時間),那緩存時間可能就沒啥意義了。

HTTP1.1 緩存字段詳解

  1. Cache-Control: 定義緩存過時時間。若報文中同時出現了 Expires 和 Cache-Control,則以 Cache-Control 爲準。

(1)max-age=600。 表示文件在本地應該緩存,且有效時長是600秒(從發出請求算起)。在接下來600秒內,若是有請求這個資源,瀏覽器不會發出 HTTP 請求,而是直接使用本地緩存的文件。服務器

(2)no-cache。實際上她是會被緩存的,只不過每次在向客戶端(瀏覽器)提供響應數據時,==緩存都要向服務器評估緩存響應的有效性==websocket

(3)no-store
響應不被緩存的意思。網絡

Last-Modified / If-Modified-Since
(1)Last-Modified: 標示這個響應資源的最後修改時間。web服務器在響應請求時,告訴瀏覽器資源的最後修改時間。dom

(2)If-Modified-Since:
當資源過時時(使用Cache-Control標識的max-age),發現資源具備Last-Modified聲明,則再次向web服務器請求時帶上頭 If-Modified-Since,表示請求時間。若服務端請求資源的最後修改時間較新,則響應資源內容(HTTP 200);若最後修改時間較舊,則響應HTTP 304,告知瀏覽器繼續使用所保存的cache。socket

Etag/If-None-Match: Etag/If-None-Match也要配合Cache-Control使用。
(1)Etag: web服務器響應請求時,告訴瀏覽器當前資源在服務器的惟一標識(生成規則由服務器以爲)xss

(2)If-None-Match: 當資源過時時(使用Cache-Control標識的max-age),發現資源具備Etage聲明,則再次向web服務器請求時帶上頭If-None-Match (Etag的值)。服務器與被請求資源的相應校驗串進行比對,決定返回200或304。tcp

既生Last-Modified何生Etag?
HTTP1.1中Etag的出現主要是爲了解決幾個Last-Modified比較難解決的問題:

(1) Last-Modified標註的最後修改只能精確到秒級,若是某些文件在1秒鐘之內,被修改屢次的話,它將不能準確標註文件的修改時間。

(2) 若是某些文件會被按期生成,當有時內容並無任何變化,但Last-Modified卻改變了,致使文件無法使用緩存。

(3) 有可能存在服務器沒有準確獲取文件修改時間,或者與代理服務器時間不一致等情形。

Last-Modified與ETag是能夠一塊兒使用的,服務器會優先驗證ETag,一致的狀況下,纔會繼續比對Last-Modified,最後才決定是否返回304。

What are HTTP methods? List all HTTP methods that you know, and explain them.

HTTP: Status 200 – 服務器成功返回網頁
301 永久轉移
302 臨時轉移
304 not modified
400 bad request
401 not auth
403 forbidden
500 內部錯誤
HTTP: Status 404 – 請求的網頁不存在
HTTP: Status 503 – 服務不可用

https

  1. 服務器向客戶端發送公鑰和證書
  2. 客戶端校驗證書,並生成密碼,用公鑰加密
  3. 服務端解析到密碼後,之後的東西都用這個密碼

想`

http2

  1. 多路複用 容許同時多個請求,http1.1對於同一個域名同時只能有2-8個請求

websocket

是一個基於tcp的網絡協議,實現了服務端與客戶端的互相通信,服務器能夠主動向客戶端通信

xss

跨站腳本攻擊是指服務端未對用戶輸入作驗證
使得HTML直接執行用戶輸入的惡意腳本

csrf

僞造用戶請求,好比訪問a網站以後,用戶訪問了惡意的b網站,b網站迴向a網站發送惡意請求

避免使用get進行敏感操做使用token令牌

相關文章
相關標籤/搜索