【網絡】http 協議基礎必考面試題,還不來看看 ~

歷史回顧:html

【網絡】HTTP + 通訊加密 + 認證機制 + 保護報文完整型 = HTTPS算法

簡述下TCP的三次握手?瀏覽器

我:咱們能夠談戀愛嗎? 她:能夠的。 我: 那咱們談戀愛吧。緩存

HTTP 疑問集合

1. 使用http協議的哪一個版本的是由服務器決定的嗎?

CLICK ME

具體是雙方協商,最終由服務器決定安全

2. 如何查看一個網站使用了http哪一個版本?

CLICK ME

network 中 表格中的 Protocol,現代網站可能使用多個http版本。服務器

3. http/1.1 還有哪些缺陷?

CLICK ME
  • 1.隊尾阻塞
  • 2.對小文件傳輸效率低
  • 3.明文傳輸不安全
  • 4.每次header中都有傳輸頭
  • 5.服務器不能主動推送數據到客戶端

隊尾阻塞問題只要傳輸層是TCP協議,就不會獲得根本上的解決,http/2 利用流的機制很大程度上緩解了這個問題,http/3 傳輸層換了 UDP 才完全解決了這個問題。網絡

4. http/1.1 的主要缺陷?

CLICK ME
  • 慢啓動
  • 多個TCP鏈接競爭帶寬
  • 隊尾阻塞

5. 什麼是多路複用,HTTP/2 是如何實現多路複用的?

CLICK ME

創建一個TCP鏈接多個文件傳輸,而且不限制文件個數。實現了資源的並行傳輸。數據結構

HTTP/2 在協議層添加了一個二進制分幀層用來實現多路複用。二進制分幀層把文件分紅幀,對幀進行編號傳輸,到服務器端再組裝,由服務器來決定要先返回什麼。tcp

6. 基於二進制分幀層實現了哪些功能?

CLICK ME
  • 多路複用
  • 能夠設置請求的優先級
  • 服務器推送
  • 頭部壓縮

7. 隊頭阻塞 - http請求阻塞?

CLICK ME

一個tcp鏈接能夠用來處理多個http請求,當前的請求阻塞了,後面的請求也要等待,這是http請求阻塞。post

8. 隊頭阻塞 - TCP數據包阻塞?

CLICK ME

一個請求了index.html,這個文件比較大,分了幾回傳回來 1,2,3,4,5,若是是 2,3,4,5數據包傳回來了,而 1 沒傳回來,那麼TCP也不會把這個數據交到上層,還得等 1 回來,而後才能進行拼接,上傳到上層,這是TCP數據包阻塞。

9. HTTP/2 下的全部資源請求都會通過 「二進制分幀層」嗎?

CLICK ME

是的,由於二進制分幀層是添加到http/2協議裏了。

10. http/2爲何不必用雪碧圖和資源文件合併了?

CLICK ME

http/2 的慢啓動對傳輸效率的影響微乎其微,影響傳輸效率的主要是文件的大小。多張圖片大小加在一塊兒,都沒有合併一張雪碧圖大,那雪碧圖反而讓傳輸更慢了。資源文件合併也是一樣的道理。

11. 慢啓動次數問題?

CLICK ME

http/2一個域名,理想狀況下使用一個TCP長鏈接,慢啓動只須要啓動一次;http1.1一個域名創建多個TCP鏈接,創建幾個TCP就會有幾回慢啓動。

12. 什麼是TLS,跟TCP有什麼區別?

CLICK ME

TLS協議,用來建立加密通道須要的協商和認證。應用層(HTTP、FTP)協議傳送的數據經過TSL協議時會被加密,從而保證通訊的私密性。

TCP是傳輸層協議,TLS是傳輸層安全協議。HTTPS才須要TLS協議,HTTP協議不須要,也就是說TLS協議不是必須的。

13. RTT?

CLICK ME

round trip time, 僅包括請求訪問來回的時間,被稱做網絡延遲。

RTT = 傳播時延(往返)+ 排隊時延(路由器和交換機的) + 數據處理時延(應用程序的)

14. Cache 來緩存本地文件?

CLICK ME

http 請求中的緩存 cache 機制,資源緩存。Cookie 一般用來保持登陸狀態,信息緩存。

15. 編碼格式與文件傳輸的字節流之間有什麼關係?

CLICK ME

字符流、字節流、二進制在 HTTP 協議傳輸的時候,請求頭、響應頭都是以ASCII文本方式傳輸的,可是傳輸內容(響應體)多是多種形式的,接受方處理數據的時候根據 Content-Type 制定的類型進行處理,響應頭若 Transfer-Encoding 這個字段,用來指定傳輸的數據的編碼轉換的壓縮方式。沒有這個字段,就沒編碼壓縮。

16. http/2中傳輸的優先級?

CLICK ME

有默認優先級,經過PRIORITY幀能夠改變流的優先級。 具體默認優先級的規則,以及如何經過幀來改變流的優先級?會的大佬,在評論區留言討論啊。

17. tcp爲何是可靠的?

CLICK ME

TCP經歷了三次握手、四次分手,網絡通訊更安全。

18. 簡述TCP 的三次握手?

CLICK ME 我:咱們能夠談戀愛嗎? 他: 能夠的。 我: 那咱們談戀愛吧。

19. HTTP/2 首部壓縮的實現原理

CLICK ME

HTTP 2.0使用了首部壓縮技術,壓縮算法使用HPACK。可以讓報頭更緊湊,更快速傳輸。HPACK 協議,其中原理是哈夫曼編碼及索引表(數據結構內容)。

20. HTTPS是一個新的協議嗎?

CLICK ME

HTTPS並非一個新的協議,一般 HTTP 直接和 TCP通訊,HTTPS先和安全層通訊,而後安全層再和 TCP 層通訊。也就是說 HTTPS 全部的安全核心都在安全層。它不會影響上下兩層。

21. HTTPS的安全層是如何工做?

CLICK ME

對發起 HTTP 請求的數據進行加密操做和對接收到HTTP的內容進行解密操做。

以上思考沉澱主要來自於極客時間《瀏覽器工做原理和實戰》之瀏覽器的網絡。

最後

你們如何把站點升級到 http/2,都遇到了哪些坑?看到有不少的網站是多協議並存的,哪些資源請求走 http/1.1,哪些走 http/2 ?你們有把網站升級到 http/3 的嗎,都遇到了哪些坑,歡迎在留言區告訴我。

相關文章
相關標籤/搜索