春招面試突擊——網絡篇

感覺要來不及了。。這裏就按照常考知識點進行突擊。。死馬當活馬醫了。。

問題一:http和https的區別是什麼?

  • http協議是不安全的,其消息包是以明文的形式暴露在外面的;而https是安全的,其實是ssl協議+http協議,會對傳輸的消息報進行加密;
  • http協議的監聽端口是80,而https是443

問題二:什麼是Http協議無狀態協議?怎麼解決Http協議無狀態協議?

  • 無狀態協議對於事務處理沒有記憶能力。
  • 使用cookie可以解決無狀態帶來的問題,當用戶初次訪問服務器或其之前獲取的cookie超時失效的時候,服務器端會爲其分配一個cookie用於身份的標示和信息的記錄,當在服務端發現了客戶端攜帶的cookie,那麼就能夠認識這次訪問的用戶了。

問題三:一次完整的HTTP請求所經歷的步驟

  • 建立tcp連接(三次握手說一遍)
  • 瀏覽器發送請求報文,包括請求頭和請求體,中間由一個空行隔開
  • 服務器發送響應報文,包括響應頭和響應體,中間由一個空行隔開
  • 如果響應報文的參數有keep-alive的話,表示是長鏈接,將不會斷開tcp連接。否則的話就斷開tcp。這節省了tcp建立的時間開銷和帶寬的開銷

問題四:常見的HTTP相應狀態碼

  • 2開頭的表示正常接受到報文,200是正常。
  • 3開頭的是重定向相關
  • 4開頭的是瀏覽器發送的請求有問題,例如404找不到資源
  • 5開頭的是服務器那邊出問題了,例如500是內部錯誤,503是服務器正忙。

問題五:HTTP1.1版本新特性

  • 默認長鏈接
  • 管線化:
    • 客戶端可以同時發送多個HTTP請求,而不用一個個等待響應
  • 支持斷點續傳
    • HTTP1.1協議中定義了斷點續傳相關的屬性,如Accept-Range, Range和Content-Range:
      • Accept-Range記錄是否支持斷點續傳
      • Range表示請求的數據範圍 例如 Range : 開始字節位置-結束字節位置
      • Content-Range:是響應體裏表示的,真正返回的字節範圍;

問題六:輸入url後發生了什麼?

問題七:OSI七層模型每一層的意思?

  • 物理層:

物理層解決的問題就是比特流的傳輸。就是將01比特用電信號的強弱來替代,接收方用同樣的方式進行解碼得到傳輸的比特, 也就是模數轉換和數模轉換. 網卡就是工作在這一層上的。最小傳輸單位爲比特.

  • 數據鏈路層:

    • 封裝成幀。將網絡層傳下來的分組添加首部和尾部,用於標記幀的開始和結束。交換機就處在這一層,最小的傳輸單位——幀。MAC 地址是鏈路層地址。
    • 透明傳輸。透明表示一個實際存在的事物看起來好像不存在一樣。幀使用首部和尾部進行定界,如果幀的數據部分含有和首部尾部相同的內容,那麼幀的開始和結束位置就會被錯誤的判定。需要在數據部分出現首部尾部相同的內容前面插入轉義字符。如果數據部分出現轉義字符,那麼就在轉義字符前面再加個轉義字符。在接收端進行處理之後可以還原出原始數據。這個過程透明傳輸的內容是轉義字符,用戶察覺不到轉義字符的存在。
    • 差錯檢測。數據鏈路層廣泛使用了循環冗餘檢驗(CRC)來檢查比特差錯。
  • 網絡層:

    • 隨着通信設備的增加,點對點通信會經過多個結點,如何找到傳輸的最優路徑,選擇最優結點成了首要需求,此時便有了網絡層。 網絡層的最主要的作用:完成ip地址到mac地址的轉換,並決定發送數據以怎樣的路徑路由到接收方;路由器就工作在這一層, 路由的數據單位爲數據包;
  • 傳輸層:

    網絡層只把分組發送到目的主機,但是真正通信的並不是主機而是主機中的進程。傳輸層提供了進程間的邏輯通信。傳輸層向高層用戶屏蔽了下面網絡層的核心細節,使應用程序看起來像是在兩個傳輸層實體之間有一條端到端的邏輯通信信道。傳輸層實現的兩個重要協議就是tcp/ip. 然後說一下他們的特點和區別。

  • 會話層:

    因爲對於tcp協議而言,如果每一次建立傳輸都需要重新三次握手建立連接,那麼顯然是很低效的。 而會話層的作用就是建立通信鏈接,保持會話過程通信連接的暢通。 他的三大功能主要包括:建立會話,保持會話,斷開會話。

建立會話:A、B兩臺網絡設備之間要通信,要建立一條會話供他們使用,在建立會話的過程中也會有身份驗證,權限鑑定等環節;

保持會話:通信會話建立後,通信雙方開始傳遞數據,當數據傳遞完成後,OSI會話層不一定會立刻將兩者這條通信會話斷開,它會根據應用程序和應用層的設置對該會話進行維護,在會話維持期間兩者可以隨時使用這條會話傳輸局;

斷開會話:當應用程序或應用層規定的超時時間到期後,OSI會話層纔會釋放這條會話。或者A、B重啓、關機、手動執行斷開連接的操作時,OSI會話層也會將A、B之間的會話斷開。

  • 表示層:

電腦從網卡收到一串數據時,這些數據在電腦中都是都是二進制的格式,我們人類是看不懂二進制的,就需要表示層幫忙將這些二進制轉換成我們能夠識別的數據。只有在表示層將數據處理完成後,才能將轉格式編譯後的數據呈現在應用程序中,讓用戶能夠看懂。

從物理層依次解封裝至表示層之後,表示層會檢查電腦中是否有能識別該gif圖片的解碼工具,如果有,則將gif圖片展現在相應的應用程序中;如果沒有,則提示打不開,或顯示出一堆亂碼。

  • 應用層:

    應用層提供各種各樣的應用層協議,這些協議嵌入在各種我們使用的應用程序中,爲用戶與網絡之間提供一個打交道的接口。比如,IE瀏覽器,使用的是應用層的HTTP協議;QQ使用的應用層協議是OICQ;Outlook使用收發郵件的SMTP、POP3協議。這裏要注意一點,我們所使用的軟件是應用程序,這些軟件只是軟件開發者編程開發出來的,這些應用軟件只是一個殼子,而這些軟件裏嵌套的協議纔是應用層的內容,使用網絡的程序需要集成協議纔可以正常使用。
    參考
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章