Windows Server 2019 Web服務IIS配置與管理理論篇(術語解釋、工作原理與常見的WEB服務器)

介紹瞭部署 Windows Web 服務器 IIS 之前所需要瞭解的一些關於WEB的基本術語概念,包括Web服務器定義,HTML,HTTP協議,HTTPS協議及其工作原理。

(常見的WEB服務器)

介紹瞭市面上常用的 WEB 服務器,包括 IIS 服務器,Apache 服務器,Tomcat 服務器和Nginx服務器。同時分析瞭 Nginx 的優勢,比較瞭四個 WEB 服務器的優勢及限制。

1. 基本概念

1.1 Web 服務器

一般指網站服務器,也就是我們打開的各種網站的數據來源,它實際上是服務器上運行的應用程序,這個程序通過HTTP協議/HTTPS協議與瀏覽器等客戶端進行通信,把網頁展現給用戶。

1.2 HTML

HTML是“Hyper Text Markup Language”的縮寫,即“超文本標記語言”,是標準通用標記語言下的一個應用。html並不是一種編程語言,它是一種標記語言,是由一些標簽組成,主要是用來制作網頁的。

為什麼說是超文本語言呢?“超文本”指的是它的內容可以是一些非文本的內容,比如:圖片、鏈接、聲音等等。

1.3 HTTP 協議

Hyper Text Transfer Protocol ,HTTP 是 TCP/IP 協議簇中的一種協議,超文本傳輸協議。HTTP是為瞭發佈和檢索 HTML 頁面而開發出來的

HTTP 是一種數據傳輸協議,同時, 它也是最常用的應用層協議。 當客戶端(尤其是 WEB 瀏覽器)向服務器發送 請求消息時,HTTP 協議規定瞭 客戶端請求網頁消息的類型,以及服務器響應信息的類型。

常用的三種消息類型包括 GET、POST 以及 PUT。

GET消息

GET 是一種客戶端數據請求消息。瀏覽器向WEB服務器發送請求網站頁面的 GET 消息。 一旦收到 GET 請求,服務器將立即反饋,反饋的消息內容可以是被請求的文件, 也可以是報錯消息,或者是其它信息。

POST消息

POST是一種用於向WEB服務器上傳數據的請求消息。例如,當用戶在網頁的表單(form)中輸入數據時,點擊確認時,用的就是POST請求,這個時候表單中的數據會被上傳到WEB服務器中。所謂的表單,最簡單可以理解為登錄界面要求輸入的用戶名和密碼。這兩個都是表單中的數據類型。

PUT消息

PUT也是一種用於向WEB服務器上傳數據的請求消息。與POST相比,PUT用於向WEB服務器上傳文件。例如,在參加考試報名時,需要上傳個人照片,這時候就是用PUT消息。

1.4 HTTPS 協議

Hyper Text Transfer Protocol over SecureSocket Layer,HTTPS,超文本安全傳輸協議。

雖然 HTTP 是一種很靈活的協議,但它並不安全。POST 消息以純文本格式向WEB服務器上傳信息,WEB服務器的響應也不加密,所以,這些信息很可能被網絡監聽工具(例如wireshark等)中途截取。 為瞭在互聯網中進行安全通信,人們發明瞭安全超文本傳輸協議 ,也就是 HTTPS協議,來訪問或發佈 Web 服務器信息。HTTPS 可以采用身份驗證和加密兩種方式保障客戶端和服務器間的數據傳輸安全。

HTTPS中的S,即SSL,SecureSocket Layer(安全套接層)。
HTTPS = HTTP + SSL/TLS

在這裡插入圖片描述

SSL/TLS協議,SSL“安全套階層”協議,TLS“安全傳輸層”協議,兩者都是加密協議,SSL是TSL的前身,TSL是SSL的改進版本。它們位於應用層和傳輸層之間,用於對應用層(HTTP)數據包加密,然後在傳輸。同時也進行身份和數據完整性校驗。這樣就可以保證HTTP明文傳輸數據的保密性,準確性和完整性。

通俗一點可以這樣理解:HTTPS協議是一種使用HTTP協議和SSL/TSL協議(作用:加密數據和數字簽名)的混合型協議。HTTP用於傳輸明文;加密算法用於加密傳輸明文,確保內容的保密性;數字簽名用於對傳輸明文的校驗,驗證其完整性。

2. 工作原理

一般的,打開網頁大致有三個步驟。

在這裡插入圖片描述在這裡插入圖片描述

(1)在瀏覽器上輸入網址,瀏覽器通過HTTP協議向服務器發起GET請求。
web瀏覽器是一種客戶端應用程序,計算機使用該程序連接到互聯網,通過HTTP協議訪問存儲在Web服務器上的資源。
發起GET請求,即計算機生成HTTP ‘GET’消息發送給Web服務器

在這裡插入圖片描述

(2)服務器收到請求後,將網頁代碼返回給客戶端瀏覽器。
和多數服務器進程相同,Web服務器一般以後臺服務的方式運行,並且支持不同類型的文件。

在這裡插入圖片描述

(3)瀏覽器收到請求後,按照規則對HTML進行解釋,並顯示為網頁。
瀏覽器可以解釋並顯示多種數據類型。例如純文本或者構成網頁的超文本標記語言HTML

在這裡插入圖片描述

這種客戶端/服務器架構稱為C/S架構。一臺服務器可以應對多個客戶端。

參考資料 Microsoft Docs:IIS Web Server Overview

