Web服務(wù)器的體系結(jié)構(gòu)

2021-01-27    分類: 網(wǎng)站建設(shè)

HTTP本身不能作為應(yīng)用程序協(xié)議運(yùn)行。它需要以硬件和軟件解決方案的形式提供基礎(chǔ)設(shè)施,這些解決方案提供不同的服務(wù),并使通過(guò)萬(wàn)維網(wǎng)的通信成為可能和有效的。

這是HTTP系列的第二部分。

在這里,您將了解更多信息:

  • Web服務(wù)器
  • 代理服務(wù)器
  • 高速緩存
  • 網(wǎng)關(guān),隧道和中繼
  • 網(wǎng)絡(luò)爬蟲(chóng)

這些是我們互聯(lián)網(wǎng)生活中不可或缺的一部分,您將準(zhǔn)確了解每一項(xiàng)的目的是什么,以及它是如何運(yùn)作的。這些知識(shí)將幫助您連接第一篇文章中的點(diǎn),并更好地了解HTTP通信的流程。


Web服務(wù)器

正如第一篇文章所解釋的那樣,Web服務(wù)器的主要功能是存儲(chǔ)資源并在接收請(qǐng)求時(shí)為它們提供服務(wù)。您使用Web客戶端(也稱為Web瀏覽器)訪問(wèn)Web服務(wù)器,然后獲取所請(qǐng)求的資源或更改現(xiàn)有資源的狀態(tài)。使用Web爬蟲(chóng)也可以自動(dòng)訪問(wèn)Web服務(wù)器,我們將在本文后面討論。

一些最流行的Web服務(wù)器,你聽(tīng)說(shuō)過(guò)的可能是Apache HTTP Server,Nginx,IIS等。

Web服務(wù)器可以從簡(jiǎn)單易用,到復(fù)雜和復(fù)雜的軟件?,F(xiàn)代Web服務(wù)器能夠執(zhí)行許多不同的任務(wù)。Web服務(wù)器應(yīng)該能夠執(zhí)行的基本任務(wù):

  • 設(shè)置連接 -?接受或關(guān)閉客戶端連接
  • 接收請(qǐng)求 -?讀取HTTP請(qǐng)求消息
  • 處理請(qǐng)求 -?解釋請(qǐng)求消息并采取措施
  • 訪問(wèn)資源 -?訪問(wèn)消息中指定的資源
  • 構(gòu)造響應(yīng) -?創(chuàng)建HTTP響應(yīng)消息
  • 發(fā)送響應(yīng) -將響應(yīng)?發(fā)送回客戶端
  • 日志事務(wù) -?在日志文件中寫(xiě)入已完成的事務(wù)

我將在幾個(gè)不同的階段分解Web服務(wù)器的基本流程。這些階段代表了Web服務(wù)器流程的一個(gè)非常簡(jiǎn)化的版本。

階段1:設(shè)置連接

當(dāng)Web客戶端想要訪問(wèn)Web服務(wù)器時(shí),它必須嘗試打開(kāi)新的TCP連接。另一方面,服務(wù)器嘗試提取客戶端的IP地址。之后,服務(wù)器決定打開(kāi)或關(guān)閉與該客戶端的TCP連接。

如果服務(wù)器接受連接,它會(huì)將其添加到現(xiàn)有連接列表中并監(jiān)視該連接上的數(shù)據(jù)。

如果客戶端未經(jīng)授權(quán)或列入黑名單(惡意),它也可以關(guān)閉連接。

服務(wù)器還可以嘗試使用“反向DNS”來(lái)識(shí)別客戶端的主機(jī)名。記錄消息時(shí)此信息可以提供幫助,但主機(jī)名查找可能需要一段時(shí)間,從而減慢了事務(wù)的速度。

階段2:接收/處理請(qǐng)求

解析傳入請(qǐng)求時(shí),Web服務(wù)器會(huì)解析消息請(qǐng)求行,標(biāo)題和正文(如果提供)中的信息。需要注意的一點(diǎn)是,連接可以隨時(shí)暫停,在這種情況下,服務(wù)器必須臨時(shí)存儲(chǔ)信息,直到它收到其余數(shù)據(jù)。

高端Web服務(wù)器應(yīng)該能夠打開(kāi)許多同時(shí)連接。這包括來(lái)自同一客戶端的多個(gè)同時(shí)連接。典型的網(wǎng)頁(yè)可以從服務(wù)器請(qǐng)求許多不同的資源。

階段3:訪問(wèn)資源

由于Web服務(wù)器主要是資源提供者,因此他們有多種方式來(lái)映射和訪問(wèn)資源。

最簡(jiǎn)單的方法是映射資源是使用請(qǐng)求URI在Web服務(wù)器的文件系統(tǒng)中查找文件。通常,資源包含在服務(wù)器上的特殊文件夾中,名為docroot。例如,Windows服務(wù)器上的docroot可以位于F: WebResources 上。如果GET請(qǐng)求想要訪問(wèn)/images/codemazeblog.txt上的文件,服務(wù)器會(huì)將其轉(zhuǎn)換為F: WebResources images codemazeblog.txt并在響應(yīng)消息中返回該文件。當(dāng)Web服務(wù)器上托管多個(gè)網(wǎng)站時(shí),每個(gè)網(wǎng)站都可以擁有單獨(dú)的docroot。

如果Web服務(wù)器收到對(duì)目錄而不是文件的請(qǐng)求,它可以通過(guò)幾種方式解決它。它可以返回錯(cuò)誤消息,返回默認(rèn)索引文件而不是目錄,或掃描目錄并返回包含內(nèi)容的HTML文件。

服務(wù)器還可以將請(qǐng)求URI映射到動(dòng)態(tài)資源 - 生成某些結(jié)果的軟件應(yīng)用程序。有一類稱為應(yīng)用程序服務(wù)器的服務(wù)器,其目的是將Web服務(wù)器連接到復(fù)雜的軟件解決方案并提供動(dòng)態(tài)內(nèi)容。

階段3:生成并發(fā)送響應(yīng)

一旦服務(wù)器識(shí)別出它需要服務(wù)的資源,它就形成響應(yīng)消息。響應(yīng)消息包含狀態(tài)代碼,響應(yīng)標(biāo)頭和響應(yīng)正文(如果需要)。

如果正文存在于響應(yīng)中,則消息通常包含描述正文大小的Content-Length標(biāo)頭和描述返回資源的MIME類型的Content-Type標(biāo)頭。

生成響應(yīng)后,服務(wù)器會(huì)選擇發(fā)送響應(yīng)所需的客戶端。對(duì)于非持久連接,服務(wù)器需要在發(fā)送整個(gè)響應(yīng)消息時(shí)關(guān)閉連接。

階段4:記錄

事務(wù)完成后,服務(wù)器會(huì)將所有事務(wù)信息記錄在文件中。許多服務(wù)器提供日志記錄定制。

分享題目:Web服務(wù)器的體系結(jié)構(gòu)
鏈接地址:http://www.bm7419.com/news/97620.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、服務(wù)器托管、網(wǎng)站制作、做網(wǎng)站、關(guān)鍵詞優(yōu)化、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)