什麼是Web server

Web server

  1. 在硬件部分,一個網絡服務器是一個用來存儲網站的組成文件(好比說 HTML 文檔,圖片,CSS 樣式表,和 JavaScript 文件)以及交付它們到終端用戶的設備的計算機。它跟互聯網鏈接並能夠經過域名像 mozilla.org 來被訪問。css

  2. 在軟件部分,一個網絡服務器包括幾個控制網絡用戶如何訪問託管文件的部分,至少是一個 HTTP 服務器 [HTTP server]。一個 HTTP 服務器是一個能理解URLs (網絡地址) 和 HTTP (你的瀏覽器查看網頁時所用的協議) 的軟件。html

Web server 在軟件部分它經過HTTP協議來提供靜態頁面內容和圖片服務.在好久以前,大多數內容都是靜態的,而且HTTP 1.0只是一種傳送文件的方式。但在不久後web服務器提供了CGI功能。這意味着咱們能夠爲每一個web請求啓動一個進程來產生動態內容。如今,HTTP協議已經很成熟了而且web服務器變得更加複雜,擁有了像緩存、安全和session管理這些附加功能。到如今web server 和 application server其實愈來愈趨向統一.nginx

靜態和動態

粗略地說,一個服務器能夠提供靜態或者動態的內容。「靜態」 意味着 「保持原樣地提供」.「動態」 意味着服務器會處理內容甚至實時地從一個數據庫中產生它。這個解決方案提供了更多的靈活性.web

靜態網絡服務器(static web server),或者堆棧,由一個計算機(硬件)和一個 HTTP 服務器(軟件)組成。咱們稱它爲 「靜態」 由於這個服務器把它的託管文件 「保持原樣」 地傳送到你的瀏覽器。數據庫

動態網絡服務器(dynamic web server) 由一個靜態的網絡服務器加上額外的軟件組成,最廣泛的是一個應用服務器 [application server] 和一個數據庫 [database]。咱們稱它爲 「動態」 由於這個應用服務器會在經過 HTTP 服務器傳送託管文件到你的瀏覽器前,對這些託管文件進行更新。apache

tomcat 與 nginx,apache的區別

嚴格的來講,Apache/Nginx 應該叫作「HTTP Server」;而 Tomcat 則是一個「Application Server」,或者更準確的來講,是一個「Servlet/JSP」應用的容器.後端

一個 HTTP Server 關心的是 HTTP 協議層面的傳輸和訪問控制,因此在 Apache/Nginx 上你能夠看到代理、負載均衡等功能。客戶端經過 HTTP Server 訪問服務器上存儲的資源(HTML 文件、圖片文件等等)。經過 CGI 技術,也能夠將處理過的內容經過 HTTP Server 分發,可是一個 HTTP Server 始終只是把服務器上的文件如實的經過 HTTP 協議傳輸給客戶端。瀏覽器

而應用服務器,則是一個應用執行的容器。它首先須要支持開發語言的 Runtime(對於 Tomcat 來講,就是 Java),保證應用可以在應用服務器上正常運行。其次,須要支持應用相關的規範,例如類庫、安全方面的特性。對於 Tomcat 來講,就是須要提供 JSP/Sevlet 運行須要的標準類庫、Interface 等。爲了方便,應用服務器每每也會集成 HTTP Server 的功能,可是不如專業的 HTTP Server 那麼強大,因此應用服務器每每是運行在 HTTP Server 的背後,執行應用,將動態的內容轉化爲靜態的內容以後,經過 HTTP Server 分發到客戶端。緩存

先後端分離的開發方式

如今咱們公司的業務都是經過Nginx託管靜態的資源,(包括html, 圖片, css等).瀏覽器獲取到相應的靜態資源後, 經過Ajax向咱們的業務後臺(Tomcat Application server)發送請求獲取數據動態的生成頁面. 這裏Nginx就是一個http Server, Tomact就是Application server.tomcat

相關文章
相關標籤/搜索