計算機(jī)網(wǎng)絡(luò)精選50道面試題(建議收藏)
點(diǎn)擊“程序員面試吧”,選擇“星標(biāo)??”
下拉至文末獲取資料
在面試中 計算機(jī)網(wǎng)絡(luò)是面試官最喜歡考察的內(nèi)容之一,金九銀十馬上要到了,整理了50道計算機(jī)網(wǎng)絡(luò)面試題,每一道都非常的經(jīng)典,大廠也非常喜歡問。希望大家看完后,都能找到理想的offer哈~由于篇幅太長,只在此展示部分內(nèi)容
全部面試題已整理成pdf文件,需要的文末自取。(pdf僅作免費(fèi)交流分享,侵刪)文章內(nèi)容來源:撿田螺的小男孩 1.HTTP 常用的請求方式,區(qū)別和用途?
GET: 發(fā)送請求,獲取服務(wù)器數(shù)據(jù) POST:向URL指定的資源提交數(shù)據(jù) PUT:向服務(wù)器提交數(shù)據(jù),以修改數(shù)據(jù) HEAD:請求頁面的首部,獲取資源的元信息 DELETE:刪除服務(wù)器上的某些資源。 CONNECT:建立連接隧道,用于代理服務(wù)器; OPTIONS:列出可對資源實(shí)行的請求方法,常用于跨域 TRACE:追蹤請求-響應(yīng)的傳輸路徑
1xx:接受的請求正在處理 (信息性狀態(tài)碼) 2xx:表示請求正常處理完畢 (成功狀態(tài)碼) 3xx:表示重定向狀態(tài),需要重新請求 (重定向狀態(tài)碼) 4xx:服務(wù)器無法處理請求 (客戶端錯誤狀態(tài)碼) 5xx:服務(wù)器處理請求出錯 (服務(wù)端錯誤狀態(tài)碼)
101 切換請求協(xié)議,從 HTTP 切換到 WebSocket 200 請求成功,表示正常返回信息。 301 永久重定向,會緩存 302 臨時重定向,不會緩存 400 請求錯誤 403 服務(wù)器禁止訪問 404 找不到與 URI相匹配的資源。 500 常見的服務(wù)器端錯誤
DNS解析,查找真正的ip地址 與服務(wù)器建立TCP連接 發(fā)送HTTP請求 服務(wù)器處理請求并返回HTTP報文 瀏覽器解析渲染頁面 連接結(jié)束

A:今天吃啥子? B:羅非魚! A:味道怎么樣呀? B:還不錯,好香。
A:今天吃啥子? B:羅非魚! A:味道怎么樣呀? B:?啊?啥?什么鬼?什么味道怎么樣?
A:今天吃啥子? B:羅非魚 A:你今天吃的羅非魚味道怎么樣呀? B:還不錯,好香。
HTTP 1.0規(guī)定瀏覽器與服務(wù)器只保持短暫的連接,瀏覽器的每次請求都需要與服務(wù)器建立一個TCP連接,服務(wù)器完成請求處理后立即斷開TCP連接。它也可以強(qiáng)制開啟長鏈接,例如設(shè)置 Connection: keep-alive這個字段
引入了長連接,即TCP連接默認(rèn)不關(guān)閉,可以被多個請求復(fù)用。 引入了管道機(jī)制(pipelining),即在同一個TCP連接里面,客戶端可以同時發(fā)送多個請求。 緩存處理,引入了更多的緩存控制策略,如 Cache-Control、Etag/If-None-Match等。錯誤狀態(tài)管理,新增了24個錯誤狀態(tài)響應(yīng)碼,如409表示請求的資源與資源的當(dāng)前狀態(tài)發(fā)生沖突。
采用了多路復(fù)用,即在一個連接里,客戶端和瀏覽器都可以同時發(fā)送多個請求或回應(yīng),而且不用按照順序一一對應(yīng)。 服務(wù)端推送,HTTP 2允許服務(wù)器未經(jīng)請求,主動向客戶端發(fā)送資源

