「Web服務器」能夠指硬件或軟件,或者二者一塊兒工做。前端
靜態web服務器:由計算機(硬件)與HTTP服務器(軟件)組成,服務器將「託管」文件「按原樣」發送到您的瀏覽器。web
動態Web服務器:由一個靜態Web服務器加上額外的軟件,最經常使用的的應用服務器和數據庫。咱們將其稱爲「動態」,由於應用程序服務器經過HTTP服務器將其發送到瀏覽器以前更新託管文件。數據庫
在瀏覽器中運行的代碼稱爲客戶端代碼,主要涉及改進呈現的網頁的外觀和行爲。這包括選擇和設計UI組件,建立佈局,導航,表單驗證等。相比之下,服務器端網站編程涉及主要根據請求選擇 哪些內容報道查看給瀏覽器。服務器端代碼處理像驗證提交的數據和請求,使用數據庫來存儲和檢索數據以及根據須要將正確的數據發送到客戶端的任務。編程
客戶端代碼使用HTML,CSS和JavaScript編寫– 它在Web瀏覽器中運行,對底層操做系統(包括對文件系統的訪問有限)幾乎沒有訪問權限。後端
服務器端代碼能夠用任何編程語言編寫 – 包括PHP,Python,Ruby和C#。服務器端代碼能夠徹底訪問服務器操做系統。瀏覽器
開發人員一般使用的Web框架關係編寫代碼。網頁框架是功能,對象,規則和其餘代碼結構的集合,旨在解決常見問題,加快開發速度,並簡化特定域中面臨的不一樣類型的任務。服務器
一樣,雖然客戶端服務器端代碼都使用框架,可是這些域是很是不一樣的,所以框架也是如此。客戶端Web框架簡化了佈局和表示任務,而服務器端Web框架提供了許多「通用」Web服務器功能,不然您可能必須本身實現(例如,支持會話,支持用戶和身份驗證,輕鬆訪問數據庫,模板庫等)。cookie
服務器端編程容許咱們將信息存儲在數據庫中,並動態構建和返回HTML和其餘類型的文件(例如PDF,圖像等)。還能夠經過適當的客戶端Web框架簡單地返回數據(JSON,XML等)進行呈現(這減小了服務器上的處理負擔以及須要發送的數據量)。框架
服務器能夠存儲和使用有關客戶端的信息,以提供方便和定製的用戶體驗。編程語言
服務器端編程容許站點限制對受權用戶的訪問,並僅提供容許用戶查看的信息。
服務器端編程容許開發人員使用會話機制,容許服務器將信息存儲在站點的當前用戶上,並根據該信息發送不一樣的響應。(cookies)
服務器能夠經過網站自己或經過電子郵件,短信,即時消息,視頻對話或其餘通訊服務發送通常或特定於用戶的通知。
網站可能會收集大量關於用戶的數據:他們搜索什麼,他們購買什麼,他們推薦什麼,他們留在每一頁上多久。可使用服務器端編程來根據對該數據的分析來改進響應。