當前位置:
首頁 > 最新 > 寫給非專業人士的伺服器技術指南

寫給非專業人士的伺服器技術指南

關鍵時刻,第一時間送達!

作者丨Kannan Chandrasegaran

翻譯丨Vincent

譯者註:當你遇到別人討論關於伺服器的內容時,你是否能夠聽得懂?本文作者向讀者介紹了一些非技術類的內容,讓讀者對伺服器有一個更好的理解。以下為譯文。

假設你在休息室裡面碰到了一位軟體開發的同事。她正準備去玩桌上足球,而你為了能夠提提神,正在喝紅牛。雖然你不是故意為了和她在一起而特意這麼做的,但是事實是現在這裡只有你們兩個。為了讓場面不那麼尷尬,你嘗試打破這種寂靜,

「所以你現在手頭負責的是什麼項目?」

她開始告訴你,你們就這麼開始聊起來了,最後你也很贊同她的說法,然後你倆就分道揚鑣了。這樣就完美地避免了尷尬。

但有時,如果你遇到了其他的同事,比如伺服器工程師,後端開發人員。你可能對他們工作的內容不太了解,所以你可能會詢問他們到底是如何實現的。

聽到這些陌生的辭彙,你的腦海可能已經有大量的疑問了。「API是什麼東西?我們應該在什麼時候用到資料庫?Jason又是?」

你的工程師朋友們談論的是關於伺服器。也許你以前聽過這個詞,但可能根本就不知道它究竟是什麼。今天我們就來好好聊聊它。

鑽到屏幕後面去

當你用手機點開一個APP,是不是每次用APP都感覺很爽的樣子啊?事實上應用程序就是所謂的前端。它負責給用戶帶來友好的體驗。但這並不是應用程序的全部功能。

假設你在消息傳遞平台(如Whatsapp)上給我發送了一條消息。看起來好像是信息從你的手機發到了我的手機上。但是讓我們仔細想想,比方說,當我的手機關機了,你給我發送完信息以後你又關機了,然後我開機了。儘管我們的手機從來沒有在同一時間運行,但我還是收到了消息。

很明顯,我們還是忽略了某些東西。

其實我們忽略的就是後端,也可以稱之為伺服器

伺服器

伺服器是一台計算機,它負責連接到互聯網,並且一直處於運行狀態。

伺服器有兩個主要功能:存儲數據和促進通信。

因此,當你發送消息時,實際上是手機上的應用程序將消息發送了伺服器上面,並存儲在了伺服器上。當伺服器監測到我的手機連上了以後,伺服器就會把這些存儲的消息發送給我。

伺服器就是應用程序的強大後援團

無論應用程序需要什麼信息,它都會向伺服器發送請求。當應用程序的某位用戶需要與另一位用戶對話時,伺服器就會促進通信。

像伺服器、後端和API這樣的術語是可以經常互換使用的。

存儲

伺服器的主要功能之一是存儲。

存儲的內容包括照片、視頻和文檔這些文件。伺服器以結構化的方式進行存儲,類似於計算機上的文件夾,這樣它們就可以被應用程序訪問。

伺服器也可以存儲信息。每個應用程序都有一些很重要的信息,這些信息對於應用程序的工作方式來說很重要。

你可以把它想像成一堆的電子表格。例如,應用程序需要存儲用戶信息,以及登錄情況,以便能夠進行身份驗證。應用程序可能是一個餐館目錄,在這種情況下,伺服器會存儲關於每家餐館的詳細信息。

除了信息之外,伺服器還記錄了一些信息之間的關係。例如,某個用戶「喜歡」應用程序上的某家餐館,伺服器會記住該用戶和餐館之間的關係。

這樣很多問題都可以迎刃而解,比如:

「有多少人喜歡這家餐廳?」

「用戶喜歡什麼餐館?」

「用戶都喜歡什麼菜?」

信息以及信息之間的關係存儲在資料庫中。資料庫有很多類型,但它們都有一些核心功能:

存儲信息

