用戶端-伺服器架構(英語:Client-server model),也稱C/S架構ㄗㄨㄥˋ式架構[1],是一種將用戶端伺服器分割開來的分散式架構。[2]每一個用戶端軟件的實例都可以向一個伺服器或應用程式伺服器發出請求。有很多不同類型的伺服器,例如檔案伺服器遊戲伺服器等。

Thumb
用戶端通過互聯網與伺服器互動的圖例

主從式架構通過不同的途徑應用於很多不同類型的應用程式,最常見的用途為萬維網上的網頁。例如,當在維基百科閱讀文章時,電腦和網頁瀏覽器即為用戶端;同時,組成維基百科的電腦、資料庫和應用程式即為伺服器。當網頁瀏覽器向維基百科請求指定的頁面時,維基百科伺服器從維基百科的資料庫中找出所有該頁面需要的資訊,結合成一個網頁,再傳送回瀏覽器。

特徵

主從式架構意圖提供一個可伸縮(英語:scalable)的架構,藉此網上的電腦或者處理過程是一個用戶端或者伺服器。伺服器軟件一般,但不總是,執行在強大的專用商業電腦上。另一方面,用戶端一般執行在普通個人電腦或者工作站上。

伺服器端的特徵:

  • 被動的角色(從)。
  • 等待來自用戶端的請求。
  • 處理請求並傳回結果。

用戶端的特徵:

  • 主動的角色(主)。
  • 傳送請求。
  • 等待直到收到響應。

伺服器可以是有狀態或者無狀態的。無狀態的伺服器不會保留任何兩個請求之間的資訊,有狀態伺服器會記住請求之間的資訊。這些資訊的作用域可以是全域的或者某個事務 (session)的。像Apache HTTP等只提供靜態HTML頁面的網頁伺服器是一個無狀態伺服器的例子,像Apache Tomcat網頁應用伺服器是一個有狀態伺服器。

伺服端與用戶端的互動經常使用循序圖描述,循序圖是UML中的一個標準。

與點對點技術的比較

另一種目前廣範使用的網絡架構類型是對等架構(P2P),不同於主從式架構,網絡上的每個使用端或程式的實體都擁有相同的等級,同時扮演用戶端與伺服器的角色。

參見

其他網絡架構

參考文獻

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.