主頁 > 軟體設計 > 你確定你了解應用層嗎?(每日補充中ing)

你確定你了解應用層嗎?(每日補充中ing)

2021-11-15 08:01:39 軟體設計

🔥首先得說!

🔥1.本專欄的計算機網路文稿主要是因為愛好,順便包含了408考試的全部內容,如果可以將其內容全部掌握,408家族之一的計網組織便不攻自破了,

🔥2.本專欄將持續推送總結類筆記以及對應計算機網路習題總結,如對考試有所要求可以訂閱本專欄獲得第一手?🏻更新資訊哦~各位的點贊和收藏真的是滿滿地給我動力!!🙋🏻

🔥3.后續可能會對408和各高校的計網題目分類拆解


L:大仙這就是“計網”組織嗎?傳說中408家族的四大組織之一?

🐉:沒錯!看來你也了解到這一步了👀,那也就不瞞你了,對的

L:傳聞四大組織服務的主子各不相同,不知“計網”為誰服務啊

🐉:簡單來說,網路應用就是計算機網路存在的理由;如果我們不能構想出任何有用的應用,也就沒有任何必要去設計它們的網路協議了

L:所以說,計網 是一個為網路應用服務的組織了🥷

L:就讓我把這個組織攪個底朝天吧!

🐉:小子!胡鬧,別亂來~


目錄

🔥首先得說!

🌔一、假如你想設計一個網路應用

??客戶/服務器模型(C/S)

1.服務器特點

2.客戶機特點

3.作業流程

4.主要特點

??B/S結構(Browser/Server)

C/S與B/S誰更好呢?

??P2P模型

1.優點

2.應用

3.缺點

??行程通信

1.客戶和服務器行程

2.行程與計算機網路之間的介面

??DNS:因特網的目錄服務

1.DNS提供的服務

·為什么說DNS是應用層協議?

2.層次域名空間

3.域名服務器

🔥根域名服務器

🔥頂級域名服務器

🔥權限/授權域名服務器

🔥本地域名服務器

4.域名決議程序


🌔一、假如你想設計一個網路應用

·假如咱們對網路應用有一些想法,自己也想制作一些網路應用,那么如何將此想法轉變為現實呢?

·我們要知道,研發網路應用程式的核心是寫出能夠運行在不同端系統通過網路彼此通信的程式

·當咱研發新應用程式時,需要撰寫將在多臺端系統上運行的軟體(比如在mac上的CSDN和華為p40上的CSDN);同時由于網路核心設備(如路由器、鏈路層交換機)并不在應用層上起作用,因此我們無需在應用層撰寫運行在網路核心設備上的程式,


?端系統:因特網上的所有主機:macbook、ipad、iphone等等

???我是分割線???

??客戶/服務器模型(C/S)


引子:

🐉:小子,看這名字,能猜猜這模型有什么特點嗎?

L:客戶和服務器?聽名字挺像顧客和店家的感覺啊,那我就以KFC舉個例子

L:把KFC類比為服務器,那么一家KFC的具體地址咱們得知道吧,不然怎么去KFC吃飯呢?其次KFC總不能開兩分鐘就關門吧,它得持續保持打開!

L:哦對了!KFC還不需要知道我們從哪來的!

服務器-客戶機

1.服務器特點

  1. 永久提供服務
  2. 永久性訪問地址/域名
  3. 服務器程式不需要知道客戶程式的地址

🐉:小子,分析的不錯,那你反向分析分析客戶端啊,行嗎你?

L:隨隨便便~我們去KFC就是去享受它提供給我們的服務;除此以外我們可以一周就星期四去(因為劃算),也可以天天去,總的來說:我們間歇性地體驗美食服務;我們可能從家里去KFC,也可能從學校去KFC,總之我們的起始地是動態的;最后我們也必須知道KFC在哪里,也就是知道它的地址

