【面試準備·3】網絡相關

既是拾人牙慧,部分問題就直接放我認爲比較優秀的文章連接了,僅供參考。若是您發現錯誤,請必定要告訴我,拯救一個辣雞(但很帥)的少年就靠您了!html

TCP 和 UDP

TCP和UDP的優缺點及區別前端

  1. TCP 面向鏈接,UDP 是無鏈接的,即發送數據以前不須要創建鏈接。算法

  2. TCP 提供可靠的服務。也就是說,經過TCP鏈接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP 盡最大努力交付,即不保證可靠交付。數據庫

  3. TCP 面向字節流,其實是 TCP 把數據當作一連串無結構的字節流;UDP 是面向報文的。UDP 沒有擁塞控制,所以網絡出現擁塞不會使源主機的發送速率下降(對實時應用頗有用,如 IP 電話,實時視頻會議等)。跨域

  4. 每一條 TCP 鏈接只能是點到點的;UDP 支持一對一,一對多,多對一和多對多的交互通訊。瀏覽器

  5. TCP 首部開銷 20 字節;UDP 的首部開銷小,只有 8 個字節。緩存

  6. TCP 的邏輯通訊信道是全雙工的可靠信道,UDP則是不可靠信道。安全

TCP 三次握手和四次揮手

TCP沒那麼難吧?服務器

什麼是 HTTP

超文本傳輸協議(HyperText Transfer Protocol,HTTP)是一種用於分佈式、協做式和超媒體信息系統的應用層協議。HTTP是萬維網的數據通訊的基礎。cookie

HTTP 狀態碼

1xx:消息,請求已被服務器接收,繼續處理

2xx:成功,請求已成功被服務器接收、理解、並接受

3xx:重定向,須要後續操做才能完成這一請求

4xx:請求錯誤,請求含有詞法錯誤或者沒法被執行

5xx:服務器錯誤,服務器在處理某個正確請求時發生錯誤

HTTP 請求方式

OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE

POSTGET 區別?

HTTP1 和 HTTP2 區別

HTTP1.0、HTTP1.1和HTTP2.0的區別

  • 採用二進制格式(Binary Format)
  • 多路複用(MultiPlexing)
  • header 壓縮
  • 服務端推送(server push)

強緩存與協商緩存

前端優化:瀏覽器緩存技術介紹

關鍵詞: Expires/Cache-Controlpublic/privateno-store/no-cacheLast-Modified/Etag

什麼是 HTTPS?

兩個感性的小故事:HTTPS 的故事一個故事講完https

HTTPS 是 HTTP 的安全版,即 HTTP 下加入 SSL 層。

SSL 協議位於 TCP/IP 協議與各類應用層協議之間,爲數據通信提供安全支持。

SSL協議可分爲兩層:

SSL 記錄協議(SSL Record Protocol):它創建在可靠的傳輸協議(如TCP)之上,爲高層協議提供數據封裝、壓縮、加密等基本功能的支持。

SSL 握手協議(SSL Handshake Protocol):它創建在 SSL 記錄協議之上,用於在實際的數據傳輸開始前,通信雙方進行身份認證、協商加密算法、交換加密密鑰等。

HTTP 和 HTTPS 區別

  • HTTPS 協議須要到 CA 申請證書,通常免費證書不多,須要交費。
  • HTTP 是超文本傳輸協議,信息是明文傳輸,HTTPS 則是具備安全性的 SSL 加密傳輸協議。
  • HTTP 和 HTTPS 使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。
  • HTTP 的鏈接很簡單,是無狀態的;HTTPS 協議是由 SSL+HTTP 協議構建的可進行加密傳輸、身份認證的網絡協議,比 HTTP 協議安全。

Cookie、sessionStorage、localStorage、IndexDB

  • Cookie 數據始終在同源的 HTTP 請求中攜帶(即便不須要),即 Cookie 在瀏覽器和服務器間來回傳遞。而 sessionStoragelocalStorage 不會自動把數據發給服務器,僅在本地保存。Cookie 數據還有路徑(path)的概念,能夠限制 Cookie 只屬於某個路徑下,存儲的大小很小隻有4K左右。

  • sessionStorage 僅在當前瀏覽器窗口關閉前有效,localStorage始終有效,窗口或瀏覽器關閉也一直保存,所以用做持久數據,Cookie 只在設置的 Cookie 過時時間以前一直有效,即便窗口或瀏覽器關閉。

  • localStorageCookie 在全部同源窗口中都是共享的。可是不一樣頁面或標籤頁間沒法共享 sessionStorage 的信息。

  • IndexDB 是一個運行在瀏覽器上的非關係型數據庫。理論上來講,IndexDB 是沒有存儲上限的(通常來講不會小於 250M)。它不只能夠存儲字符串,還能夠存儲二進制數據。

如何保持登陸狀態

由於 HTTP 是無狀態協議,每一次請求間相互獨立,服務端不會記住請求發送請求的客戶端。

淺顯的理解三種方式,cookie、session 和 token 。

  1. cookie 存儲用戶信息。缺點不安全,容易被僞造。

  2. session 是服務端會記錄用戶信息,並經過 session id 來標識查找這個信息。瀏覽器發送請求時經過參數或 cookie 將 session id 傳給服務端使其獲取用戶信息。

  3. token 是用戶登陸後,服務端生成一個 token 返回給客戶端。客戶端後續請求會帶上這個 token ,能夠經過 cookie 或 header 中 Authorization 字段(沒有 cookie 的跨域問題),服務端解析 token 獲取用戶信息。

跨域問題

(再看一遍以爲阮一峯老師寫的真好……

瀏覽器同源政策及其規避方法

跨域資源共享 CORS 詳解

從輸入 URL 到頁面加載完成,發生了什麼?

  1. DNS 解析
    域名解析爲 IP 地址,瀏覽器緩存-->操做系統緩存-->訪問 DNS 服務器
  2. TCP 鏈接
    三次握手、四次揮手
  3. HTTP 請求
    強緩存、協商緩存
  4. 服務端處理請求,HTTP 響應返回
    返回碼
  5. 瀏覽器拿到響應數據,解析響應內容,把解析的結果展現給用戶 DOM樹、CSSOM樹、Render樹、迴流、重繪
相關文章
相關標籤/搜索