JavaRush /Java Blog /Random-TW /伺服器. 傻瓜教育計劃

伺服器. 傻瓜教育計劃

在 Random-TW 群組發布
下面我們提供了 Panopto 開發人員 Kannan Chandrasegaran 的文章《非技術人員伺服器指南》的改編翻譯。請注意,本文面向對應用程式和伺服器的伺服器端概念不太熟悉的初學者。 伺服器.  傻瓜教育計劃 - 1

從辦公室生活開始

相信我,在 IT 公司當「非技術人員」是很困難的!行銷人員、銷售經理、會計師——沒關係——他們時不時會遇到技術精湛的同事。他們可以是程式設計師或系統管理員……無論哪種方式,「非技術人員」都會感覺自己的大腦的重要部分被截肢了。或者他們降落在一個未知的星球上,那裡有智慧的非人形生命。或者…
伺服器.  傻瓜教育計劃 - 2
當然,有時一切都會有美好的結局。例如,一個前端女孩正在走廊上行走。沒有什麼預示著麻煩:她朝左邊走,你朝右邊走,而且要盡快……不,這次沒有發生。你已經和她坐在桌邊,試圖克服尷尬的沉默,你問道:“那麼……你到底是做什麼的?” 她開始說些什麼,但你並不能立刻明白她在說什麼。這些詞似乎很熟悉:用戶介面、應用程序,還有——是的,Facebook 是一個網站。是的,有按鈕、菜單……你不知何故弄清楚了她工作的複雜性,向她點頭告別,然後你們在一間大辦公室的走廊里分道揚鑣。
伺服器.  傻瓜教育計劃 - 3
但遲早你不會那麼幸運:你會遇到伺服器工程師。或後端開發人員。不知道你現在會發現自己身處在什麼樣的叢林,你天真地問了同樣的問題,然後……收到了胡言亂語的回應。你聽到很多外來詞,腦海中閃過一些念頭:“問 API 是什麼是禮貌的嗎?”、“我們一直在使用‘數據庫’,不是嗎?”、“到底是誰?這個傑森?” (JSON)??」。你的工程師朋友試圖向你介紹伺服器,但他不明白你理解他充滿專業術語的演講有多困難。您可能以前聽說過“伺服器”這個詞,但它在許多不同的上下文中使用,因此很難理解它的含義。好吧,讓我們試著理解這個術語。

掉進兔子洞

當普通人(即不是程式設計師或管理員)使用應用程式時,他看到的只是介面,也就是對某些明顯(最常見)操作做出反應的圖片。事實上,用戶通常理解的「應用程式」是它的前端,即前端部分,是與他們互動的包裝器。但用戶對應用程式的內部結構(即應用程式的運作原理)知之甚少。假設您透過 Whatsapp 或 Viber 等方式向我發送訊息。看起來有一條訊息從你的智慧型手機發送到我的。讓我們仔細看看這個過程。假設您在我的手機關閉時向我發送了一條訊息,然後您自己關閉了智慧型手機。於是,我打開手機,仍然收到你的訊息,儘管我們的手機不能同時運作。看來我們錯過了什麼!這就是我們錯過的「東西」——後端或伺服器。
伺服器.  傻瓜教育計劃 - 4
當程式設計師談論前端和後端時,他們通常指的是應用程式的使用者部分與程式邏輯的分離。因此,前端是應用程式的介面部分,後端是其伺服器部分。

伺服器

本質上,伺服器是一台計算機器,一台連接到互聯網並不斷開啟的電腦。
伺服器的兩個主要任務是資料儲存和通訊。
伺服器.  傻瓜教育計劃 - 5
您透過 Whatsapp 或 Viber 發送訊息,智慧型手機上的應用程式會將訊息傳送到儲存訊息的伺服器。當我的智慧型手機上安裝的 Viber 連接到伺服器時,它會向我發送所有儲存的訊息。
伺服器是應用程式運行的“基地台”
當應用程式需要任何資訊時,它會聯繫伺服器。當應用程式需要與該應用程式的另一個用戶通訊時,伺服器允許他們進行通訊。伺服器、後端和 API 等術語通常可以互換使用。

儲存或資料儲存系統

伺服器的主要任務是資料儲存。這包括文件:照片、影片和文件。伺服器以類似於電腦上資料夾的結構化方式儲存它們,因此應用程式可以存取它們。資訊也儲存在伺服器上。所有應用程式都包含對其操作重要的資訊。
伺服器.  傻瓜教育計劃 - 6
您可以將此資訊呈現為一組表格。例如,應用程式需要儲存有關使用者及其密碼的信息,以便進行身份驗證。您的應用程式可以是餐廳指南,在這種情況下,服務器將儲存有關每個餐廳的資訊。除了資訊本身之外,伺服器還記錄資料之間的關係。例如,用戶在智慧型手機上的應用程式中喜歡一家餐館,伺服器會記住該餐館和用戶之間的這種聯繫。
伺服器.  傻瓜教育計劃 - 7
這可以讓你回答很多問題。例如:
  • 有多少用戶喜歡這家餐廳?
  • 該用戶喜歡哪些餐廳?
  • 哪些美食能夠同時吸引多位使用者?