2.客戶機特點

  1. 與服務器通信,使用服務器提供的服務
  2. 間歇性接入網路
  3. 可能使用動態IP地址
  4. 客戶程式必須知道服務器程式的地址

·綜上,出于好玩的心理,🤔或者你可以說是應試,我想了個好玩口訣:

·服務器特點:校門口的 KFC24小時營業,它不知道我今天從寢室來還是從教室來,
確定地址 永久提供服務 服務器不需要知道客戶程式的地址

·客戶機特點:我 每周四 放學都從教室或寢室出發校門口的KFC 體驗美食

間歇性 動態IP 服務器地址 使用服務


3.作業流程

  1. 服務器處于接收請求的狀態
  2. 客戶機發出服務請求,并等待接收結果,
  3. 服務器收到請求后,分析請求,進行必要的處理,得到結果并發送給客戶機,

4.主要特點

1.網路中各計算機的地位不平等,服務器可以通過對用戶權限的限制來達到管理客戶機的目的,

2.客戶機相互之間不直接通信(例如:Web應用中兩個瀏覽器并不直接通信)

3.可擴展性不佳,受服務器硬體和網路帶寬的限制,服務器支持的客戶機數有限,

?解決辦法:應用資料中心

·一個資料中心能夠有數十萬臺服務器,它必須要供電和維護

·一個流行的社交網站站點如果僅有1臺服務器來處理所有請求,將很快變得不堪重負,為此配備大量主機的資料中心常被用于創建強大的虛擬服務器,例如:谷歌、百度、阿里、騰訊、位元組就有一個或多個資料中心


??B/S結構(Browser/Server)

B/S結構

簡而言之,B/S架構是從C/S架構改進而來,可以說是三層C/S架構 :在客戶機和服務器之間多了一個WEB服務器,

客戶機上只要安裝一個瀏覽器(如Chrome、Safari、Microsoft Edger)服務器安裝(SQL Server、Oracle、MYSQL)等資料庫,瀏覽器通過Web Server 同資料庫進行資料互動,


C/S與B/S誰更好呢?

在回應速度,用戶界面,資料安全等方面,C/S強于B/S

在業務擴展和適用www條件下,B/S明顯勝過C/S,

可以這么說,B/S的強項就是C/S的弱項,反之亦然;它們各有優缺點,相互無法取代,因此采用C/S與B/S混合模式才是最佳方案,

???我是分割線???

??P2P模型


·P2P模型中,所有主機是平等的,任意一對計算機稱為對等方(Peer),直接相互通信


1.優點

  1. 減輕了服務器的計算壓力,消除了對某個服務器的完全依賴,大大提高了系統效率和資源利用率
  2. 多個客戶機之間可以直接共享檔案(BitTorrent)
  3. 可擴展性好:下載的人越多,下載速度越快傳統服務器有回應和帶寬的限制,因此只能接受一定數量的請求)
  4. 網路健壯性強,單個結點的失效不會影響其他部分的結點

2.應用

1.BitTorrent(P2P)

2.迅雷(P2SP) ·一邊從服務器下載,一邊從其他用戶那下載

3.視頻會議(Skype)


3.缺點

  1. 在獲取服務的同時,還要給其他結點提供服務,會占用較多的記憶體影響整機速度

???我是分割線???

??行程通信

·用作業系統的術語來說,進行通信的實際上是行程(process)而不是程式,一個行程可以被認為是運行在端系統的一個程式,我們關注運行在不同端系統上的行程間的通信,

·在兩個不同端系統上的行程,通過跨越計算機網路交換報文而相互通信,


1.客戶和服務器行程

·在一對行程之間的通信會話場景中

🔥客戶:發起通信(即在會話開始時發起與其他行程的聯系)的行程被標識為客戶

🔥服務器:在會話開始時等待聯系的行程被標識為服務器

·對于web:瀏覽器是一個客戶行程;Web服務器是一臺服務器行程

·對于P2P檔案共享:

