計算機網路相關常見面試題

2022-10-11 01:00:13 字數 4819 閱讀 7647

我可能是魚的記憶,看過就忘了。

需要找工作複習的時候感覺很煩躁,因為有很多很多知識需要再重新去看去記憶。

所以在這裡分類寫下知識點,方便以後查閱。

一、介紹一下cookie, session 和token的區別

因為http請求是無狀態的,伺服器無法從網路連線上識別訪問者的身份,為了解決這個問題,就有了cookie

cookie:客戶端請求伺服器,如果伺服器需要記錄該使用者的狀態,就向客戶端傳送乙個cookie,客戶端會把這個cookie儲存下來,當下次訪問伺服器時,把請求的**連同cookie資訊,一起傳送給伺服器,伺服器根據接收到的cookie來辨別使用者資訊。cookie存放在客戶端中

session:session是另一種存放會話的機制,主要存放在服務端。當客戶端訪問瀏覽器的時候,伺服器把客戶端資訊以某種形式存放在伺服器中,這就是session;當程式需要為某個客戶端的請求建立session時,先檢查客戶端的請求中有沒有sessionid(使用者首次登入伺服器建立,並返回給客戶端的資訊),如果有sessionid,伺服器就根據sessionid把這個使用者的相關session資訊檢索出來並使用;如果請求不包含sessionid,則根據session為該使用者新建立乙個sessionid。session資訊譬如:使用者賬戶餘額、購物車等資訊

token:token的意思是「令牌」,是使用者身份的驗證方式,最簡單的token組成:uid(使用者唯一的身份標識)、time(當前時間的時間戳)、sign(簽名,由token的前幾位+以雜湊演算法壓縮成一定長的十六進製制字串,可以防止惡意第三方拼接token請求伺服器)。還可以把不變的引數也放進token,避免多次查庫(個人理解,主要是避免不合法)

使用token進行身份驗證的流程:

①客戶端使用使用者名稱跟密碼請求登入

②服務端收到請求,去驗證使用者名稱與密碼

③驗證成功後,服務端會簽發乙個 token,再把這個 token 傳送給客戶端

④客戶端收到 token 以後可以把它儲存起來,比如放在 cookie 裡或者資料庫裡

⑤客戶端每次向服務端請求資源的時候需要帶著服務端簽發的 token

⑥服務端收到請求,然後去驗證客戶端請求裡面帶著的 token,如果驗證成功,就向客戶端返回請求的資料

二、輸入url後到載入網頁的整個過程是怎麼樣的?

1、根據網域名稱解析獲取到對應的ip位址;

2、瀏覽器獲取到網域名稱對應的ip位址後,向ip位址傳送請求連線,進行tcp三次握手;

3、連線建立後,瀏覽器向伺服器傳送http請求;

4、伺服器接收到這個請求後,根據路徑引數對映到特定的請求伺服器進行處理,並將結果以及相應的檢視返回給瀏覽器

5、瀏覽器解析並渲染檢視,如果遇到js、css檔案、資源的使用,需要重複以上步驟請求資源

6、瀏覽器根據請求到的資源進行頁面渲染

三、dns網域名稱解析過程

1、瀏覽器檢查快取中有沒有網域名稱對應的ip位址

2、如果瀏覽器快取中沒有就檢查作業系統的hosts檔案

3、如果本地沒有的話就呼叫網域名稱解析程式

4、把待解析的網域名稱放在dns請求報文中,以udp使用者資料報方式傳送給本地網域名稱伺服器

5、本地網域名稱伺服器根據網域名稱查詢到ip位址後,把對應的ip位址放在回答報文中返回

6、獲取到ip位址後進行tcp三次握手等

四、dns使用tcp還是udp協議?

dns在進行區域傳輸時使用tcp協議,在網域名稱解析時使用udp協議

五、tcp三次握手和四次揮手

1、三次握手:是指在建立乙個tcp連線時,需要client和server總共傳送三個包來確認連線的建立:

(1)client向服務端傳送請求,標誌位syn=1,隨機生成seq=x傳送給server;

(2)server接受到syn=1,知道客戶端要建立連線,則將syn和ack都置為1,ack=x+1,隨機生成seq=y傳送給客戶端;

(3)客戶端接收到請求後,判斷ack=1,ack=x+1,則將ack置為1,ack=y+1,傳送給服務端,服務端收到後檢查是否正確,正確的話則可以建立連線

2、四次揮手:是指斷開tcp連線時,需要客戶端和服務端總共傳送四個包來確認斷開連線:

(1)客戶端向服務端傳送fin=m,要求斷開客戶端到伺服器的資料傳送;

(2)伺服器接受到fin值後,傳送乙個ack=m+1傳送給客戶端。此時tcp連線處於半連線狀態,客戶端已經無法向服務端傳送資料,但是服務端向客戶端傳送資料塔需要接受;

(3)服務端向客戶端傳送乙個fin=n,要求關閉服務端向客戶端的資料傳送;