Microsoft Docs:Internet Information Services (IIS)

3. 常見的WEB服務器

目前,最主流的WEB服務器有以下幾個:

IISApacheTomcatNginx

3.1 IIS服務器

在這裡插入圖片描述

Internet Information Services(簡稱IIS),是微軟公司推出的WEB服務器組件,也是Windows Server默認,特有的,自帶的WEB服務器,需要用戶手動添加組件。IIS組件包括WEB服務器、FTP服務器、NNTP服務器和SMTP服務器。

WEB服務器用於網頁瀏覽。FTP服務器用於文件傳輸。NNTP服務器用於新聞服務。SMTP服務器用於郵件發送。

IIS支持的操作系統:Windows 系統

IIS組件使得用戶在網上發佈信息變得相對容易,人們口中提到的IIS大部分時候特指其中的WEB服務器,IIS具有強大、安全和靈活等特性,但是隻能在Windows系統上運行。

在這裡插入圖片描述

IIS支持的語言:ASP.NET、PHP、JSP

IIS對ASP.NET有著極好契合性,但是對PHP和JSP而言,相對操作比較麻煩。所以一般隻在使用ASP.NET進行開發時,選用IIS作為WEB服務器。

3.2 Apache服務器

在這裡插入圖片描述

Apache HTTP Server(簡稱Apache)是目前世界上最流行的WEB服務器軟件之一。Apache取自“a patchy server”的讀音,意思是充滿補丁的服務器。Apache是Apache軟件基金會的一個開放源碼的網頁服務器,它是一個自由軟件,所以不斷有工程師在為Apache開發新的功能,新的特性,修改bug。

The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.

Apache的特點:免費,簡單,速度快,性能穩定和可移植性強,並且可以當成代理服務器使用。

Apache支持的操作系統:Unix、Linux、Windows、Mac OS等系統,支持絕大部分的系統平臺,尤其對Linux系統完美契合。

在WEB服務器中,Apache是純粹的WEB服務器,本身隻支持HTML靜態網頁,但是可以和其他服務器一起工作或者添加插件來支持PHP、JSP、ASP等。

詳細請前往Apache HTTP Server官網查閱:httpd.apache.org

3.3 Tomcat服務器

在這裡插入圖片描述

Apache Tomcat(簡稱Tomcat)是一個開放源代碼的WEB應用服務器,屬於輕量級應用服務器。同時它也是一個基於java,可運行Servlet和JSP的應用軟件容器。所以它支持JSP動態頁面,也可以處理HTML,但是 理html的效率不如Apache 。

The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies.

在Java開發WEB應用時,我們經常在編輯工具中(例如,Eclipse)安裝Tomcat服務器,以便JSP和HTML頁面可以在瀏覽器中顯示網頁。

Apache和Tomcat的關系

Apache隻支持靜態網頁 , 如果要在Apache環境下運行JSP的話, 就需要一個解釋器來執行JSP網頁, 而這個JSP解釋器就是Tomcat。

Apache支持靜態頁面解析,Tomcat支持動態頁面解析,當WEB使用Java時,那麼Apache+Tomcat是完美組合。

網上有個比較形象的比喻說Apache像一輛卡車,卡車上面可以裝一些東西比如HTML,但是不能裝動態的水(JAVA),而Tomcat就是一個木桶,可以用來裝水(JAVA)。水可以放在卡車上也可以放在其他地方。

在這裡插入圖片描述

詳細請前往Apache Tomcat官網查閱:tomcat.apache.org

3.4 Nginx

在這裡插入圖片描述

Nginx是俄羅斯人Igor Sysoev編寫的異步框架的,輕量級Web服務器,它的發音為 [ˈendʒɪnks] ,它不僅是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP 代理服務器。

Nginx的主要作用:

反向代理負載均衡HTTP緩存 Nginx的優勢/Nginx和Apache

Nginx 的編寫有一個明確目標就是超越 Apache Web 服務器的性能[1]。Nginx 提供開箱即用的靜態文件,使用的內存比 Apache 少得多,每秒可以處理大約四倍於 Apache 的請求[2]。 在低並發下 Nginx 的性能與 Apache 相當(有時候還低於),但是在高並發下 Nginx 能保持低資源低消耗高性能。Nginx 的優點還包括:高度模塊化的設計,模塊編寫簡單,以及配置文件簡潔。

相比起在Linux下的Nginx,在Windows Server下的Nginx的穩定性較差。而Apache對兩者都有較好的支持。

截至2019年12月,差不多世界上每3個網站中就有1個使用Nginx。

詳細請前往Nginx官網查閱:nginx.org

3.5 IIS、Apache、Tomcat和Nginx的簡單的比較

比較選項/WEB服務器 IIS Apache Tomcat Nginx
服務器 包括HTTP服務器 HTTP服務器 Java應用服務器 輕量級HTTP服務器
是否支持靜態網頁 是(不理想)
自身是否支持動態網頁
廠商 微軟 Apache Apache Nginx社區
價格 收費 免費 免費 免費(有收費版)
支持的操作系統 僅限Windows Windows、Linux Windows、Linux Windows(不理想)、Linux

參考資料 Microsoft Docs:IIS Web Server Overview

Microsoft Docs:Internet Information Services (IIS)

到此這篇關於Windows Server 2019 Web服務IIS配置與管理理論篇(術語解釋、工作原理與常見的WEB服務器)的文章就介紹到這瞭,更多相關win2019 IIS配置與管理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: