面試題:HTTP

YXi發表於2019-12-01

持續更新中...

面試傳送門:

如果要面試前端的話,HTTP不作為重要的考點,所以大致看下就OK了

001.網路七層模型

網路七層模型(四層模型)及其區別

002.三次握手,四次揮手

TCP 三次握手 與 四次揮手

003.從輸入一個網址到看到一張網頁,經歷了什麼?

從輸入一個網址到瀏覽器顯示頁面的全過程詳細分析

004.HTTP的請求與響應

  • 請求:
    • 請求行,GET/HTTP/1.1
    • 請求頭,非常多
    • 請求正文,扔給伺服器的資料
  • 響應:
    • 響應行,HTTP/1.1 200 OK
    • 響應頭,非常多
    • 響應正文,伺服器扔給客戶端的資料

005.HTTP狀態碼

  • 1xx
    • 101(雙向通訊)
  • 2xx
    • 200(成功)
    • 204(沒有響應體)
    • 206(斷點續傳)
  • 3xx
    • 301(永久重定向)
    • 302(臨時重定向)
    • 304(快取)
  • 4xx
    • 401(沒有許可權)
    • 403(登陸了沒有許可權)
    • 404(找不到對應的資源)
    • 405(請求方法不存在,不支援)
  • 5xx
    • 502(負載均衡)

006.HTTP中的請求方法(8種)

HTTP協議簡介

007.HTTP優化策略(部落格)

壓縮和快取
HTTP前端效能優化(壓縮與快取)

008.HTTP中的頭(重點)

  • 請求頭:
    • accept-encoding 告訴伺服器,我接收的資料支援壓縮格式
    • if-modified-since 對比快取 修改時間
    • if-none-match 摘要快取 和Etag配對使用的
    • user-agent 不同裝置自動帶上這個頭 判斷什麼樣的裝置,重定向到不同專案
  • 響應頭:
    • Content-Type 告訴瀏覽器 我給你的內容的型別
    • Content-Encoding 告訴瀏覽器 我給你的內容的壓縮格式
    • Cache-Control 強制快取 告訴瀏覽器,你多長時間之間,不要來訪問我
    • Expires 強緩 告訴瀏覽器,你多長時間之間,不要來訪問我
    • Last-Modified 對比快取 和 if-modified-since 配對使用
    • Etag 根據摘要做快取 和 if-none-match 配對使用
    • Lotaion 重定向到 某個地方

009.HTTP中的代理

010.http和https有什麼不同?

  • https:是以安全為目標的HTTP通道,簡單講是HTTP的安全版本,通過SSL加密
  • http:超文字傳輸協議。是一個客服端和伺服器端請求和應答的標準(tcp),使瀏覽器更加高效,使網路傳輸減少

011.localStorage, sessionStorage, cookie, session有什麼區別?

  • localStorage 不能跨域存取 最大存5M 超過5M的資料就會丟失 在傳送請求時,不會帶上localStorage
  • sessionStorage 當瀏覽器關閉時,裡面的資料就丟失
  • cookie 伺服器種植的,每次請求都會帶上cookie,不安全,解決無狀態問題,最多4K,浪費流量
  • session 基於cookie 儲存在伺服器(記憶體,入庫) 相對安全

前後端分離(前端調後端api介面)開發的:cookie,主流:session 或 JWT

理解cookie、session、localStorage、sessionStorage的關係與區別

012.從輸入一個網址到瀏覽器顯示頁面的全過程?

1.DNS解析,找到IP地址
2.根據IP地址,找到對應的伺服器
3.建立TCP連線(裡面有個 三次握手)
4.連線建立後,發出HTTP請求
5.伺服器根據請求作出HTTP響應
6.瀏覽器得到響應內容,進行解析與渲染,並顯示
7.斷開連線(四次揮手)

從輸入一個網址到瀏覽器顯示頁面的全過程詳細分析

013.簡單說一下三次握手與四次揮手,為什麼一個三次,一個四次?

TCP 三次握手 與 四次揮手

014.說一下web快取?

1.web快取就是存在於客戶端與伺服器之間的一個副本、當你第一個發出請求後,快取根據請求儲存輸出內容的副本
2.快取的好處
(1)減少不必要的請求
(2)降低伺服器的壓力,減少伺服器的消耗
(3)降低網路延遲,加快頁面開啟速度(直接讀取瀏覽器的資料)

015.常見的web安全及防護原理?

  • sql注入原理:是將sql程式碼偽裝到輸入引數中,傳遞到伺服器解析並執行的一種攻擊手法。
  • XSS(跨站指令碼攻擊):往web頁面插入惡意的html標籤或者js程式碼。
  • CSRF(跨站請求偽裝):通過偽裝來自受信任使用者的請求

相關文章