現在面試門檻越來越高,很多開發者對於網路知識這塊了解的不是很多,遇到這些面試題會手足無措。本篇文章知識主要集中在 http 這塊。文中知識來自 《** http》與維基百科,若有錯誤請大家指出。文章會持續更新。面試 -- 網路 tcp/ip
對端傳輸
傳送端在層與層間傳輸資料時,沒經過一層都會被加上首部資訊,接收端每經過一層都會刪除一條首部
多種協議作用
ip 協議,tcp 協議和 dns 服務在使用 http 協議過程中發揮的作用
請求報文和響應報文
客戶端像伺服器發起請求時會生成一段請求報文,請求報文是由請求方法,url,協議版本,可選的請求首部欄位和內容實體構成。
請求報文
接收到請求的伺服器,會將請求內容的處理結構以響應的形式返回。響應報文基本上由協議版本,狀態碼,用以解釋狀態的原因短語,可選的響應首部字段以及實體主體構成。
響應報文
http 是不儲存狀態的協議和 cookie 的簡單介紹
http 協議對於傳送的請求和響應不做持久化處理。這時候引入了 cookie 技術用於狀態管理。cookie 對用與登入的狀態管理,沒有 cookie 這個技術的話,因為 http 不儲存狀態,每次開啟新網頁都必須再次登入。
cookie 會根據響應報文中的 set-cookie 欄位來通知客戶端自動儲存 cookie。下次請求時會自動傳送 cookie,伺服器會比對資料得到狀態結果。
cookie
post 和 get 的區別
先引入***和冪等的概念。
***指對伺服器上的資源做改變,搜尋是無***的,註冊是***的。
冪等指傳送 m 和 n 次請求(兩者不相同且都大於1),伺服器上資源的狀態一致。註冊10個和11個帳號是不冪等的,對文章進行更改10次和11次是冪等的。
在規範的應用場景上說,get 多用於無***,冪等的場景,例如搜尋關鍵字。post 多用於***,不冪等的場景,例如註冊。
在技術上說:
常見狀態碼
2xx 成功
3xx 重定向
4xx 客戶端錯誤
5xx 伺服器錯誤通用首部
指請求報文和響應報文都可以使用的字段
connection 指控制不再**給**的首部字段(hop-by-hop),管理持久連線
upgrade 可以用來指定乙個完全不同的通訊協議,對於這個字段,伺服器可以返回101狀態碼
請求首部欄位https 是 http 建立在 ssl/tls 安全協議上的。
在 ios 中,客戶端本地會存放著 ca 證書,在https 請求時,會首先像伺服器索要公鑰,獲得公鑰後會使用本地 ca 證書驗證公鑰的正確性,然後通過正確的公鑰加密資訊傳送給伺服器,伺服器會使用私鑰解密資訊。
ssl/tls握手階段分為五步:
以下引自 阮一峰的網路日誌
第一步,愛麗絲給出協議版本號、乙個客戶端生成的隨機數(client random),以及客戶端支援的加密方法。
第二步,鮑勃確認雙方使用的加密方法,並給出數字證書、以及乙個伺服器生成的隨機數(server random)。
第三步,愛麗絲確認數字證書有效,然後生成乙個新的隨機數(premaster secret),並使用數字證書中的公鑰,加密這個隨機數,發給鮑勃。
第四步,鮑勃使用自己的私鑰,獲取愛麗絲發來的隨機數(即premaster secret)。
第五步,愛麗絲和鮑勃根據約定的加密方法,使用前面的三個隨機數,生成"對話金鑰"(session key),用來加密接下來的整個對話過程。
https 相對於 http 效能上差點,因為多了 ssl/tls 的幾次握手和加密解密的運算處理,但是加密解密的運算處理已經可以通過特有的硬體來加速處理。
面試 網路 HTTP
現在面試門檻越來越高,很多開發者對於網路知識這塊了解的不是很多,遇到這些面試題會手足無措。本篇文章知識主要集中在 http 這塊。文中知識來自 http 與維基百科,若有錯誤請大家指出。文章會持續更新。面試 網路 tcp ip 對端傳輸 傳送端在層與層間傳輸資料時,沒經過一層都會被加上首部資訊,接收...
HTTP協議面試
http1.0所做的優化 http1.0 http1.1的區別 1快取處理不同。1.0只是用乙個標頭檔案的快取策略,1.1引入了更多 2頻寬優化及網路連線的使用 1.0存在浪費頻寬,不支援斷點續傳功能。1.1允許只請求資源的部分 3host頭處理 1.0中每台伺服器繫結唯一的ip位址。1.1請求訊息...
HTTP網路基礎
1.arp協議 arp協議就是根據ip位址就可以反查出對應的mac位址。mac位址就是網絡卡所屬的固定位址。2.http協議 職責 生成對目標web伺服器的http請求報文 對web伺服器請求的內容的處理 http請求報文是請求方法 請求資源uri 協議版本 可選的請求手部欄位和內容實體構成的。ht...