Web 服務(wù)器有哪些

作為一名Android開發(fā)人員,對(duì)于服務(wù)器端的知識(shí)也需要學(xué)習(xí)。

Web 基礎(chǔ)知識(shí)

動(dòng)態(tài)網(wǎng)頁

所謂的動(dòng)態(tài)網(wǎng)頁,是指跟靜態(tài)網(wǎng)頁相對(duì)的一種網(wǎng)頁編程技術(shù)。靜態(tài)網(wǎng)頁,隨著html代碼的生成,頁面的內(nèi)容和顯示效果就基本上不會(huì)發(fā)生變化了——除非你修改頁面代碼。而動(dòng)態(tài)網(wǎng)頁則不然,頁面代碼雖然沒有變,但是顯示的內(nèi)容卻是可以隨著時(shí)間、環(huán)境或者數(shù)據(jù)庫操作的結(jié)果而發(fā)生改變的。

值得強(qiáng)調(diào)的是,不要將動(dòng)態(tài)網(wǎng)頁和頁面內(nèi)容是否有動(dòng)感混為一談。這里說的動(dòng)態(tài)網(wǎng)頁,與網(wǎng)頁上的各種動(dòng)畫、滾動(dòng)字幕等視覺上的動(dòng)態(tài)效果沒有直接關(guān)系,動(dòng)態(tài)網(wǎng)頁也可以是純文字內(nèi)容的,也可以是包含各種動(dòng)畫的內(nèi)容,這些只是網(wǎng)頁具體內(nèi)容的表現(xiàn)形式,無論網(wǎng)頁是否具有動(dòng)態(tài)效果,只要是采用了動(dòng)態(tài)網(wǎng)站技術(shù)生成的網(wǎng)頁都可以稱為動(dòng)態(tài)網(wǎng)頁。

總之,動(dòng)態(tài)網(wǎng)頁是基本的html語法規(guī)范與Java、VB、VC等高級(jí)程序設(shè)計(jì)語言、數(shù)據(jù)庫編程等多種技術(shù)的融合,以期實(shí)現(xiàn)對(duì)網(wǎng)站內(nèi)容和風(fēng)格的高效、動(dòng)態(tài)和交互式的管理。因此,從這個(gè)意義上來講,凡是結(jié)合了HTML以外的高級(jí)程序設(shè)計(jì)語言和數(shù)據(jù)庫技術(shù)進(jìn)行的網(wǎng)頁編程技術(shù)生成的網(wǎng)頁都是動(dòng)態(tài)網(wǎng)頁。

ASP

ASP即Active Server Pages,是Microsoft公司開發(fā)的服務(wù)器端腳本環(huán)境,可用來創(chuàng)建動(dòng)態(tài)交互式網(wǎng)頁并建立強(qiáng)大的web應(yīng)用程序。當(dāng)服務(wù)器收到對(duì)ASP文件的請(qǐng)求時(shí),它會(huì)處理包含在用于構(gòu)建發(fā)送給瀏覽器的HTML(Hyper Text Markup Language,超文本置標(biāo)語言)網(wǎng)頁文件中的服務(wù)器端腳本代碼。除服務(wù)器端腳本代碼外,ASP文件也可以包含文本、HTML(包括相關(guān)的客戶端腳本)和com組件調(diào)用。 [1-2]

ASP簡(jiǎn)單、易于維護(hù) , 是小型頁面應(yīng)用程序的選擇 ,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情況下, ASP甚至可以實(shí)現(xiàn)中等規(guī)模的企業(yè)應(yīng)用程序。

JSP

JSP(全稱JavaServer Pages)是由Sun Microsystems公司主導(dǎo)創(chuàng)建的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP部署于網(wǎng)絡(luò)服務(wù)器上,可以響應(yīng)客戶端發(fā)送的請(qǐng)求,并根據(jù)請(qǐng)求內(nèi)容動(dòng)態(tài)地生成HTMLXML或其他格式文檔的Web網(wǎng)頁,然后返回給請(qǐng)求者。JSP技術(shù)以Java語言作為腳本語言,為用戶的HTTP請(qǐng)求提供服務(wù),并能與服務(wù)器上的其它Java程序共同處理復(fù)雜的業(yè)務(wù)需求。

JSP將Java代碼和特定變動(dòng)內(nèi)容嵌入到靜態(tài)的頁面中,實(shí)現(xiàn)以靜態(tài)頁面為模板,動(dòng)態(tài)生成其中的部分內(nèi)容。JSP引入了被稱為“JSP動(dòng)作”的XML標(biāo)簽,用來調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標(biāo)簽庫,然后像使用標(biāo)準(zhǔn)HTML或XML標(biāo)簽一樣使用它們。標(biāo)簽庫能增強(qiáng)功能和服務(wù)器性能,而且不受跨平臺(tái)問題的限制。JSP文件在運(yùn)行時(shí)會(huì)被其編譯器轉(zhuǎn)換成更原始的Servlet代碼。JSP編譯器可以把JSP文件編譯成用Java代碼寫的Servlet,然后再由Java編譯器來編譯成能快速執(zhí)行的二進(jìn)制機(jī)器碼,也可以直接編譯成二進(jìn)制碼。

