什麼是客戶端-伺服器的含義

正式定義

雙方(客戶端-伺服器)採用協議,在兩個互動點之間建立對話橋樑,一方面是 PC、智慧型手機或其他設備,透過使用者使用的特定軟體(例如網路瀏覽器或FTP 程式),另一方面是電腦結構(具體稱為伺服器,理解為設計為主動並連續回應請求的強大電腦)。

重要的是要了解伺服器必須有足夠的能力來回應需求,這就是為什麼像亞馬遜這樣的大型網站在由多個同時工作的伺服器組成的網路結構上運行的原因。

歷史:基礎與意義的演變

客戶端-伺服器架構的想法可以追溯到 20 世紀 60 年代中期,更具體地說,可以追溯到 1964 年的 IBM OS/360 電腦系統,可以向該系統發送執行任務的請求,系統以以下輸出進行回應說任務。

在當時,這是一種必要的架構:電腦是大型設備,佔用大量空間,而且價格昂貴。個人電腦或微型電腦的概念還不存在(幾乎在 20 世紀 80 年代誕生),這些機器必須由多個使用者共享。

這就是為什麼我們尋求以所有可能的方式優化其效能,例如允許在某些時間執行作業,以利用晚上、週末或很少用戶即時使用機器工作的一般時間。

IBM 在新興運算市場的成功導致其機器製定了標準,而這在計算領域相當於強加標準,這就是最初的客戶端-伺服器模型演變並盛行的原因。

它的成功使得 DARPA 計劃的負責人在 1969 年創建了阿帕網 (ARPANET)(其去中心化電腦網路)時接受了它。阿帕網後來成為現在的網路。

這兩個術語(客戶端和伺服器)很快就開始指稱提供服務或內容的程式(伺服器)和連接到它以請求它們的程式(客戶端)以及執行此類任務的實體電腦。

這樣,許多公司就有了“伺服器”,這些伺服器無非是不在用戶物理範圍內的計算機,專門運行一系列程式和服務(例如文件共享、印表機、儲存、… )從工作站(稱為“客戶端”計算機)使用。

儘管自 70 年代初以來的這些年裡,客戶端-伺服器概念幾乎沒有發展或根本沒有發展,但為其提供動力的技術卻在不斷發展。推送技術就是這種情況,它允許客戶端接收新數據,而無需向伺服器發出明確更新請求。

結構與功能:不易察覺且本質

在我們使用先進電子設備(例如智慧型手機、電腦或智慧電視)的過程中,我們每天都在使用客戶端-伺服器模型,甚至沒有意識到這一點。

例如,我們訪問的每個網站都響應這種模型:我們瀏覽的設備(無論是我們的智慧型手機還是電腦)是客戶端,網頁從遠端電腦「提供」到遠端電腦我們透過一個稱為網頁伺服器的程式連接到。

我們透過網頁瀏覽器查詢的所有內容都回應相同的方案和模型。例如,您正在閱讀的這些相同的文字行是從託管包含它們的頁面的 Web 伺服器「提供」的。

Facebook 或 Twitter 等社群網路也採用相同的模型。即使是 Instagram、WhatsApp 或 Telegram 等行動應用程式也回應相同的客戶端-伺服器模型。

此模型還包括流行的內容應用程序,例如從智慧電視或任何其他設備使用的 Netflix、Spotify 或 Amazon Prime Video。這些內容並不是駐留在我們本地的電腦上,而是我們隨意從為我們提供服務的公司的伺服器上下載它們。

我們甚至在沒有意識到的情況下使用客戶端-伺服器模型,而不必求助於有螢幕的裝置:如果你家裡有一個像Google Home 或Amazon Alexa 這樣的智慧揚聲器,當你向它發出語音命令時,它就會它被傳送到處理它並執行請求的操作的伺服器(或者如果它們不理解則傳回錯誤訊息),從而向客戶端裝置(揚聲器)提供資訊或內容。