(1)下載檔案的對等方標識為客戶,上載檔案的對等方標識為服務器

(2)P2P檔案共享的某些應用中,一個行程既能夠是客戶又是服務器

??DNS:因特網的目錄服務


🐉:小子,因特網上的主機和咱們人類一樣,可以用多種方式進行標識,主機的一種標識方法是用它的主機名(hostname),如 www.baidu.com、www.google.com 等,這些名字便于記憶也樂于令人們記憶

L:哦哦,所以主機名就好比咱們人類的名字對吧,好記!

🐉:但是主機名幾乎沒有提供關于主機💻在因特網中位置的資訊;況且主機名可能由不定長的字母數字組成,路由器難以處理,因此主機也可以使用IP地址(IP address)進行標識,

L:所以IP地址就好比咱們人類的身份證號咯!


1.DNS提供的服務

·人們喜歡記好記的主機名;而路由器喜歡記定長的、有層次結構的IP地址,因此就需要一種能進行主機名到IP地址轉換到目錄服務——DNS的主要任務

·DNS是:

  1. 一個由分層次的DNS服務器實作的分布式資料庫
  2. 一個能使主機查詢分布式資料庫的應用層協議
  3. DNS協議運行在UDP上,使用53號埠
  4. DNS服務器通常是運行BIND軟體的UNIX機器

·從概念上可將DNS分為3個部分:層次域名空間域名服務器決議器


·為什么說DNS是應用層協議?

1.使用客戶-服務器模式運行在通信的端系統之間

2.在通信的端系統之間使用下層的UDP傳送DNS報文

??特別之處在于:DNS不是一個與用戶直接打交道的應用(HTTP、FTP、SMTP),它為因特網上的應用程式及其他軟體提供一種核心功能(主機名---->IP地址)

實作程序如下:

舉例,林軒的mac上的一個瀏覽器請求URL 二·浮光掠影_kikokingの位元宇宙-CSDN博客https://blog.csdn.net/qq_54151955/article/details/121279919?spm=1001.2014.3001.5501

  • step1.林軒的mac上運行著DNS應用的客戶端
  • step2.瀏覽器從上述URL中抽取出主機名CSDN博客 - 專業IT技術發表平臺,并將這個主機名傳給DNS應用的客戶端
  • step3.DNS客戶端向DNS服務器發送一個包含主機名的請求
  • step4.DNS客戶最侄訓收到一份回答報文,其中包含有對于該主機名的IP地址
  • step5.瀏覽器能夠向位于該IP地址80埠的HTTP服務器行程發起一個TCP連接

2.層次域名空間

·因特網采取層次樹狀結構的命名方法:舉例:kikoking.blog.csdn.net(119條訊息) kikokingの位元宇宙_kikokingzz_CSDN博客-C的語言世界,資料結構的江湖,CSAPP 加油站領域博主icon-default.png?t=LA92https://kikoking.blog.csdn.net/

·域名即主機名;域是名字空間中一個可被管理的劃分,域可以劃分為子域,而子域可以繼續劃分為子域的子域,這樣就形成了頂級域、二級域、三級域

·每個域名都由標號序列組成,各標號之間用點“.”隔開

·關于域名中的標號有以下幾點需要注意:

  1. 標號中的英文不區分大小寫
  2. 標號中除連字符(-)外不能使用其他的標點符號,
  3. 每個標號不超過63個字符,多標號組成的完整域名最長不超過255個字符,
  4. 級別最低的域名寫在最左邊,級別最高的頂級域名寫在最右邊,

🐉:小子看看這層次域名空間,想到些什么?

L:這分成子域,子域的子域,不就相當于咱們現實生活中的地址嘛?不愧是美國人先研究出來的,這地址順序和英文一樣啊!

🐉:喲呵,小伙子發現的不錯嘛!

L: 中國.黑龍江省.哈爾濱市.哈爾濱工程大學

