計算機網路高頻面試題
一、HTTP高頻面試題(OSI與TCP/IP模型各層有那些協議)
1、應用層、表示層、會話層、傳輸層、網路層、資料鏈路層、物理層
2、應用層、傳輸層、網際層、網路介面層
3、應用層、傳輸層、網路層、資料鏈路層、物理層
OSI7層,TCP4層,5層模型、
答案:
比如應用層協議:HTTP、FTP等
傳輸層:TCP、UDP協議
網路層:IP協議
二、HTTP是什麼?HTTP常見狀態碼?GET和POST的區別
1、HTTP text transfer protocol 超文字傳輸協議。規定了計算機之間通訊的規範。
HTTP常見狀態碼可以分為4類
1XX:正在處理 ,表示協議的中間狀態,還需要後續操作
2XX:客戶端,請求成功接收到伺服器資料 200 OK成功,報文已經收到並正確處理
3XX:重定向,資源位置發生變動,需要客戶端重新發送請求,301(臨時重定向),302(永久重定向),304(不是重定向),302 表示資源被臨時移動,304 Not Modifed 所請求的資源未做修改,不會返回任何資源,客戶端通常會快取訪問過的資源,通過提供一個頭資訊,指出客戶端希望只返回在指定日期之後修改的資源。許多人304解釋為重定向,其實不準確的,重定向只涉及了301,302狀態碼。
(304的影響:1、百度蜘蛛抓取評率降低,關鍵詞排名下降)
4XX:客戶端出現了異常,請求報文有誤,伺服器無法 處理。 404 未請求到資源,400伺服器不理解請求的語法,401請求需要登入(未授權),403伺服器拒絕請求
5XX:伺服器端出現了異常,處理請求時內部發生了錯誤 503 伺服器資源unavailable service 500伺服器內部錯誤,502 錯誤網管 504網管超時。
Get/Post區別:
1、在REST API風格的請求中,get是對於資源的查詢,post是對資源的新增。一個是獲取,一個是提交資料
2、get提交引數的值放在url中傳輸,post一般是放在http協議的請求體中
3、get提交資料大小有限制,因為url的限制,post沒有限制
4、get請求不是那麼安全,而post更安全!
三、HTTP的優缺點
答:
優點:簡單、靈活和易於擴充套件、應用廣泛
缺點:非安全的協議,明文傳輸、無狀態
追問:HTTP1.1比HTTP1.0優化了哪些部分?
1、長連線:在HTTP1.0協議中,預設使用是短連線,也就是每次請求都要重新建立一次連線。HTTP是基於TCP/IP協議的,每次建立或斷開連線都要握手三次、四次揮手,開銷較大。
HTTP1.1 預設使用了長連線,開啟了CONNECTIO:keep-alive。HTTP1.1的持續連線有非流水線和流水線的方式。流水線的方式是在收到HTTP響應報文之前就能接著傳送新的報文
非流水線就是在接受後才能發下一個請求。
2、錯誤狀態碼:在HTTP1.1中增加了24個錯誤狀態碼,比如409表示請求資源與當前狀態發生了衝突。
3、快取處理:在HTTP1.0中主要使用的是if-modified-sice,expires來作為快取判斷依據。HTTP1.1使用了更多快取判斷策略如Entity tag,if-unmodified-tag,ifmatch-if-none-match
4、頻寬的優化及網路連線的使用:HTTP1.0中存在頻寬浪費問題,例如客戶端只是需要物件一部分,而伺服器回傳了整個物件,並不支援斷點續傳。HTTP1.1則在請求頭中使用了range來獲取資源的某個部分,狀態碼是206.
追問
HTTP和HTTPS的區別
1、HTTP 是超文字傳輸協議,資訊是明文的、安全存在很大的挑戰,存在很大的安全風險。HTTPS則解決了HTTP的安全風險,通過在傳輸層和網路層之間使用TLS/SSL協議,使得報文是加密傳輸。
2、HTTP連線相對簡單,TCP三次握手後,便可以開始HTTP的報文傳輸,而HTTPS還需要SSL/TLS握手,才能加密傳輸
3、HTTP埠號80,HTTPS埠號是443
4、HTTPS協議需要向CA機構申請認證證書,保證伺服器可信。
追問HTTPS解決了哪些安全問題:
1、竊聽風險,明文傳輸,通過wireshark可以抓包,獲取明文內容
2、篡改風險,強制植入廣告等
3、冒充電商支付等伺服器,騙錢。
通過:
1、資訊加密:互動資訊無法竊取。
2、校驗機制:無法篡改通訊內容,篡改後就不能正常顯示了。
3、身份證書:證明淘寶是真的淘寶。
四、HTTP1.1 HTTP 2 HTTP3 演變
HTTP1.1存在效能瓶頸
請求/響應頭未經過壓縮就傳送,頭部越大,只能壓縮body
HTTP2改進了:頭壓縮、二進位制格式、資料流、多路複用和伺服器主動推送
HTTP2存在的問題:多個HTTP請求在複用一個TCP連線,下層TCP協議是不知道有多少個HTTP請求。所以一旦發生了丟包,就會TCP重傳機制,這樣一個TCP連線中所有HTTP請求都必須等待這個包重傳。
HTTP3改進:將下層的TCP協議改為了UDP協議,UDP發生三不管順序的,也不管丟包的。(UDP 是不可靠傳輸的,但基於 UDP 的 QUIC 協議 可以實現類似 TCP 的可靠性傳輸。)