1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        計算機(jī)網(wǎng)絡(luò)精選50道面試題(建議收藏)

        共 4011字,需瀏覽 9分鐘

         ·

        2021-09-01 21:56

        點擊“程序員面試吧”,選擇“星標(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:列出可對資源實行的請求方法,常用于跨域
        • TRACE:追蹤請求-響應(yīng)的傳輸路徑

        2.如何理解HTTP協(xié)議是無狀態(tài)的

        • 1xx:接受的請求正在處理 (信息性狀態(tài)碼)
        • 2xx:表示請求正常處理完畢 (成功狀態(tài)碼)
        • 3xx:表示重定向狀態(tài),需要重新請求 (重定向狀態(tài)碼)
        • 4xx:服務(wù)器無法處理請求 (客戶端錯誤狀態(tài)碼)
        • 5xx:服務(wù)器處理請求出錯 (服務(wù)端錯誤狀態(tài)碼)

        常用狀態(tài)碼如下:

        • 101 切換請求協(xié)議,從 HTTP 切換到 WebSocket
        • 200 請求成功,表示正常返回信息。
        • 301 永久重定向,會緩存
        • 302 臨時重定向,不會緩存
        • 400 請求錯誤
        • 403 服務(wù)器禁止訪問
        • 404 找不到與 URI相匹配的資源。
        • 500 常見的服務(wù)器端錯誤


        3.從瀏覽器地址欄輸入url到顯示主頁的過程

        1. DNS解析,查找真正的ip地址
        2. 與服務(wù)器建立TCP連接
        3. 發(fā)送HTTP請求
        4. 服務(wù)器處理請求并返回HTTP報文
        5. 瀏覽器解析渲染頁面
        6. 連接結(jié)束


        4.如何理解HTTP協(xié)議是無狀態(tài)的

        每次HTTP請求都是獨(dú)立的,無相關(guān)的,默認(rèn)不需要保存上下文信息的。

        我們來看個便于理解的例子:
        有狀態(tài):
        • A:今天吃啥子?
        • B:羅非魚!
        • A:味道怎么樣呀?
        • B:還不錯,好香。
        無狀態(tài):
        • A:今天吃啥子?
        • B:羅非魚!
        • A:味道怎么樣呀?
        • B:??。可??什么鬼?什么味道怎么樣?
        加下cookie這玩意
        • A:今天吃啥子?
        • B:羅非魚
        • A:你今天吃的羅非魚味道怎么樣呀?
        • B:還不錯,好香。


        5. HTTP 1.0,1.1,2.0 的版本區(qū)別


        HTTP 1.0
        • HTTP 1.0規(guī)定瀏覽器與服務(wù)器只保持短暫的連接,瀏覽器的每次請求都需要與服務(wù)器建立一個TCP連接,服務(wù)器完成請求處理后立即斷開TCP連接。它也可以強(qiáng)制開啟長鏈接,例如設(shè)置Connection: keep-alive 這個字段

        HTTP 1.1
        • 引入了長連接,即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ā)生沖突。


        HTTP 2
        • 采用了多路復(fù)用,即在一個連接里,客戶端和瀏覽器都可以同時發(fā)送多個請求或回應(yīng),而且不用按照順序一一對應(yīng)。
        • 服務(wù)端推送,HTTP 2允許服務(wù)器未經(jīng)請求,主動向客戶端發(fā)送資源


        6. 說下計算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)


        計算機(jī)網(wǎng)路體系結(jié)構(gòu)主要有ISO七層模型、TCP/IP 四層模型、五層體系結(jié)構(gòu)


        ISO七層模型
        ISO七層模型是國際標(biāo)準(zhǔn)化組織(ISO)制定的一個用于計算機(jī)或通信系統(tǒng)間互聯(lián)的標(biāo)準(zhǔn)體系。

        • 應(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é)議端口號,以及流控和差錯校驗。協(xié)議有:TCP UDP,數(shù)據(jù)包一旦離開網(wǎng)卡即進(jìn)入網(wǎng)絡(luò)傳輸層
        • 網(wǎng)絡(luò)層:進(jìn)行邏輯地址尋址,實現(xiàn)不同網(wǎng)絡(luò)之間的路徑選擇。協(xié)議有:ICMP IGMP IP(IPV4 IPV6)
        • 數(shù)據(jù)鏈路層:建立邏輯連接、進(jìn)行硬件地址尋址、差錯校驗等功能。
        • 物理層:建立、維護(hù)、斷開物理連接。


        TCP/IP 四層模型
        • 應(yīng)用層:對應(yīng)于OSI參考模型的(應(yīng)用層、表示層、會話層),為用戶提供所需要的各種服務(wù),例如:FTP、Telnet、DNS、SMTP等
        • 傳輸層:對應(yīng)OSI的傳輸層,為應(yīng)用層實體提供端到端的通信功能,保證了數(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ò)之間的交換。

        五層體系結(jié)構(gòu)
        • 應(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)的作用是實現(xiàn)相鄰計算機(jī)節(jié)點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質(zhì)和物理設(shè)備的差異。


        7.  POST和GET有哪些區(qū)別?


        • 請求參數(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ù)包。


        8. 在交互過程中如果數(shù)據(jù)傳送完了,還不想斷開連接怎么辦,怎么維持?


        在 HTTP 中響應(yīng)體的 Connection 字段指定為keep-alive



        9. HTTP 如何實現(xiàn)長連接?在什么時候會超時?


        HTTP 如何實現(xiàn)長連接?
        • HTTP分為長連接和短連接,其實本質(zhì)上說的是TCP的長短連接。TCP連接是一個雙向的通道,它是可以保持一段時間不關(guān)閉的,因此TCP連接才有真正的長連接和短連接這一個說法。
        • 長連接是指的是TCP連接,而不是HTTP連接。
        • TCP 長連接可以復(fù)用一個TCP連接來發(fā)起多次HTTP請求,這樣可以減少資源消耗,比如一次請求HTML,短連接可能還需要請求后續(xù)的JS/CSS/圖片等
        要實現(xiàn)HTTP長連接,在響應(yīng)頭設(shè)置Connection為keep-alive,HTTP1.1 默認(rèn)是長連接,而HTTP 1.0協(xié)議也支持長連接,但是默認(rèn)是關(guān)閉的。

        在什么時候會超時呢?
        • 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,就會丟棄該連接。
        1. tcp_keepalive_intvl = 15
        2. tcp_keepalive_probes = 5
        3. tcp_keepalive_time = 1800


        10. 講一下HTTP與HTTPS 的區(qū)別。


        HTTP,超文本傳輸協(xié)議,英文是Hyper Text Transfer Protocol,是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)的協(xié)議。HTTP存在這幾個問題
        • 請求信息明文傳輸,容易被竊聽截取。
        • 數(shù)據(jù)的完整性未校驗,容易被篡改
        • 沒有驗證對方身份,存在冒充危險

        HTTPS就是為了解決HTTP存在問題的。HTTPS,英文是HyperText Transfer Protocol over Secure Socket Layer,可以這么理解Https是身披SSL(Secure Socket Layer)的HTTP,即HTTPS 協(xié)議 = HTTP+SSL/TLS。通過 SSL證書來驗證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的傳輸數(shù)據(jù)進(jìn)行加密。

        它們主要區(qū)別:
        • 數(shù)據(jù)是否加密: Http 是明文傳輸,HTTPS是密文
        • 默認(rèn)端口: Http默認(rèn)端口是80,Https默認(rèn)端口是443
        • 資源消耗:和HTTP通信相比,Https通信會消耗更多的CPU和內(nèi)存資源,因為需要加解密處理;
        • 安全性: http不安全,https比較安全。

        完整pdf獲取方式

        微信掃描下方二維碼

        備注:計算機(jī)網(wǎng)絡(luò)面試


        瀏覽 60
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日韩视频欧美视频 | 中文字幕久久精品 | 国模蔻蔻小旅馆大尺度 | 一区二区三区四区无码在线 | 性爱二区 | 边摸边吃奶边做爽gif动态图 | 日本无码熟妇五十路视频 | 日日舔夜夜操 | 美女被男人操视频 | 日本一级婬片A片AAA毛片男男 |