在系統設計領域,網路是將不同組件黏合在一起的黏合劑。無論您是建立 Web 應用程式、分散式系統,還是簡單的後端服務,了解網路的工作原理都是確保順暢通訊、安全性和效能的關鍵。在本章中,我們將討論網路的一些核心方面,這些方面對於建立可擴展且可靠的系統至關重要。
讓我們從基礎開始。 電腦網路是相互通訊的互連設備(電腦、伺服器、路由器等)的集合。它就像是資料的郵政系統:它讓不同的設備以資料包的形式發送和接收訊息。當使用者與線上服務(例如,您的食品配送應用程式)互動時,這些資料包會不斷在其裝置和為該應用程式提供支援的伺服器之間來回發送。
範例:在典型的辦公室中,員工的電腦透過 LAN 連接到印表機、文件伺服器,有時甚至連接到電話。此設定允許快速共享資源。
範例:想像一家在紐約、倫敦和東京設有辦事處的大公司。辦公室內部有 LAN,但為了相互通信,他們使用 WAN,可能利用網際網路或專用連線。
為了了解網路如何運作,我們使用OSI模型,它將網路分為七層:
在系統設計中,我們大部分時間都專注於第 3 層到第 7 層,尤其是在處理通訊協定、安全性和資料流時。
HTTP(超文本傳輸協定) 和 HTTPS(HTTP 安全) 是用於網路通訊的主要協定。它們定義了訊息的格式以及在客戶端(如瀏覽器)和伺服器之間傳輸的方式。
範例:您在瀏覽器中輸入“www.fooddelivery.com”,它會發送 HTTP 請求來取得主頁。
範例:當使用者在您的送餐應用程式上下訂單時,HTTPS 會確保他們的付款詳細資訊在從裝置傳輸到您的伺服器時經過加密且安全。
TCP(傳輸控制協定) 和 IP(網際網路協定) 是為網際網路提供動力的兩個基本協定。
範例:如果您的食品配送應用程式將客戶詳細資訊傳送到伺服器,TCP 將確保整個訊息都送達而不會遺漏任何部分。
範例:當您從手機發出請求時,它會使用您的 IP 位址將資料路由到伺服器。伺服器有自己的IP位址,允許封包正確回傳給你。
TCP/IP 共同構成了網路通訊的支柱。這就像可靠的郵政服務:TCP 確保包裹內容完好無損,IP 確保包裹到達正確的地方。
DNS 就像網路的電話簿。我們不記住 IP 位址(就像伺服器的電話號碼),而是使用「www.example.com」等網域。 DNS 將這些名稱解析為 IP 位址,以便您的裝置知道要將請求傳送到哪裡。
負載平衡器在水平擴展時至關重要。它是一種在多個伺服器之間分配傳入流量的工具,以確保沒有任何伺服器被淹沒。這使您的系統更具可擴展性和容錯性。
CDN 是減少延遲並提高分佈在不同位置的使用者效能的絕佳方法。 CDN 是分佈在全球各地的分散式伺服器網絡,用於儲存內容的快取版本。當使用者從您的網站請求某些內容時,CDN 會從距離他們最近的伺服器而不是您的主伺服器提供該內容,從而減少了載入時間。
範例:假設您的食品配送應用程式在印度和美國有客戶,但您的主要伺服器位於歐洲。如果沒有 CDN,印度用戶可能會遇到載入時間緩慢的情況,因為他們的請求必須一路傳輸到歐洲。但透過 CDN,印度的伺服器可以提供快取的圖像、餐廳詳細資訊和靜態內容,使應用程式感覺更快。
安全性是任何系統中的一個主要問題,確保網路安全通訊的主要技術是SSL(安全通訊端層)和TLS(傳輸層安全)。這些協定對客戶端和伺服器之間發送的資料進行加密,確保密碼和付款詳細資訊等敏感資訊免遭竊聽。
範例:在您的食品配送應用程式中,當使用者提交信用卡資訊付款時,資料會在傳送到伺服器之前使用 TLS 進行加密。這確保即使有人攔截數據,他們也無法讀取它,因為它是加密的。
範例:當使用者開啟您的應用程式時,他們的裝置和您的伺服器會透過此握手來同意如何在傳輸任何敏感資訊(例如登入詳細資訊或付款資訊)之前加密數據。
在資料跨網路傳輸的任何系統中,安全性至關重要。以下是確保系統安全的一些關鍵安全實務:
範例:假設一個惡意行為者試圖透過發送數百萬個虛假請求來淹沒您的食品配送應用程式。 API 速率限制可以限制這些請求並防止系統崩潰。
IDS)** 可以在有人試圖破壞您的網路時向您發出警報。
要啟用 SSL/TLS,您需要一個 SSL 憑證,用於驗證您的網站或伺服器的身份。憑證由稱為憑證授權單位 (CA) 的受信任實體頒發,它們保證您的網站是合法的。
範例:當您為食品配送應用程式的網域購買 SSL 憑證時,該憑證是由 Let’s Encrypt 或 DigiCert 等 CA 所頒發的。這告訴用戶他們的資料是安全的,並且他們實際上是在與您的應用程式進行交互,而不是冒名頂替。
實作2FA是一個額外的安全層,要求使用者提供兩種形式的識別(通常是他們知道的東西,例如密碼,以及他們擁有的東西,例如行動裝置)。這使得攻擊者更難入侵帳號。
範例:在您的送餐應用程式中,為使用者啟用 2FA 可以幫助防止未經授權的訪問,即使他們的密碼被盜。
以上是網路基礎知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!