Web服務器 --> 基於HTTP的網站開發

  通過幾十年的發展,已經出現幾個成熟的處理HTTP的知名的Web服務器。這些服務器能夠解析(handleHTTP,當Web服務器接收到一個HTTP請求時,會根據配置的內容返回一個靜態HTML頁面或者調用某些代碼動態生成返回結果。Web服務器把動態響應dynamic response)產生的委託(delegate)給其餘一些程序,例如 Python代碼、JSPJavaServer Pages)腳本、ServletsASPActive Server Pages腳本等。不管它們的目的如何,這些服務器端(server-side)的程序一般會產生一個HTTP響應讓瀏覽器瀏覽。python

  因爲目標操做系統、應用場景及商業目的的不一樣,當今主流的Web服務器各具特點,將它們的特性簡單的歸納以下:數據庫

// Apache : 是世界上用的最多的Web服務器,市場佔有率達60%左右。因爲其卓越的性能,Tomcat 或 JBoss 等不少其餘Web服務器使用Apache爲本身提供HTTP接口服務。
// Nignx : 是一款輕量級、高性能的 HTTP 和 反向代理服務器。因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。
// IIS : 微軟的 Web 服務器產品。因爲 Windows的影響,IIS 是目前最流行的Web服務器產品之一,它的最大優點固然是對微軟 ASP.net 及其周邊產品的支持。
// Tomcat :  是一個開源服務器,是 Java Servlet 2.2 和 JavaServer Pages 1.1 技術的標準實現。
// JBoss : 是一個管理 EJB 的容器和服務器,支持 EJB 1.一、EJB 2.0 和 EJB 3 的規範。但JBoss 的核心服務不包括支持 Servlet、JSP 的Web容器,通常與 Tomcat 或 Jetty 綁定使用。

  當前的主流 Web 服務器都實現了主流語言的可調用接口規範,這些標準以下:瀏覽器

# CGI :Common Gateway Interface,CGI 規範容許 Web 服務器執行外部程序,並將它們的輸出發送給 Web 瀏覽器,CGI 將Web的一組簡單的靜態超媒體文檔變成一個完整的交互式媒體。
# ISAPI :Internet Server Application Program Interface, 是微軟提供的一套面向Web服務的API接口,它能實現CGI提供的所有功能,並在此基礎上進行了擴展,例如提供了過濾器應用程序的接口。
# WSGI : Web Server Gateway Interface, 是一套專門爲 Python 語言制定的網絡服務器標準接口。

  從客戶端瀏覽器的角度看,他的每次訪問是經過 HTTP 訪問 Web 服務器從而得到某種服務(下載文件、查看頁面、訂購商品等)的,但實際上Web服務器僅起到橋樑的做用,即將瀏覽器的HTTP請求解碼,轉換成服務器端程序可以識別的接口調用方式,而後將服務器端程序生成的返回封裝HTTP Response,並返回給瀏覽器。服務器端程序、Web服務器、客戶端之間的關係以下圖所示:緩存

  

  最簡單的服務器端程序能夠是直接讀取某文件或返回固定的網頁內容;稍複雜一些的服務器端程序須要處理客戶端經過 HTTPURLHTML 中傳入的參數、動態執行邏輯代碼、在數據庫或緩存中讀寫數據等一系列操做,才能最終生成調用結果。服務器

相關文章
相關標籤/搜索