400-638-8808
|
微信公眾號(hào)








穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級(jí)功能

智能反垃圾郵件技術(shù)
易管理 免維護(hù)

微信掃一掃 關(guān)注"天下數(shù)據(jù)"商品一律九折
![]()
搜索"朗玥科技"關(guān)注,了解最新優(yōu)惠

Web服務(wù)器概念較為廣泛,我們最常說的Web服務(wù)器指的是網(wǎng)站服務(wù)器,它是建立在Internet之上并且駐留在某種計(jì)算機(jī)上的程序。Web服務(wù)器可以向Web客戶端(如瀏覽器)提供文檔或其他服務(wù),只要是遵循HTTP協(xié)議而設(shè)計(jì)的網(wǎng)絡(luò)應(yīng)用程序都可以是Web客戶端。
Web服務(wù)器和HTTP服務(wù)器可以說是同一個(gè)東西,當(dāng)然非得細(xì)分的話,HTTP服務(wù)器是建立在HTTP協(xié)議之上的提供文檔瀏覽的服務(wù)器,更多的是提供靜態(tài)的文件。而Web服務(wù)器涵蓋了HTTP服務(wù)器(這一點(diǎn)可以自行百度百科), Web服務(wù)器不僅能夠存儲(chǔ)信息,還能在用戶通過Web瀏覽器提供的信息的基礎(chǔ)上運(yùn)行腳本和程序。
Web服務(wù)器約等于HTTP服務(wù)器 + 其他服務(wù)
目前所熟知的Web服務(wù)器有很多,其最主流的是 Apache, Nginx, IIS
各大Web服務(wù)器的實(shí)現(xiàn)細(xì)節(jié)都不同,是為了某種情形而設(shè)計(jì)開發(fā)的。但是它們的Web服務(wù)器基礎(chǔ)工作原理是相同的,這也是本次基礎(chǔ)篇所講解的內(nèi)容。
一、Web服務(wù)器工作原理圖解

首先我們暫時(shí)不考慮HTTP協(xié)議的各種請(qǐng)求方式,我們先跟著**(Web服務(wù)器工作原理總體描述01)這張圖,將一次Web服務(wù)的工作流程過一遍,我們假設(shè)以瀏覽器作為客戶端
(1) 用戶做出了一個(gè)操作,可以是填寫網(wǎng)址敲回車,可以是點(diǎn)擊鏈接,可以是點(diǎn)擊按鍵等,接著瀏覽器獲取了該事件。
(2) 瀏覽器與對(duì)端服務(wù)程序建立TCP連接。
(3) 瀏覽器將用戶的事件按照HTTP協(xié)議格式**打包成一個(gè)數(shù)據(jù)包,其實(shí)質(zhì)就是在待發(fā)送緩沖區(qū)中的一段有著HTTP協(xié)議格式的字節(jié)流。
(4) 瀏覽器確認(rèn)對(duì)端可寫,并將該數(shù)據(jù)包推入Internet,該包經(jīng)過網(wǎng)絡(luò)最終遞交到對(duì)端服務(wù)程序。
(5) 服務(wù)端程序拿到該數(shù)據(jù)包后,同樣以HTTP協(xié)議格式解包,然后解析客戶端的意圖。
(6) 得知客戶端意圖后,進(jìn)行分類處理,或是提供某種文件、或是處理數(shù)據(jù)。
(7) 將結(jié)果裝入緩沖區(qū),或是HTML文件、或是一張圖片等。
(8) 按照HTTP協(xié)議格式將(7)中的數(shù)據(jù)打包
(9) 服務(wù)器確認(rèn)對(duì)端可寫,并將該數(shù)據(jù)包推入Internet,該包經(jīng)過網(wǎng)絡(luò)最終遞交到客戶端。
(10) 瀏覽器拿到包后,以HTTP協(xié)議格式解包,然后解析數(shù)據(jù),假設(shè)是HTML文件。
(11) 瀏覽器將HTML文件展示在頁面
以上為Web服務(wù)器工作基本原理。其實(shí)不難發(fā)現(xiàn),這僅僅只是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)通信。我們應(yīng)該深信,作為一個(gè)服務(wù)器,其根本的工作無非有三個(gè)
接收數(shù)據(jù) 2. 發(fā)送數(shù)據(jù) 3. 數(shù)據(jù)處理
而Web服務(wù)器的本質(zhì)就是 接收數(shù)據(jù) ⇒ HTTP解析 ⇒ 邏輯處理 ⇒ HTTP封包 ⇒ 發(fā)送數(shù)據(jù)
高級(jí)的服務(wù)器無非就是將這三個(gè)部分更加細(xì)致的設(shè)計(jì)了。
二、Web服務(wù)器之提供靜態(tài)文件工作原理圖解
Web服務(wù)器最主要的功能是提供靜態(tài)的文件。日常的上網(wǎng)瀏覽大多是網(wǎng)頁瀏覽,少數(shù)時(shí)候才會(huì)有一些數(shù)據(jù)的提交操作。因此,我們結(jié)合上一張圖示來重點(diǎn)講解在GET請(qǐng)求下的Web服務(wù)器工作原理。