Servlet

Servlet(Server Applet)是Java Servlet的簡(jiǎn)稱,稱為小服務(wù)程序或服務(wù)連接器,用Java編寫的服務(wù)器端程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。

狹義的Servlet是指Java語言實(shí)現(xiàn)的一個(gè)接口,廣義的Servlet是指任何實(shí)現(xiàn)了這個(gè)Servlet接口的類,一般情況下,人們將Servlet理解為后者。Servlet運(yùn)行于支持Java的應(yīng)用服務(wù)器中。從原理上講,Servlet可以響應(yīng)任何類型的請(qǐng)求,但絕大多數(shù)情況下Servlet只用來擴(kuò)展基于HTTP協(xié)議的Web服務(wù)器。

最早支持Servlet標(biāo)準(zhǔn)的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服務(wù)器開始支持標(biāo)準(zhǔn)的Servlet。

反向代理

反向代理服務(wù)器位于用戶與目標(biāo)服務(wù)器之間,但是對(duì)于用戶而言,反向代理服務(wù)器就相當(dāng)于目標(biāo)服務(wù)器,即用戶直接訪問反向代理服務(wù)器就可以獲得目標(biāo)服務(wù)器的資源。同時(shí),用戶不需要知道目標(biāo)服務(wù)器的地址,也無須在用戶端作任何設(shè)定。反向代理服務(wù)器通常可用來作為Web加速,即使用反向代理作為Web服務(wù)器的前置機(jī)來降低網(wǎng)絡(luò)和服務(wù)器的負(fù)載,提高訪問效率。

通常的代理服務(wù)器,只用于代理內(nèi)部網(wǎng)絡(luò)對(duì)Internet的連接請(qǐng)求,客戶機(jī)必須指定代理服務(wù)器,并將本來要直接發(fā)送到Web服務(wù)器上的http請(qǐng)求發(fā)送到代理服務(wù)器中。由于外部網(wǎng)絡(luò)上的主機(jī)并不會(huì)配置并使用這個(gè)代理服務(wù)器,普通代理服務(wù)器也被設(shè)計(jì)為在Internet上搜尋多個(gè)不確定的服務(wù)器,而不是針對(duì)Internet上多個(gè)客戶機(jī)的請(qǐng)求訪問某一個(gè)固定的服務(wù)器,因此普通的Web代理服務(wù)器不支持外部對(duì)內(nèi)部網(wǎng)絡(luò)的訪問請(qǐng)求。當(dāng)一個(gè)代理服務(wù)器能夠代理外部網(wǎng)絡(luò)上的主機(jī),訪問內(nèi)部網(wǎng)絡(luò)時(shí),這種代理服務(wù)的方式稱為反向代理服務(wù)。此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)Web服務(wù)器,外部網(wǎng)絡(luò)就可以簡(jiǎn)單把它當(dāng)作一個(gè)標(biāo)準(zhǔn)的Web服務(wù)器而不需要特定的配置。不同之處在于,這個(gè)服務(wù)器沒有保存任何網(wǎng)頁的真實(shí)數(shù)據(jù),所有的靜態(tài)網(wǎng)頁或者CGI程序,都保存在內(nèi)部的Web服務(wù)器上。因此對(duì)反向代理服務(wù)器的攻擊并不會(huì)使得網(wǎng)頁信息遭到破壞,這樣就增強(qiáng)了Web服務(wù)器的安全性。

反向代理方式與包過濾方式或普通代理方式并無沖突,因此可以在防火墻設(shè)備中同時(shí)使用這兩種方式,其中反向代理用于外部網(wǎng)絡(luò)訪問內(nèi)部網(wǎng)絡(luò)時(shí)使用,正向代理或包過濾方式用于拒絕其他外部訪問方式并提供內(nèi)部網(wǎng)絡(luò)對(duì)外部網(wǎng)絡(luò)的訪問能力。因此可以結(jié)合這些方式提供最佳的安全訪問方式。

Web 服務(wù)器

Web服務(wù)器也可以稱為網(wǎng)站服務(wù)器,可以用來放置網(wǎng)站文件,供用戶瀏覽。目前最主流的Web服務(wù)器有IIS、Apache和Nginx,此外Tomcat的使用也比較常見,另外還有kangle、WebSphere和Weblogic等類型。

Windows IIS

IIS是Internet Information Server(信息服務(wù))的縮寫,也是微軟主推的web服務(wù)器產(chǎn)品,適用于windows系統(tǒng),很多著名網(wǎng)站都采用IIS搭建,ASP、.net開發(fā)的程序一般也只能在IIS上運(yùn)行。