Harbin Engineering University.Harbin City.Heilongjiang Province.China

四級地名 三級地名 二級地名 頂級地名

L:不就是如此!just so so~


·對于上述案例 也就很好理解了:

頂級域名(Top Level DomainTLD)分為如下三大類:

1.國家頂級域名(nTLD)

·國家和某些地區的域名,如“.cn”表示中國,“us”表示美國,.uk"表示英國,

2.通用頂級域名(gTLD)

·常見的有“.com”(公司)、“.net"(網路服務機構)、“.org”(非營利性組織)和“.gov"(國家或政府部門)等,

3.基礎結構域名

·這種頂級域名只有一個,即arpa,用于反向域名決議,因此又稱反向域名,

3.域名服務器


  1. 因特網的域名系統被設計成一個聯機分布式的資料庫系統,并采用客戶/服務器模型
  2. 域名到IP地址的決議是由運行在域名服務器上的程式完成
  3. 一個服務器所負責管轄的(或有權限的)范圍稱為區(不以“域”為單位),一個區中的所有結點必須是能夠連通的,每個區設定相應的權限域名服務器,用來保存該區中的所有主機的域名到IP地址的映射,
  4. 每個域名服務器不但能夠進行一些域名到IP地址的決議,而且還必須具有連向其他域名服務器的資訊,當自己不能進行域名到IP地址的轉換時,能夠知道到什么地方去找其他域名服務器,
  5. ·DNS使用了大量的域名服務器,它們以層次方式組織,沒有一臺域名服務器具有因特網上所有主機的映射,相反,該映射分布在所有的DNS上,

·采用分布式設計的DNS,是一個在因特網上實作分布式資料庫的精彩范例,主要有4種型別的域名服務器


🔥根域名服務器

  • 1.最高層次域名服務器,因特網上有13個根域名服務器
  • 2.所有根域名服務器都知道所有的頂級域名服務器的IP地址
  • 3.本地域名服務器無法決議時,首先求助于根域名服務器
  • 4.根域名服務器掌管頂級域(.com/.net),但通常不直接將查詢的域名轉換為IP地址,而是告訴本地域名服務器下一步應當找哪個頂級域名服務器查詢

🔥頂級域名服務器

  • 1.管理在該服務器注冊的所有二級域名
  • 2.對DNS查詢請求可能是最后的結果,也可能讓你找下一個服務器(就是給你下一個服務器的IP)

🔥權限/授權域名服務器

  • 1.每臺主機都必須在授權域名服務器登記(1臺主機最好至少有2個授權域名服務器-萬一一個壞了呢?那就找不到主機了)
  • 2.許多域名服務器同時充當本地域名服務器和授權域名服務器
  • 3.授權域名服務器總能將其管轄的主機名轉換為該主機的IP地址

🔥本地域名服務器

  • 1.每個因特網的服務提供者(ISP)、或一所大學、或者未來的林軒大佬!都可以擁有一個本地服務器
  • 2.當一臺主機發出DNS查詢請求時,這個查詢請求報文就發送給該主機的本地域名服務器

4.域名決議程序


·正向決議:域名--->IP地址

·反向決議: IP--->域名

·重點:當客戶端需要域名決議時,通過本機的DNS客戶端構造一個DNS請求報文,以UDP資料報方式發往本地域名服務器(后面有道題,這里是重點!)

·兩種查詢方式:


·上題談到了本地快取問題,這邊就補充一下:為了提高DNS的查詢效率,在域名服務器中廣泛使用高速快取,當一個DNS服務器收到該DNS的查詢結果時,它能將該DNS資訊快取在高速快取中,這樣,當另一個相同域名查詢到該DNS服務器時,該服務器就可以直接告訴它答案啦!

·但是DNS服務器會在一段時間過后丟棄告訴戶

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

標籤:其他

上一篇:基于TCP的網路編程

下一篇:[Java基礎]Map集合的遍歷

標籤雲
其他(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