資訊和資料之間的關係儲存在資料庫(DB)中。資料庫有很多種類型,但它們都是:
  • 可以儲存資訊
  • 可以儲存資料之間的關係
  • 可以接收資訊請求並根據請求將其作為單一資料或一組資料回應。
資料庫有很多種類型,每種類型都有自己的優點和缺點。如果您聽到 SQL、MySQL、MongoDB、CouchDB、Redis 等術語,那麼您就知道我們正在談論資料庫。

交互作用

伺服器的關鍵任務是與應用程式和其他伺服器互動。
伺服器.  傻瓜教育計劃 - 8
許多應用程式任務需要與伺服器互動。例如,如果使用者正在搜尋某些內容,則搜尋查詢將發送到伺服器,並且結果來自那裡。如果一個用戶向另一個用戶發送訊息,該訊息首先到達伺服器。然後從那裡將其發送到另一個用戶的應用程序,通常以發送通知的形式。伺服器提供的供應用程式與其互動的介面通常稱為API。嗯,一些介面功能可以與端點相關聯,例如與網站上的搜尋或授權相關聯。對於外行人來說,這種互動可能看起來很奇怪。兩種最常見的互通格式是 JSON 和 XML。
伺服器.  傻瓜教育計劃 - 9
左邊是 XML,右邊是 JSON 乍看,這些格式看起來很難閱讀。重要的是要了解伺服器只是一台計算機,就像您的筆記型電腦或智慧型手機一樣。手機上的應用程式透過語音、文字、語音辨識或觸控螢幕接受使用者輸入。應用程式處理這些信息,然後在螢幕上以圖像的形式提供答案。智慧型手機是與人互動的計算機,因此以方便人的形式提供輸入和輸出。伺服器是一台僅與其他電腦互動的電腦。一個人透過以下因素來感知訊息:字體大小、文字顏色和格式。但這對計算機來說毫無意義。
伺服器之間的交互以其他計算機易於解析和理解的格式進行。

伺服器應用

如果您想創建一個在手機上運行的應用程序,您還需要一個在伺服器上運行的應用程式。伺服器端應用程式是使用伺服器端程式語言和框架建立的,流行的選項是JavaRuby on RailsNode.jsPHPASP.NET
伺服器.  傻瓜教育計劃 - 10
您可以說 API 是伺服器的“門”,應用程式知道要敲開它們。資料庫儲存您的所有資訊。伺服器應用程式是將一切連接在一起的「大腦」。它接收並回應透過 API 發送給它的請求,添加和檢索資料庫中的信息,並做出決策。例如,當使用者應用程式提交登入資訊時,請求透過API發出,正確的登入資訊儲存在資料庫中。伺服器應用程式的任務是比較它們並使用 API 對應用程式做出相應的回應。

硬體

伺服器.  傻瓜教育計劃 - 11
當您聽到“服務器”這個詞時,您可能會想到這樣的圖像:封閉的房間裡燈光閃爍的櫥櫃。也許,為了完成這幅畫,唯一缺少的是湯姆克魯斯,他將從天花板上下來偷東西。許多大公司擁有自己的伺服器和整個資料中心(那些有閃爍機櫃的巨大房間)。Facebook 和 Google 在全球擁有數百台伺服器。當您運行擁有數百萬用戶的龐大服務時,運行自己的伺服器可以顯著降低成本並提供更好的效能。許多開發人員不再維護自己的伺服器,而是使用雲端服務。Amazon Web Services、Azure 和 Digital Ocean 等服務提供了使用「虛擬伺服器」的能力。這些服務擁有並維護硬件,開發人員只需在其上加載伺服器應用程式即可。一些服務提供者將後端作為服務提供,允許您擁有一個簡單的後端,而無需自己編寫後端應用程式。

所有應用程式都需要後端嗎?

您熟悉的大多數應用程式可能都有後端組件。當然,您可以找到沒有伺服器部分的程式。例如,一些生產力應用程式。確定應用程式是否有後端的簡單方法如下所示:
如果切換到飛航模式,該應用程式還能運作嗎?
如果答案是“否”,則表示該應用程式肯定有後端伺服器。
伺服器.  傻瓜教育計劃 - 12
我希望您現在已經了解應用程式的後端是什麼。也許下次你見到你的程式設計師同事時,你不僅能夠理解他們在說什麼,而且還能在談話中使用一些該死的「Jason」。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION