計算機網絡面試常見問題

HTTP緩存有什麼好處?

緩存是一種保存資源副本並在下次請求時直接使用該副本的技術。當 web 緩存發現請求的資源已經被存儲,它會攔截請求,返回該資源的拷貝,而不會去源服務器從新下載。這樣帶來的好處有:緩解服務器端壓力,提高性能(獲取資源的耗時更短了)。web

HTTP & HTTPS區別?

HTTP使用明文傳輸,無加密,使用80端口;HTTPS也是HTTP協議,使用了TLS/SSL加密。
SSL工做流程:
1. 協商加密算法
2. 服務器鑑別
3. 會話密鑰計算
4. 安全數據傳輸
算法

SSL

TCP是什麼,握手與揮手過程?

運輸層的傳輸控制協議,面向鏈接的,有兩個端點,經過socker鏈接,可靠交付, 全雙工通訊,面向字節流。
關注同步位和確認位置1,序號,確認號,AB狀態變化:
三報文握手:
緩存

tcp-connect

四揮手釋放:

第二次揮手後,TCP 鏈接處於半關閉(half-dose)狀態,B 能夠向A傳輸數據

HTTP是長鏈接仍是短鏈接?

http1.0:
1. 客戶端發出的報文header有「Connection:keep-alive」的請求。
2. 服務器接收後發現要求長鏈接,就在response的header中增長「Connection:keep-alive」,且不關閉鏈接。
3. 客戶端收到服務端的response後,發現其中包含」Connection:keep-alive「,確認是一個長鏈接,不關閉這個鏈接。並用該鏈接再發送request。
4. 轉到第一步,循環
http1.1:
1. 客戶端直接發送http1.1,服務器自動斷定爲長鏈接,在response的header中增長「Connection:keep-alive」,且不關閉鏈接。
2. 客戶端發現response中header有Connection:keep-alive,繼續用這個鏈接發送請求。
4. 轉到第一步,循環安全

服務器推送怎麼實現?

這種技術是將全部的工做都交給服務器。服務器不斷地運行與動態文檔相 關聯的應 用程序,按期更新信息,併發送更新過的文檔。服務器

TCP/UDP/HTTP區別?

UDP用戶數據報協議:
1. 無鏈接
2. 不可靠鏈接,盡最大努力交付
3. 面向報文
4. 沒有擁堵控制
TCP傳輸控制協議:
1. 面向鏈接
2. 經過套接字的點對點鏈接
3. 可靠鏈接,有握手和揮手
4. 使用無結構字節流
HTTP超文本傳輸協議:
1. HTTP位於運輸層上面的應用層,TCP、UDP都處於運輸層
2. HTTP使用TCP鏈接網絡

HTTP狀態碼?

序號 意義 說明
1xx 通知信息 表示請求收到了或正在處理
2xx 成功 表示接受或知道了
3xx 重定向 表示完成請求還要採起必須的行動
4xx 客戶端錯誤 表示語法錯誤、不能完成
5xx 服務器錯誤 表示服務器失效

抓包工具,怎麼抓包HTTPS?

Charles 假裝爲CA,Charles 經過本身的 CA 簽名了一個本身的公鑰,發送給客戶端,客戶端就誤覺得是服務器了,這樣以後的流程都會先走到 Charles 而後纔會走到目標服務器。併發

TCP滑動窗口?

做用:確保可靠傳輸
1. A->B發送報文,B返回確認,說好窗口字節數和確認號。
2. A能夠生成下一個窗口值大小窗口,B目標窗口是確認號。A再發送窗口,B返回最高位確認序號。
3. A對最高序號確認,根據確認號向前移動,B也向前移動。
tcp


用UDP實現TCP?

就模仿TCP嘛,或者使用RUDP,RTP
1. 增長相似握手揮手過程,添加seq/ack機制
2. 增長髮送接收緩存
3. 超時重傳機制工具

HTTPS公鑰暴露怎麼辦?

公鑰原本就是暴露,私鑰纔要保存好。如今通常使用RSA非堆成算法,私鑰不暴露。性能

HTTP分段上傳文件怎麼保證正確?

分段就是斷點續傳。加強校驗,好比實現 Last-Modified 來標識文件的最後修改時間,也可使用 ETag 頭來放置文件的惟一標識。

計算機網絡有哪幾層,分別對應什麼協議?

OSI七層,TCP四層,計算機網絡五層


IP/TCP傳輸的都是什麼數據?

IP傳運輸層TCP和UDP傳過來的數據
TCP傳應用層的HTTP、SMTP、FTP、DNS等的數據

DNS是什麼,有什麼做用?

域名系統,從域名解析出IP地址

對稱/非對稱加密?

對稱:兩邊使用同樣的密鑰,例如AES非對稱:兩邊不同密鑰,一個公鑰,向外公開,一個私鑰,要保存好。例如RSA

相關文章
相關標籤/搜索