(4)客戶端接受到fin值後,向服務端傳送ack=1,ack=n+1,服務端接受到確認正確後tcp連線關閉,完成四次揮手

六、 tcp是全雙工的還是半雙工的?

tcp是全雙工

全雙工:傳送資料的同時也可以接收資料

半雙工:同一時間只能有一件事情進行

七、tcp和udp的區別, 和它們各自的應用場景

區別:

1、tcp是面向連線的,udp是無連線的;

2、tcp是可靠地,udp是不可靠的;

3、tcp只支援點對點通訊,udp支援一對

一、一對多、多對

一、多對多的通訊方式;

4、tcp是面向位元組流的,udp是面對報文的;

5、tcp有擁塞控制機制,udp沒有擁塞控制機制

應用場景:

2、tcp適用於要求可靠傳輸的應用,譬如檔案傳輸

八、http與https的區別:

1、http是執行在tcp上,明文傳輸,而https是執行在ssl上,ssl又執行在tcp上,相對比http而言新增了加密和認證機制,更加安全;

2、http預設埠:80,https預設埠:443;

3、https相對與http來說需要進行加密解密過程更加消耗cpu和記憶體資源

4、https一般需要證書認證

九、get和post的區別

1、get一般用來從伺服器獲取資源,post一般用來更新資源

2、get請求引數一般放在url位址中,明文傳輸不安全,post提交的資料一般放在請求體中

3、get請求長度收到url的限制,傳送的資料比較少,而post請求資料放在請求體中不受限制

十、http長連線&短連線

實際是tcp的長連線、短連線

原來http使用短連線,連線完成任務結束後自動中斷連線

長連線是指進行tcp三次握手後,不進行四次揮手,響應頭中會有標記 connection:keep-alive,但是這個keep-alive並不是永久的,會有保持的時間(伺服器設定),並且有最大限制連線數

當前http1.1預設是長連線

長連線

(1)優點:可以省去較多的tcp連線和關閉的過程,對於請求資源比較頻繁的客戶端適合使用長連線

(2)缺點:在長連線的應用場景下,client端一般不會主動關閉連線,當client與server之間的連線一直不關閉,隨著客戶端連線越來越多,server會保持過多連線

(3)適用:資料庫

短連線

(1)優點:短連線對於伺服器來說管理較為簡單,存在的連線都是有用的連線,不需要額外的控制手段。

(2)缺點:如果客戶請求頻繁,將在tcp的建立和關閉操作上浪費較多時間和頻寬。

十一、http請求型別

get、post、put、delete、head等

十二、http請求包含哪些部分?

請求行:①請求方法:get、post、put、delete等;②請求url;③http協議以及版本

請求頭:http的報文頭,報文頭包含若干個屬性,格式為「屬性名:屬性值」,例如:cookie、ua、accept-language等

請求體:post請求時傳遞的資訊;get請求沒有請求體

空一行十三、http響應狀態碼

(1)200--伺服器響應成功

(2)302--請求被重定向

(3)304--已被快取

(4)400--請求有語法問題

(5)401--請求未經過授權

(6)403--拒絕請求

(7)404--請求的資源不存在(通常是請求的url錯誤)

(8)500--伺服器內部錯誤

(9)502--作為閘道器或者**工作的伺服器嘗試執行請求時,從上游伺服器接收到無效的響應

(10)503--伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常

十四、osi七層模型以及其協議名稱

(1)應用層:http/ftp/pop3

(2)表示層:jpeg/mpeg

(3)會話層:rpc/asp/nfs

(4)傳輸層:tcp/udp

(5)網路層:ip

(6)資料鏈路層:hdlc/ppp,將位元流進行分組處理,8位一組(位元組)依次傳送資料(幀),

(7)物理層:互聯物理鏈路,用物理介質:網線、光纖、無線電波,以01101形式存在(位元流)

十五、tcp/ip四層協議

(1)應用層

(2)傳輸層

(3)網路層

(4)網路介面層

十六、ip位址,由網路標識和主機標識兩部分組成

計算機網路常見面試題

200 success 301 permanently shifted 資源被永久轉移到了其他url 403 forbidden 404 not found 500 internal error 伺服器內部錯誤 應用層表達層 會話層傳輸層 網路層資料鏈路層 物理層tcp 在傳輸之前會進行三次溝通,一...

常見面試題 計算機網路

tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於讓廣播和細節控制交給應用的通訊傳輸。兩者的區別大致如下 埠服務21ftp 檔案傳輸協議 22ssh 23telnet遠端登入 25smtp簡單郵件傳輸協議 53dns網域名稱伺服器 80http超文字傳輸協議 ...

計算機網路常見面試題

tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於讓廣播和細節控制交給應用的通訊傳輸。兩者的區別大致如下 tcp對應的協議 udp對應的協議 snmp 簡單網路管理協議,使用161號埠,是用來管理網路裝置的。由於網路裝置很多,無連線的服務就體現出其優勢。tft...