主頁 > 軟體設計 > 計算機網路面試題,看這三篇就夠了(上),建議收藏

計算機網路面試題,看這三篇就夠了(上),建議收藏

2021-10-18 14:04:41 軟體設計

文章目錄

  • 前言
  • 正題
    • 1、http狀態碼及其含義?
    • 2、Http的常用的請求方式,區別和用途?
    • 3、請簡單說一下你了解的埠及對應的服務?
    • 4、計算機網路體系結構?
      • 4.1、OSI七層模型
    • 5、如何理解HTTP協議是無狀態的?
    • 6、瀏覽器輸入地址到顯示主頁的程序?
    • 7、HTTP/1.0、1.1、2.0的區別
    • 8、互動程序中資料傳送完了,還不想斷開鏈接?
    • 9、HTTP如何實作長連接?在什么時候會超時?
    • 10、HTTP與HTTPS的區別?
    • 11、Https的流程?
    • 12、數字簽名?數字證書?
    • 13、對稱加密和非對稱加密區別?
    • 14、DNS決議程序?
    • 15、CSRF攻擊是什么?如何防御?

前言

一方面是因為計算機網路這塊的知識太零碎不好記憶,另一方面是因為金九銀十的到來,所以給大家準備了以下題目,可以對計算機網路的知識進行一個簡單的梳理,

正題

1、http狀態碼及其含義?

1**:資訊,服務器收到請求,需要請求者繼續執行操作
2**:成功,請求被正確接收并處理工程
3**:重定向,需要進一步操作以完成請求
4**:客戶端錯誤,請求包含語法錯誤或無法完成請求
5**:服務器錯誤,服務器處理請求時出現錯誤

常用狀態碼

101:切換協議,只能切換到更高版本的協議,切換到http的新版本協議
200:請求成功,一般用于get請求和post請求
204:無內容,服務器處理成功,但未回傳內容
301:永久移動,請求的資源已被永久的移動到新URI,瀏覽器會自動定向到新URL,以后的請求都應使用新的URI
302:臨時移動,新的請求應還使用原來的URI
303:查看其他
400:客戶端請求的語法錯誤,服務器無法理解
401:請求要求用戶的身份認證
403:服務器理解客戶的請求,但是拒絕執行此請求
404:服務器無法根據此請求找到對應的資源
500:服務器內部錯誤
501:服務器不支持請求的功能,無法完成請求
505:服務器不支持請求的http協議的版本


2、Http的常用的請求方式,區別和用途?

GET:請求指定的頁面資訊,并回傳物體主體
HEAD:類似GET請求,只不過請求沒有內容,用于獲取報頭
POST:向指定資源提交資料進行處理,資料被包含在請求體中
PUT:向服務器提交資料,修改資料
DELETE:洗掉服務器得某些資源
CONNECT:HTTP/1.1協議中預留給能夠將鏈接改為管道方式的代理服務器
TRACE:回顯服務器收到的請求,主要用于測驗或診斷
OPTIONS:允許客戶端查看服務器的性能

3、請簡單說一下你了解的埠及對應的服務?

21:FTP
22:SSH
23Telnet(遠程登陸)服務
25:SMTP(簡單郵件傳輸協議)
53:DNS域名服務器
80:HTTP超文本傳輸協議
443:HTTPS
1080:sockets
1521Oracle默認埠
3306MySQL默認埠
27017:MongoDB默認埠
6379:redis默認埠
7001Weblogic默認埠

4、計算機網路體系結構?

  1. OSI七層模型
    7、應用層
    6、表示層
    5、會話層
    4、運輸層
    3、網路層
    2、資料鏈路層
    1、物理層
  2. TCP/IP四層模型
    應用層
    運輸層(TCP or UDP)
    網際層IP
    網路介面層
  3. 五層體系結構
    5、應用層
    4、運輸層
    3、網路層
    2、資料鏈路層
    1、物理層

4.1、OSI七層模型

會話層、表示層、應用層的重點內容:

1、資料傳輸基本單位為報文
2、包含的主要協議:FTP(檔案傳送協議),Telnet(遠程登陸協議),DNS(域名決議協議),SMTP(郵件傳送協議),HTTP協議

應用層:為作業系統或者應用提供訪問網路的介面,
表示層:對上層的資料或資訊進行變換保證一個主機的應用層資訊可以被另一個主機的應用程式所理解,表示層的資料轉換包括資料的加密、壓縮和格式轉換,
會話層:會話層管理主機之間會話行程、即負責建立、管理、終止行程之間的會話,會話層還利用子在資料中加入校驗點,實作資料的同步
運輸層:第一個端到端,主機到主機的層次,傳輸層資料負責將上層資料分段并提供端到端的,可靠的或不可靠的傳輸,

1、運輸層負責將上層資料分段并提供端到端的、可靠的或者不可靠的傳輸以及端到端的差錯控制和流量控制問題
2、包含的主要協議:TCP協議(Transmission Control Protocol 傳輸控制協議),UDP協議(User Datagram Protocol用戶資料包協議)
3、重要設備:網關

網路層:實作兩個端系統的資料透明傳送,具體功能包括路由選擇、連接建立等,最少的字記憶就是“路徑選擇、路由及邏輯尋址”,

1、子網間的資料包進行路由選擇,此外網路層還提供路由選擇,擁塞控制等
2、基本資料單位為IP資料報
3、包含的主要協議:
	IP協議(Internet Protocol 因特網互聯協議)
	ICMP協議(Internet Control Message Protocol 因特網控制報文協議)
	ARP協議(Address Resolution Protocol 地址決議協議)
	RARP協議(Reverse Address Resolution Protocol逆地址決議協議)
4、重要設備:路由器