存儲信息間的關係

可以響應不同的信息問詢(這就可以方便客戶提交每一種不同信息請求的響應)

我可以列出很多不同類型的資料庫,它們各有千秋。如果你聽到有人使用「SQL」,「MongoDB」,「CouchDB」,「Redis」這樣的術語,說明他們正在討論的是關於資料庫的內容。

通信

伺服器另一個重要的作用是與app以及其他伺服器間進行高效的通信。app在工作時需要與伺服器進行頻繁的通信。

應用程序中的許多活動都需要與伺服器進行通信。例如,如果用戶搜索某樣東西,則需要將搜索項發送到伺服器,伺服器將對結果進行響應。如果用戶向另一個用戶發送消息,則消息將發送到伺服器。然後通常是以推送通知的形式發送到另一個用戶的應用程序。

伺服器為app提供了一個可以調用的介面——API。介面中的各個函數可以稱為端點

通信的本質是數據的傳輸。最常見的兩種通信格式是JSON和XML。

左邊的是xml,右邊的是JSON

乍一看,這些格式似乎很難讀懂。

需要謹記的是伺服器只是一台計算機,跟筆記本電腦或手機一樣。應用程序以觸摸或聲音的形式接收用戶輸入,再處理這些信息,然後以圖像的形式輸出到屏幕上。手機上的app主要用於用戶交互,輸入輸出都十分人性化,不需要我們自己去讀取上面難懂的格式。

伺服器是只與其它計算機通信的計算機。

人類通過諸如字體大小、文字顏色和布局之類的進行表達。但這些對計算機來說是沒有意義的。

伺服器通信以易於另一台計算機解析和理解的格式發生。

伺服器應用程序

與在手機上運行應用程序一樣,你需要一個在伺服器上運行的應用程序。伺服器應用程序是使用伺服器端框架構建的。流行的選項包括Ruby on Rails、PHP、ASP.NET,Java,Node.js。

API是通往伺服器的網關,應用程序知道在那裡調用。資料庫存儲所有信息。您的伺服器應用程序是「大腦」,它把所有東西都放在一起。

它偵聽並響應來自API的請求,它將從資料庫中添加和檢索信息,並做出決策。例如,當應用程序發送登錄信息時,請求通過API進來,正確的登錄信息存儲在資料庫中。但是伺服器應用程序的工作是比較兩者,並通過API對應用程序做出適當的響應。

硬體

當有人說「伺服器」時,你可能會一下子想到這種場景:一間鎖著的房間里閃爍著燈光,等待湯姆·克魯斯飾演的007從天花板上跳下來偷東西。

許多大公司都有自己的伺服器。Facebook和谷歌在全球擁有數百台伺服器。當運行的服務用戶量達到數百萬時,運行自己的伺服器可以更便宜,而且性能也會更好。

很多開發人員自己不會使用物理伺服器,而是使用某種雲服務。像Amazon Web Services、Azure和Digital Ocean這種提供「虛擬伺服器」的。這些服務本身擁有硬體,也是自己去維護,而開發人員只是上傳伺服器應用程序。

現在甚至還有一些後端作為服務提供者,開發者不需要寫複雜的伺服器應用就可以輕鬆部署自己的後端了。

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

你看到的大多數應用程序可能都有一個後端組件。當然也有一些應用程序是不需要的。判斷是否存在後端有一種簡單的方法:

如果切換到飛行模式,應用程序還能正常工作嗎?

如果不能,那麼可能存在後台伺服器。

讀完這篇文章希望可以幫助你更好地理解應用程序的後端是什麼樣子的。也許,下次遇到朋友時,你可以和他們輕鬆地談論JSON的故事。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

Postgres中更好的資料庫遷移
來自 Underminer 工作室的虛擬現實優化建議
Nightdive 通過虛擬途徑為老遊戲營造光明的未來
Pixeldash 工作室的多樣化成功之路
VRMonkey 提供的虛擬現實用戶體驗技巧

TAG:CSDN |