用戶端與伺服器端描述 Web 應用程式代碼的執行位置。
閱讀本文後,您將能夠:
相關內容
訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!
複製文章連結
用戶端和伺服器端是 Web 開發詞彙,用於描述應用程式代碼的執行位置。Web 開發人員還將這種區別稱為前端與後端,但用戶端/伺服器端與前端/後端並不完全相同。在無伺服器架構中,無伺服器廠商代管資源並將資源指派給所有伺服器端處理序,而處理序會隨著應用程式使用率的增加而擴展。
網際網路的大部分都基於用戶端-伺服器模型。在此模型中,使用者裝置透過網路與位於中心的伺服器進行通訊以獲取所需的資料,而不是相互通訊。終端使用者裝置(例如筆記型電腦、智慧型手機和桌上型電腦)被視為伺服器的「用戶端」,就好像它們是從公司獲得服務的客戶一樣。用戶端裝置向伺服器傳送請求以獲取網頁或應用程式,然後伺服器提供回應。
之所以使用用戶端-伺服器模型,是因為伺服器通常比使用者裝置更強大、更可靠。伺服器還經常得到維護並保持在受控環境中,以確保它們始終上線並可用;儘管單個伺服器可能會關閉,但是通常還有其他伺服器作為備份。同時,使用者可以打開或關閉裝置,或者可能丟失或損壞裝置,但這不會影響其他使用者的網際網路服務。
伺服器可以同時為多個用戶端裝置提供服務,而且每個用戶端裝置在存取和瀏覽網際網路的過程中,會向多個伺服器傳送請求。
多個用戶端和伺服器互動:
每個用戶端將與多個伺服器進行通訊,反之亦然。
假設使用者正在瀏覽網際網路,並在其瀏覽器欄中鍵入「netflix.com」。這將導致向 DNS 伺服器請求 netflix.com 的 IP 位址,並且 DNS 伺服器透過將 IP 位址提供給瀏覽器來回應此請求。接下來,使用者的瀏覽器(使用該 IP 位址)針對頁面上顯示的內容(例如電影縮圖影像、Netflix 標誌和搜尋欄)向 Netflix 伺服器發出請求。Netflix 伺服器將這些內容傳輸給瀏覽器,然後瀏覽器在用戶端裝置上載入頁面。
在 Web 開發中,「用戶端」是指 Web 應用程式中在用戶端(終端使用者裝置)上顯示或進行的所有內容。這包括使用者看到的內容,例如文字、影像和 UI 的其餘部分,以及應用程式在使用者瀏覽器中執行的任何動作。
HTML 和 CSS 等標記語言由用戶端的瀏覽器解譯。另外,目前許多開發人員都將用戶端處理序包含在他們的應用程式架構中,而不再在伺服器端執行所有操作;例如,動態網頁*的業務邏輯通常在現代 Web 應用程式中執行用戶端。用戶端處理序幾乎都是用 JavaScript 編寫的。
在上面的 netflix.com 範例中,指示瀏覽器顯示 Netflix 首頁之方式的 HTML、CSS 和 JavaScript 由用戶端的瀏覽器解譯。該頁面還可以回應「事件」:例如,如果使用者的滑鼠懸停在一個電影縮圖影像上,則影像會擴展,而相鄰的縮圖影像會稍微向一側移動以為擴大的影像騰出空間。這是一個用戶端處理序的範例;網頁中的代碼本身會回應使用者的滑鼠並在不與伺服器通訊的情況下啟動此動作。
用戶端也稱為前端,但這兩個詞彙的含義並不完全相同。用戶端僅指處理序執行的位置,而前端指的是執行用戶端的處理序的類型。
*動態網頁是一種不對所有使用者顯示相同內容、並且會根據使用者輸入發生變動的網頁。Facebook 首頁就是動態頁面;而 Facebook 登入頁面大部分是靜態的。
與用戶端類似,「伺服器端」表示發生在伺服器而不是用戶端上的所有事件。在過去,幾乎所有業務邏輯都在伺服器端執行,這包括提供動態網頁、與資料庫互動、身分驗證和推播通知。
將所有這些處理序託管在伺服器端的問題在於,涉及其中任何一個處理序的請求都必須每次從用戶端一直傳輸到伺服器。這導致了大量延遲。因此,現代的應用程式在用戶端執行更多的代碼。一種使用案例是,透過在瀏覽器中執行指令碼,對使用者看到的內容進行變更,從而即時呈現動態網頁。
與「前端」和「用戶端」一樣,後端也指伺服器上發生的處理序,但後端僅指代處理序的類型,而伺服器端還指代處理序執行的位置。
用戶端指令碼處理意味著在用戶端裝置上(通常是在瀏覽器中)執行 JavaScript 之類的指令碼。如果使用 JavaScript 編寫,則所有類型的指令碼都可以在用戶端執行,因為 JavaScript 受到普遍支援。其他指令碼語言只能在使用者瀏覽器支援的情況下使用。
伺服器端指令碼在伺服器而不是用戶端上執行,通常是為了回應使用者的動作將動態內容傳遞到網頁上。伺服器端指令碼不一定要用 JavaScript 編寫,因為伺服器可能支援多種語言。
指令碼在用戶端和伺服器端執行:
資料在用戶端和伺服器之間來回傳遞,指令碼可以在兩端執行。
在無伺服器運算中,所有伺服器端或後端處理序仍在伺服器而不是用戶端裝置上執行,但是它們沒有部署在任何特定的伺服器或伺服器組上。後端處理序分為多個函數,它們隨選執行並自動擴展。開發人員仍可以在無伺服器架構中構建通常在伺服器端執行的所有功能。
Cloudflare Workers 是隨選執行的無伺服器 JavaScript 函數,它們在 Cloudflare 用於 CDN 快取的邊緣網路上執行,位於用戶端和來源伺服器之間。這使開發人員能夠構建這樣的無伺服器後端:從技術上講屬於伺服器端,但盡可能靠近用戶端裝置,因此能夠減少延遲,並讓應用程式更快地回應使用者互動。
要開始使用 Cloudflare Workers,請查閱我們的開發者文件。
開始使用
關於無伺服器
無伺服器技術
無伺服器替代方案
無伺服器術語表
學習中心導覽