資料鏈路層:物理地址尋址、資料的成幀、流量控制、資料的檢錯、重發,資料鏈路層是在物理層提供服務的基礎上向網路層提供服務,其最基本的服務是將源自網路層的資料可靠的傳輸到相鄰節點的目標機網路層,在不可靠的物理媒介上為網路層提供可靠的服務,

1、資料鏈路層為網路層提供可靠的資料傳輸
2、基本資料單位為幀(frame)
3、主要的協議:以太網協議
4、兩個重要的設備:網橋和交換機

物理層:建立、鏈接、斷開物理鏈接,確保原始的資料可以在各種物理媒體上傳輸,有兩個重要的設備:中繼器(放大器)和集線器

5、如何理解HTTP協議是無狀態的?

1、HTTP的無狀態跟Cookie,Session等都沒有關系;
2、無狀態指的是兩個請求之間的相互獨立,第二個請求并不會知道第一個請求的情況,

有狀態:小明,國慶去哪里了?   
       去了北京
       好玩嗎?
       是的,非常好玩,

無狀態:小明,國慶去哪里了?   
       去了北京
       好玩嗎?
       什么?

6、瀏覽器輸入地址到顯示主頁的程序?

1、在瀏覽器地址欄輸入URL;
2、瀏覽器查看快取,看是不是”小鮮肉“(資料是否足夠新)
1)如果資源沒有快取,就發起請求
2)如果資源是新的,就直接回傳客戶端
判斷資源是否是新的,有兩個欄位:ExpiresCache-control
HTTP1.0 中提供Expires,表示一個絕對時間表示新鮮的時長
HTTP2.0中提供Cache-control:max-age=,的值以秒為單位,表示最長的保鮮時間,
3、瀏覽器決議URL獲取協議、主機、埠,path
4、瀏覽器組成一個http請求
5、瀏覽器獲取ip程序:
1)瀏覽器快取
2)本機快取
3)hosts檔案
4)路由器快取
5)ISP DNS快取
6)DNS遞回查詢(可能存在負載均衡導致每次的ip都不一樣)
6、打開一個socket與目標地址ip、埠建立鏈接,需要經過三次握手

1、客戶端發送一個SYN=1,Seq=X的包到服務器埠
2、服務器發回SYN=1,ACK=x+1,Seq=y的包
3、客戶端發送ACK=y+1,Seq=z的包

7、建立鏈接后 開始發送資料,瀏覽器接收回應后,決定是否關閉鏈接,關閉連接的時候需要四次揮手;

1、主動方發送Fin=1,ACK=z,Seq=x
2、接收方發送ACK=x+1,Seq=z
3、被動方發送Fin=1,ACK=x,seq=y
4、主動方發送ACK=Y,Seq=x

7、HTTP/1.0、1.1、2.0的區別

HTTP/1.0:需要明確開啟Keep_Alive
HTTP/1.1:默認開啟Keep-Alive,支持只發送head,支持host域,增加錯誤通知
HTTP/2.0:多路復用,頭部資料壓縮,服務器推送

8、互動程序中資料傳送完了,還不想斷開鏈接?

在 HTTP 中回應體的 Connection 欄位指定為 keep-alive

9、HTTP如何實作長連接?在什么時候會超時?

HTTP并不支持長連接,HTTP的長連接其實是TCP的長連接,長連接需要服務端和客戶端的支持,不同的服務器長連接的時間不一致,tomcat的應該是200ms,也可以設定Keep-Alive:timeout = 60,代表空閑60s后該長連接就會被關閉掉,

10、HTTP與HTTPS的區別?

HTTP:沒有加密
HTTPS:資料經過加密,HTTP+SSL,HTTPS按作用分為兩種,一種是建了一個安全資訊通道確保資料的安全,另一種是確認接收資訊的網站時安全的,

11、Https的流程?

(1)客戶端發送HTTPS請求,服務端回傳證書公鑰
(2)客戶端產生隨機對稱密鑰
(3)客戶端使用公鑰對隨機對稱密鑰加密
(4)客戶端發送加密的隨機對稱密鑰
(5)客戶端通過加密后的對稱密鑰進行通信

12、數字簽名?數字證書?

數字簽名:保證資料的正確性和完整性
數字證書:證明你自己是你自己

13、對稱加密和非對稱加密區別?

對稱加密:密碼只有一個,加密速度快
非對稱加密:公鑰和私鑰,安全速度較慢

14、DNS決議程序?

(1)www.baidu.com發送之后,會先看瀏覽器是否有記錄,有就直接結束,訪問這個IP地址,地址也通過TTL來設定;
(2)如果瀏覽器沒有命中,瀏覽器會檢查作業系統中是否有快取,如windows里邊的hosts檔案
(3)如果還沒有命中,就去去訪問本地域名服務器(LDNS),80%的請求應該都會在這里結束;
(4)如果在LDNS仍然沒有找到,那么就去找Root Server域名服務器進行決議;
(5)根域名服務器會回傳給LDNS一個所查詢域的主域名服務器(gTLD Server,國際頂級域名服務器,如com,cn等 )
(6)此時LDNS再發送請求給上一步回傳的主域名服務器
(7)接收請求的GTLD Server查詢并回傳這個域名的Name Server地址,這個Name Server就是網站注冊的域名服務器
(8)Name Server根據映射找到對應的IP,回傳LDNS
(9)LDNS快取這個域名和對應的IP
(10)LDNS把決議的結果回傳給客戶,客戶通過這個IP進行訪問

15、CSRF攻擊是什么?如何防御?

CSRF:跨站請求偽造,
通過referer欄位和添加Token進行驗證

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/321161.html

標籤:其他

上一篇:全網最詳細 Django 多專案uwsgi+nginx部署,實作多個專案同時訪問,不成功你來打我!

下一篇:如何將PHPcURL請求轉換為python

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more