其他流程基本不變,著重在于紅色與藍(lán)色部分。
(1) 當(dāng)用戶點(diǎn)擊一個(gè)網(wǎng)頁鏈接或?yàn)g覽器加載一些資源(css,jpg …)時(shí)產(chǎn)生。
(6) 服務(wù)程序解包后,確定其為GET請(qǐng)求,并且是對(duì)該服務(wù)器上的某一資源的請(qǐng)求。首先服務(wù)程序會(huì)去確認(rèn)該路徑是否存在,再確定該路徑的文件是否可以獲取。
(7-1) 如果請(qǐng)求的路徑有誤,或者該資源不能被用戶獲取,則返回錯(cuò)誤提示頁面。很多服務(wù)器的錯(cuò)誤頁面只有404,更專業(yè)的應(yīng)該是將錯(cuò)誤分類并返回對(duì)應(yīng)的錯(cuò)誤代碼頁面。
(7-2) 如果該路徑合法且文件可以被獲取,那么服務(wù)程序?qū)⒏鶕?jù)該文件類型進(jìn)行不同的裝載過程,記錄其類型作為(8)中HTTP協(xié)議中對(duì)應(yīng)的返回類型,并加入響應(yīng)頭。
假設(shè)以點(diǎn)擊一個(gè)頁面鏈接為例,瀏覽器首先將HTML文件請(qǐng)求過來,再以同樣的流程對(duì)HTML文件中包含的資源文件路徑進(jìn)行依次請(qǐng)求。

三、Web服務(wù)器之?dāng)?shù)據(jù)提交工作原理圖解
僅僅只是網(wǎng)頁的瀏覽并不能滿足所有人的需求,客戶端與服務(wù)器應(yīng)當(dāng)是有數(shù)據(jù)交互的。
即使單方面的資源請(qǐng)求任然是網(wǎng)絡(luò)的主力軍。
我們應(yīng)該清楚的知道,數(shù)據(jù)提交對(duì)于用戶來說有什么作用。
(1) 資源上傳 (2) 登陸驗(yàn)證 (3) API接口調(diào)用 (4) 遠(yuǎn)程指令等
數(shù)據(jù)提交使得用戶的操作性有了質(zhì)的飛躍,它使得HTTP短連接獲取靜態(tài)文件的方式提升到了動(dòng)態(tài)交互的層次上。該性質(zhì)也催化出各式各樣的編程語言、框架。例如PHP,JavaWeb。
如果你留意目前主流的那些大型服務(wù)器,你會(huì)發(fā)現(xiàn)再高級(jí)再牛逼的東西實(shí)際是也是最基礎(chǔ)的東西建造的。那么我們還可以順便學(xué)習(xí)一下最古老的動(dòng)態(tài)技術(shù)CGI

其他流程基本不變,著重在于紅色與藍(lán)色部分。
(1) 用戶提交數(shù)據(jù),假設(shè)用戶點(diǎn)擊一個(gè)按鍵提交填好的信息。在(3)中將以POST格式寫入,并填入提交至服務(wù)端的可執(zhí)行程序的路徑。
(6) 服務(wù)端將參數(shù)與該CGI綁定,復(fù)制進(jìn)程,用管道傳遞參數(shù)和接收結(jié)果
(7) 子進(jìn)程執(zhí)行CGI,接收(6)父進(jìn)程傳來的參數(shù),運(yùn)算完成返回結(jié)果。
最后父進(jìn)程將結(jié)果裝入靜態(tài)模板文件,放入緩沖區(qū)
四、動(dòng)態(tài)技術(shù)
我們得明白,Web服務(wù)器是以短連接為主,并且獲取的數(shù)據(jù)到達(dá)瀏覽器的那一刻一定是靜態(tài)的不變的。那么所謂動(dòng)態(tài)實(shí)際是指兩種情況
服務(wù)端產(chǎn)生:
(1) 用戶POST提交數(shù)據(jù)到某個(gè)程序,程序根據(jù)該數(shù)據(jù)作為參數(shù)運(yùn)行,得出結(jié)果并裝入靜態(tài)的模板頁面中,返回該靜態(tài)頁面。但對(duì)于用戶來說,同一個(gè)頁面,做了一個(gè)操作后數(shù)據(jù)不一樣了。好了,這就是動(dòng)態(tài)頁面。(CGI原理)
(2) PHP的原理是,用戶GET請(qǐng)求一個(gè)php后綴的文件,服務(wù)器先執(zhí)行該php后綴文件中的PHP代碼,將結(jié)果填入代碼的位置,再返回。當(dāng)然也可以提交數(shù)據(jù)參與運(yùn)算再返回。
客戶端產(chǎn)生:
(1) 用戶GET請(qǐng)求一個(gè)JavaScript文件,服務(wù)端不做任何運(yùn)算返回該靜態(tài)文件。瀏覽器收到該JS文件,在本地執(zhí)行并更新頁面。
(2) 用戶POST提交數(shù)據(jù)到服務(wù)端,服務(wù)端根據(jù)該提交的數(shù)據(jù)指令返回靜態(tài)文件,瀏覽器收到后執(zhí)行并更新。
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國(guó)服務(wù)器 韓國(guó)服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺(tái)灣服務(wù)器云服務(wù)器
香港云主機(jī) 美國(guó)云主機(jī) 韓國(guó)云主機(jī) 新加坡云主機(jī) 臺(tái)灣云主機(jī) 日本云主機(jī) 德國(guó)云主機(jī) 全球云主機(jī)高防專線
海外高防IP 海外無限防御 SSL證書 高防CDN套餐 全球節(jié)點(diǎn)定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團(tuán)隊(duì)建設(shè) 加入天下數(shù)據(jù) 媒體報(bào)道 榮譽(yù)資質(zhì) 付款方式關(guān)注我們
微信公眾賬號(hào)
新浪微博
天下數(shù)據(jù)手機(jī)站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠(chéng)聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊(cè) 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國(guó)服務(wù)器、海外云主機(jī)、海外vps主機(jī)租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證》 ISP證:粵ICP備07026347號(hào)
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運(yùn)營(yíng))聯(lián)合版權(quán)
深圳總部:中國(guó).深圳市南山區(qū)深圳國(guó)際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號(hào)建安商業(yè)大廈7樓
7×24小時(shí)服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊(cè)業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品