IIS提供了一個(gè)圖形界面的管理工具,稱為 Internet服務(wù)管理器,可用于監(jiān)視配置和控制Internet服務(wù),其中包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,IIS的使用讓網(wǎng)絡(luò)(包括互聯(lián)網(wǎng)和局域網(wǎng))上的信息發(fā)布變得非常簡(jiǎn)單。同時(shí),IIS還提供ISAPI(Intranet Server API)作為擴(kuò)展Web服務(wù)器功能的編程接口,并提供一個(gè)Internet數(shù)據(jù)庫連接器,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的查詢和更新。

Apache

Apache是目前世界上最流行的Web服務(wù)器之一,支持跨平臺(tái)應(yīng)用,可以運(yùn)行在幾乎所有的Unix、windows、linux系統(tǒng)平臺(tái)上,尤其對(duì)linux的支持相當(dāng)完美。

Apache是開源免費(fèi)的,有很多開發(fā)者都參與了設(shè)計(jì)和改進(jìn),推動(dòng)了產(chǎn)品的持續(xù)完善。Apache的特點(diǎn)是簡(jiǎn)單、高速、性能穩(wěn)定,可作代理服務(wù)器使用。到目前為止,Apache仍然是世界上用的最多的Web服務(wù)器,其成功之處主要在于源碼開放、強(qiáng)大的社區(qū)支持、跨平臺(tái)應(yīng)用以及可移植性等方面。不過,Apache是以進(jìn)程為基礎(chǔ)的結(jié)構(gòu),要比線程消耗更多的系統(tǒng)開支,不太適合于多處理器環(huán)境,還有就是并發(fā)不強(qiáng),流量大了就容易出現(xiàn)500錯(cuò)誤。

Nginx

Nginx是一種高性能的HTTP和反向代理web服務(wù)器,支持高并發(fā)和負(fù)載均衡,以穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。

Nginx可以在大多數(shù)Unix/Linux上編譯運(yùn)行,并有Windows移植版。Nginx的安裝簡(jiǎn)單、配置文件簡(jiǎn)潔(支持perl語法),同時(shí)Bug非常少,幾乎可以做到7*24不間斷運(yùn)行,支持在不間斷服務(wù)的情況下進(jìn)行軟件版本升級(jí)。在連接高并發(fā)的情況下,Nginx是Apache服務(wù)不錯(cuò)的替代品。同時(shí)Nginx的模塊也非常豐富,能夠滿足不同的需求,適合做靜態(tài)使用。另外Nginx還提供了IMAP/POP3/SMTP服務(wù),是一個(gè)非常優(yōu)秀的郵件代理服務(wù)器。

Tomcat

Tomcat是一個(gè)開放源代碼、運(yùn)行servlet和JSP Web應(yīng)用軟件、并基于Java的Web應(yīng)用軟件容器。由于技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),深受Java 愛好者歡迎,同時(shí),也得到了部分軟件開發(fā)商認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。

Tomcat 屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。和IIS等Web服務(wù)器一樣,tomcat也有處理HTML頁面的功能,另外它還是一個(gè)Servlet和JSP容器(默認(rèn)模式下為獨(dú)立的Servlet容器)。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器,目前Tomcat最新版本為9.0。

其他

Kangle是一款跨平臺(tái)、功能強(qiáng)大、易操作的高性能web服務(wù)器和反向代理服務(wù)器,也是一款專為做虛擬主機(jī)研發(fā)的web服務(wù)器,實(shí)現(xiàn)虛擬主機(jī)獨(dú)立進(jìn)程、獨(dú)立身份運(yùn)行與用戶安全隔離,支持php、asp、http://asp.net、java、ruby等多種動(dòng)態(tài)開發(fā)語言。

WebSphere是IBM 的軟件平臺(tái),包含了編寫、運(yùn)行和監(jiān)視全天候的工業(yè)強(qiáng)度的隨需應(yīng)變Web應(yīng)用程序和跨平臺(tái)、跨產(chǎn)品解決方案所需要的整個(gè)中間件基礎(chǔ)設(shè)施,如服務(wù)器、服務(wù)和工具。WebSphere 是一個(gè)模塊化的平臺(tái),基于業(yè)界支持的開放標(biāo)準(zhǔn),并可在 Intel、Linux 和 z/OS等多平臺(tái)運(yùn)行。

WebLogic是Oracle出品的一款多功能、基于標(biāo)準(zhǔn)的web應(yīng)用服務(wù)器,是一款基于JAVAEE架構(gòu)的中間件,用于開發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫應(yīng)用,將Java的動(dòng)態(tài)功能和安全標(biāo)準(zhǔn)引入大型網(wǎng)絡(luò)應(yīng)用的開發(fā)、集成、部署和管理之中,為企業(yè)構(gòu)建自己的應(yīng)用提供了堅(jiān)實(shí)的基礎(chǔ)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。