應(yīng)用層:網(wǎng)絡(luò)服務(wù)與最終用戶的一個接口,協(xié)議有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 表示層:數(shù)據(jù)的表示、安全、壓縮。 會話層:建立、管理、終止會話。對應(yīng)主機(jī)進(jìn)程,指本地主機(jī)與遠(yuǎn)程主機(jī)正在進(jìn)行的會話 傳輸層:定義傳輸數(shù)據(jù)的協(xié)議端口號,以及流控和差錯校驗(yàn)。協(xié)議有:TCP UDP,數(shù)據(jù)包一旦離開網(wǎng)卡即進(jìn)入網(wǎng)絡(luò)傳輸層 網(wǎng)絡(luò)層:進(jìn)行邏輯地址尋址,實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的路徑選擇。協(xié)議有:ICMP IGMP IP(IPV4 IPV6) 數(shù)據(jù)鏈路層:建立邏輯連接、進(jìn)行硬件地址尋址、差錯校驗(yàn)等功能。 物理層:建立、維護(hù)、斷開物理連接。
應(yīng)用層:對應(yīng)于OSI參考模型的(應(yīng)用層、表示層、會話層),為用戶提供所需要的各種服務(wù),例如:FTP、Telnet、DNS、SMTP等 傳輸層:對應(yīng)OSI的傳輸層,為應(yīng)用層實(shí)體提供端到端的通信功能,保證了數(shù)據(jù)包的順序傳送及數(shù)據(jù)的完整性。定義了TCP和UDP兩層協(xié)議。 網(wǎng)際層:對應(yīng)于OSI參考模型的網(wǎng)絡(luò)層,主要解決主機(jī)到主機(jī)的通信問題。三個主要協(xié)議:網(wǎng)際協(xié)議(IP)、互聯(lián)網(wǎng)組管理協(xié)議(IGMP)和互聯(lián)網(wǎng)控制報文協(xié)議(ICMP) 網(wǎng)絡(luò)接口層:與OSI參考模型的數(shù)據(jù)鏈路層、物理層對應(yīng)。它負(fù)責(zé)監(jiān)視數(shù)據(jù)在主機(jī)和網(wǎng)絡(luò)之間的交換。
應(yīng)用層:通過應(yīng)用進(jìn)程間的交互來完成特定網(wǎng)絡(luò)應(yīng)用。對應(yīng)于OSI參考模型的(應(yīng)用層、表示層、會話層),應(yīng)用層協(xié)議很多,如域名系統(tǒng)DNS,HTTP協(xié)議,支持電子郵件的 SMTP協(xié)議等等。我們把應(yīng)用層交互的數(shù)據(jù)單元稱為報文。 傳輸層:負(fù)責(zé)向兩臺主機(jī)進(jìn)程之間的通信提供通用的數(shù)據(jù)傳輸服務(wù)。對應(yīng)OSI參考模型的傳輸層,協(xié)議有傳輸控制協(xié)議 TCP 和 用戶數(shù)據(jù)協(xié)議 UDP。 網(wǎng)絡(luò)層:對應(yīng)OSI參考模型的的網(wǎng)絡(luò)層 數(shù)據(jù)鏈路層:對應(yīng)OSI參考模型的的數(shù)據(jù)鏈路層 物理層:對應(yīng)OSI參考模型的的物理層層。在物理層上所傳送的數(shù)據(jù)單位是比特。物理層(physical layer)的作用是實(shí)現(xiàn)相鄰計算機(jī)節(jié)點(diǎn)之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質(zhì)和物理設(shè)備的差異。
請求參數(shù):GET 把參數(shù)包含在 URL 中,用&連接起來;POST 通過 request body 傳遞參數(shù)。 請求緩存:GET請求會被主動Cache,而POST請求不會,除非手動設(shè)置。 收藏為書簽:GET請求支持收藏為書簽,POST請求不支持。 安全性:POST比GET安全,GET請求在瀏覽器回退時是無害的,而POST會再次請求。 歷史記錄:GET請求參數(shù)會被完整保留在瀏覽歷史記錄里,而POST中的參數(shù)不會被保留。 編碼方式:GET請求只能進(jìn)行url編碼,而POST支持多種編碼方式。 參數(shù)數(shù)據(jù)類型:GET只接受ASCII字符,而POST沒有限制數(shù)據(jù)類型。 數(shù)據(jù)包: GET產(chǎn)生一個TCP數(shù)據(jù)包;POST可能產(chǎn)生兩個TCP數(shù)據(jù)包。
keep-aliveHTTP分為長連接和短連接,其實(shí)本質(zhì)上說的是TCP的長短連接。TCP連接是一個雙向的通道,它是可以保持一段時間不關(guān)閉的,因此TCP連接才有真正的長連接和短連接這一個說法。 長連接是指的是TCP連接,而不是HTTP連接。 TCP 長連接可以復(fù)用一個TCP連接來發(fā)起多次HTTP請求,這樣可以減少資源消耗,比如一次請求HTML,短連接可能還需要請求后續(xù)的JS/CSS/圖片等
HTTP 一般會有httpd守護(hù)進(jìn)程,里面可以設(shè)置 keep-alive timeout,當(dāng) tcp 鏈接閑置超過這個時間就會關(guān)閉,也可以在HTTP的header里面設(shè)置超時時間 TCP 的 keep-alive 包含三個參數(shù),支持在系統(tǒng)內(nèi)核的 net.ipv4 里面設(shè)置:當(dāng) TCP 連接之后,閑置了 tcp_keepalive_time,則會發(fā)生偵測包,如果沒有收到對方的 ACK,那么會每隔 tcp_keepalive_intvl 再發(fā)一次,直到發(fā)送了 tcp_keepalive_probes,就會丟棄該連接。
tcp_keepalive_intvl = 15 tcp_keepalive_probes = 5 tcp_keepalive_time = 1800
請求信息明文傳輸,容易被竊聽截取。 數(shù)據(jù)的完整性未校驗(yàn),容易被篡改 沒有驗(yàn)證對方身份,存在冒充危險
數(shù)據(jù)是否加密: Http 是明文傳輸,HTTPS是密文 默認(rèn)端口: Http默認(rèn)端口是80,Https默認(rèn)端口是443 資源消耗:和HTTP通信相比,Https通信會消耗更多的CPU和內(nèi)存資源,因?yàn)樾枰咏饷芴幚恚?/span> 安全性: http不安全,https比較安全。
完整pdf獲取方式
微信掃描下方二維碼
備注:計算機(jī)網(wǎng)絡(luò)面試
評論
圖片
表情

