• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            doing5552

            記錄每日點(diǎn)滴,不枉人生一世

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              73 Posts :: 0 Stories :: 94 Comments :: 0 Trackbacks

            公告

            常用鏈接

            留言簿(24)

            我參與的團(tuán)隊(duì)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 455713
            • 排名 - 49

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            級(jí)別: 中級(jí)

            Cameron Laird (claird@phaseit.net), 副總裁, Phaseit, Inc.

            2007 年 7 月 23 日

            最近幾年,市場(chǎng)上出現(xiàn)了很多有趣的 Web 服務(wù)器實(shí)現(xiàn),包括 lighthttpd、litespeed 和 mongrel 等。這些 Web 服務(wù)器都宣稱結(jié)合了性能、易管理性、可移植性、安全性和其他相關(guān)價(jià)值。下面的工程研究將調(diào)查輕量級(jí) Web 服務(wù)器,以幫助您選擇最可能滿足下一個(gè)項(xiàng)目的技術(shù)需求的 Web 服務(wù)器。

            “輕量級(jí)” Web 服務(wù)器,例如 lighthttpdlitespeedmongrel,可以為項(xiàng)目帶來(lái)很多的好處。本文調(diào)查這種可能性,并展示這些 Web 服務(wù)器的適用性。

            一個(gè) Web 服務(wù)器需要哪些東西?

            第一個(gè)重要的方面是清楚地理解所調(diào)查的領(lǐng)域(請(qǐng)參閱 參考資料,以了解更詳細(xì)的信息)。終端用戶在 Internet 上的基本動(dòng)作就是 “進(jìn)入一個(gè) Web 頁(yè)面”。從大處講,這牽涉到兩個(gè)應(yīng)用程序之間的協(xié)作:

            • 一個(gè) Web 瀏覽器,例如 Firefox 或 Internet Explorer,用于請(qǐng)求一個(gè)特定的頁(yè)面,并且以人類可讀的方式顯示從另一個(gè)應(yīng)用程序那里收到的內(nèi)容。
            • 一個(gè) Web 服務(wù)器,通常是在遠(yuǎn)程機(jī)器上,負(fù)責(zé)對(duì)頁(yè)面請(qǐng)求作出響應(yīng),返回 HTML 編碼的或類似的數(shù)據(jù)流。

            所有 Web 用戶直接與瀏覽器交互,因此他們的選擇和分析相應(yīng)地有些狂熱。而服務(wù)器只對(duì)站點(diǎn)的技術(shù)人員可見(jiàn)。根據(jù) Netcraft 最近的調(diào)查,雖然存在很多不同的 Web 服務(wù)器,但是其中兩種 Web 服務(wù)器就占據(jù)了 90% 的份額,這兩種 Web 服務(wù)器是 Apache 和 Internet Information Server (IIS)。它們都是經(jīng)過(guò)高度錘煉的產(chǎn)品,并且聲稱不僅具有廣泛的內(nèi)在技術(shù)特性,而且有很多配套的書籍、增件、顧問(wèn)、提供商等。那么,它們是否還有值得改造的地方呢?

            答案是肯定的。評(píng)價(jià)一個(gè) Web 服務(wù)器的重要指標(biāo)有:

            • 性能:對(duì)請(qǐng)求作出響應(yīng)的速度有多快?
            • 可伸縮性:當(dāng)很多用戶同時(shí)訪問(wèn)它時(shí),服務(wù)器還能繼續(xù)可靠地運(yùn)行嗎?
            • 安全性:服務(wù)器是否只執(zhí)行它應(yīng)該執(zhí)行的操作。它在認(rèn)證用戶和加密傳輸方面提供了怎樣的支持?它的使用是否使附近的應(yīng)用程序或主機(jī)變得更易受攻擊?
            • 可靠性:服務(wù)器的失效模式和故障發(fā)生率如何?
            • 標(biāo)準(zhǔn)遵從性:服務(wù)器遵從相關(guān)的 RFC 嗎?
            • 靈活性:是否可以對(duì)服務(wù)器進(jìn)行調(diào)優(yōu),以支持較重的請(qǐng)求負(fù)載、需要計(jì)算的動(dòng)態(tài)頁(yè)面或者代價(jià)不菲的認(rèn)證等等?
            • 平臺(tái)需求:該服務(wù)器可用于哪些平臺(tái)?它是否有特定的硬件需求?
            • 易管理性:服務(wù)器是否易于設(shè)置和維護(hù)?它是否與日志記錄、審計(jì)、成本計(jì)算等組織標(biāo)準(zhǔn)兼容?

            Apache 和 IIS 不能同時(shí)在那么多的標(biāo)準(zhǔn)方面做到最好。理論上講,顯然那些定向的產(chǎn)品至少能在以上的一至兩個(gè)方面超越市場(chǎng)領(lǐng)頭產(chǎn)品。

            關(guān)于輕量級(jí) Web 服務(wù)器的一件有趣的、值得調(diào)查的事情是,它們之間的競(jìng)爭(zhēng)遠(yuǎn)遠(yuǎn)不止是理論上的:仔細(xì)研究表明,它們有很多 東西可以提供,并且即使在很多常見(jiàn)的情況下,它們相對(duì)于 Apache 和 IIS 也堅(jiān)持了自己的風(fēng)格。雖然可以合理地認(rèn)為市場(chǎng)領(lǐng)頭產(chǎn)品已經(jīng)經(jīng)過(guò)了小心的優(yōu)化,從而能夠有效地在性能(舉個(gè)例子)方面避免被擊敗,但是很多小型的競(jìng)爭(zhēng)對(duì)手因?yàn)橹惶峁┖?jiǎn)單的靜態(tài) Web 頁(yè)面服務(wù),速度反而更快。當(dāng)使用這些 Web 服務(wù)器運(yùn)行測(cè)試時(shí),您會(huì)感覺(jué)好像是在賽道上駕駛一輛 go-kart 小車,不知不覺(jué)竟然超過(guò)了 Porsche 和 Viper 車。這還不是全部:有時(shí)候,輕量級(jí) Web 服務(wù)器可作為那些大哥級(jí)服務(wù)器的有效補(bǔ)充,而不只是與它們競(jìng)爭(zhēng)。即使您知道自己將使用 Apache,有時(shí)候通過(guò)將它與一個(gè)輕量級(jí)伙伴搭檔,反而可以最大限度地利用它。最好的解決方案有時(shí)候需要兩個(gè)或更多 Web 服務(wù)器的協(xié)作。





            回頁(yè)首


            Web 服務(wù)的輕巧性

            本調(diào)查中重點(diǎn)關(guān)注的 “輕巧性” 實(shí)際上是一種主觀質(zhì)量,就像 “藝術(shù)” 或 “風(fēng)格”。它通常意味著簡(jiǎn)單、易于安裝、流線化、要求低和健壯 —— 比 Apache 和 IIS 更小、更簡(jiǎn)單,當(dāng)然,在試圖滿足大量市場(chǎng)的過(guò)程中,它們已經(jīng)變得異常復(fù)雜。出于這個(gè)目的,雖然 Java Web Server、AOLserver 和 Zeus 擁有迷人的可移植性和性能優(yōu)勢(shì),但是它們的復(fù)雜性和大小使其不得不被拒之門外。

            輕量級(jí) Web 服務(wù)器可以適用于市場(chǎng)領(lǐng)頭產(chǎn)品和其他 “重量級(jí)” 服務(wù)器無(wú)法勝任的情況。例如,整個(gè)服務(wù)器可以打包在一個(gè)文件中。這意味著開發(fā)人員可以方便地?cái)y帶生產(chǎn)環(huán)境所需的所有工具。即使在生產(chǎn)服務(wù)器上運(yùn)行的是 Apache,也仍然可以在賓館的房間里,借助只需數(shù)秒鐘就可以安裝完畢的輕量級(jí) Web 服務(wù)器以嘗試新想法。而且,由于輕量級(jí) Web 服務(wù)器要求很低,因此可以在那些無(wú)法負(fù)擔(dān) IIS 的主機(jī)上順暢地運(yùn)行。

            單文件打包

            單文件打包
            Apache 需要小心地安裝散布在多個(gè)目錄中的很多文件。與之截然不同的是,下面的 Web 服務(wù)器卻打包在一個(gè)可執(zhí)行文件中。我的一個(gè)雇主 Phaseit 的專長(zhǎng)是部署和打包,我們能使 Apache 的安裝看上去比平常更簡(jiǎn)單一些。但是即使我們做得最好,Apache 或 IIS 與輕量級(jí) Web 服務(wù)器在 “空間占用” 方面也仍然有很大的差異:前者要占用大量的空間。

            小的、輕量級(jí)的 Web 服務(wù)器還可以在小功率的主機(jī)上良好地運(yùn)行。在我們的公司(Phaseit —— 見(jiàn) 側(cè)欄)中,我們?cè)谶h(yuǎn)程的、條件欠佳或配置較低的環(huán)境中的工業(yè)計(jì)算機(jī)上運(yùn)行專用的 硬件。在這些情況下,能夠通過(guò)一個(gè)對(duì)處理能力或磁盤空間要求很低的應(yīng)用程序來(lái)提供 Web 頁(yè)面是一個(gè)很大的優(yōu)勢(shì)。這意味著我們的機(jī)器可以避免 Apache 的開發(fā)和處理能力所帶來(lái)的開銷,構(gòu)建基于 Web 的管理控制臺(tái)。

            從某種程度上講,幾乎所有輕量級(jí) Web 服務(wù)器都是開放源碼的。如果我們需要某一款 Web 服務(wù)器所特有的行為,那么下面概述的一些 Web 服務(wù)器都非常小巧,易于理解,也易于增強(qiáng),只有兩個(gè)例外。這些 Web 服務(wù)器為嵌入 Web 服務(wù)的項(xiàng)目提供極好的原始材料,不管這些 Web 服務(wù)是在特殊的硬件中,還是在為在通用計(jì)算機(jī)上運(yùn)行而設(shè)計(jì)的特定應(yīng)用程序中。它們還廣泛用于具有傳統(tǒng)外觀的 Web 站點(diǎn):

            • YouTube 依靠 lighttpd 快速交付歸檔的內(nèi)容,例如視頻;
            • cdServe 運(yùn)行 “German Woodworking Machinery and Tools” CD;
            • LiteSpeed 宣揚(yáng)它在 twitter、www.funnyoride.com、www.airliners.com、WordPress.com、fanfiction.com、SlashGear、www.forumactif.com 和其他著名 Web 站點(diǎn)上擔(dān)任的角色;
            • OpenSUSE、RubyOnRails、MarkaBoo 和其他一些著名站點(diǎn)依賴于 Mongrel;
            • demon.net、bluelight.com、mtv.com、The Drudge Report、garfield.com 等站點(diǎn)則使用 thttpd;
            • 等等。

            下面的例子說(shuō)明了開發(fā)人員使用輕量級(jí)服務(wù)器的輕巧性:在我們公司,我們采用專門的硬件提供辦公室電話解決方案。它基于定制的、以傳統(tǒng)的 Linux® 應(yīng)用程序的形式運(yùn)行的軟件。只需一個(gè)附加文件和一點(diǎn) init.d 配置,很容易添加一個(gè)強(qiáng)大的 “Web 控制臺(tái)”,該 Web 控制臺(tái)能提供硬件和軟件的管理界面。 終端用戶可以從任何瀏覽器中監(jiān)視和配置他們的計(jì)算機(jī),而不必安排專門的硬件連接或解決使用 “垂直” 硬件時(shí)常見(jiàn)的其他復(fù)雜性。

            面向服務(wù)架構(gòu)(SOA)被認(rèn)為難以使用。在我們的經(jīng)驗(yàn)中,SOA 至少有一部分這方面的缺點(diǎn)阻礙了 Web 服務(wù)的使用。我們利用輕量級(jí) Web 服務(wù)來(lái)設(shè)置快速的 SOA,以進(jìn)行演示。

            輕量級(jí)服務(wù)器甚至可以用于生產(chǎn)數(shù)據(jù)中心,包括前面列出的 high-profile 站點(diǎn)。性能非常高的站點(diǎn)會(huì)將操作分開,從而最大限度地利用緩存、代理等技術(shù)。例如,一個(gè)基于 Apache 的站點(diǎn)可能采用一種這樣的架構(gòu):通過(guò)小型的 Web 服務(wù)器從專用的文件系統(tǒng)提供緩慢變化的圖片。終端用戶看到的結(jié)果實(shí)際上是 Apache 和一個(gè)或多個(gè)輔助 Web 服務(wù)器通過(guò)協(xié)作得到的輸出,它們各自擔(dān)任自己擅長(zhǎng)的角色。這樣的安排可以以非常低的計(jì)算成本提供非常 快的結(jié)果。





            回頁(yè)首


            手段和目的

            雖然輕量級(jí) Web 服務(wù)器有很多共同之處,但是各有各的不同。大多數(shù)輕量級(jí) Web 服務(wù)器是用 C 編寫的,但是實(shí)踐證明,有些其他實(shí)現(xiàn)語(yǔ)言也可以成功地用于實(shí)現(xiàn)服務(wù)器,對(duì)此我已經(jīng)做了實(shí)驗(yàn),這些語(yǔ)言包括 Erlang、Java、Lisp、Lua、Perl、Python 和 Tcl。如果其中有您喜歡的語(yǔ)言,那么也許可以找到適合您的 Web 服務(wù)器。

            由于很多特定的原因,您可能會(huì)將目光投向某種 “不常見(jiàn)” 的語(yǔ)言:

            • 教學(xué):使用輕量級(jí) Web 服務(wù)器來(lái)制定一個(gè)重要、但是并不太大的目標(biāo)。這是獲得使用某種語(yǔ)言的經(jīng)驗(yàn)的好方法。
            • 雖然用 C 編寫的輕量級(jí) Web 服務(wù)器大小為 10-50 KB,更高級(jí)的語(yǔ)言有 100 KB 到數(shù) MB 的運(yùn)行時(shí),但整個(gè) Web 服務(wù)器的源文件可能只占幾千個(gè)字節(jié)。這種 Web 服務(wù)器占用的空間很小,因此比 Apache 更易于與技術(shù)伙伴共享。
            • 更高級(jí)的語(yǔ)言可以使實(shí)驗(yàn)更吸引人 —— 例如,添加一個(gè)新的 HTTP/1.1 特性可能只需幾行源代碼。這些輕量級(jí)服務(wù)器是非常方便的實(shí)驗(yàn)材料。
            • 將 HTTP 服務(wù)器添加到已有的、用高級(jí)語(yǔ)言編寫的應(yīng)用程序中只需增加幾行源代碼。

            Athana 可以作為這些主題的例子。它是用 Python 編寫的 Web 服務(wù)器。它支持 HTTP 多部分(上傳)、會(huì)話、 cookie 等。從 0.2.1 版開始,Athana 一直被編寫在一個(gè)單獨(dú)的、精心組織的源文件中。

            如前所述,不同的輕量級(jí) Web 服務(wù)器有著不同的優(yōu)點(diǎn),它們或多或少獨(dú)立于編程語(yǔ)言。所有輕量級(jí) Web 服務(wù)器都比 Apache 更小、更易于配置。與 Apache 相比,有些輕量級(jí) Web 服務(wù)器更快,有些則快得多。有些則強(qiáng)調(diào)安全性、重負(fù)載下的從容性、可擴(kuò)展性或者內(nèi)存占有量。在任何情況下,都可以以一種不適用于 Apache 的方式徹底地理解這些服務(wù)器。

            哪些特定的產(chǎn)品使這些可能性成為現(xiàn)實(shí)?即使只留意 “輕量級(jí)” 服務(wù)器,面對(duì)的也是一個(gè)很大的難于管理的產(chǎn)品集合。不過(guò)可以將它們按子類來(lái)劃分:超輕型、關(guān)注安全型、支持特定語(yǔ)言型等等。

            我特別喜歡其中的超輕型 Web 服務(wù)器,它們比 Apache 小得多。如此小的應(yīng)用程序可以直接記住,系統(tǒng)地、嚴(yán)密地加以考慮,以證明 它們的安全性或可伸縮性。小型 Web 服務(wù)器包括:

            • Cheetah Server,用不到一千行的 C 代碼編寫而成。
            • DustMote,一個(gè)非常 小的 Web 服務(wù)器,用一個(gè)大約 3000 字節(jié)的 Tcl 源文件實(shí)現(xiàn)。
            • fnord,大小取決于平臺(tái)和配置,不超過(guò) 20K。雖然很小,但是它支持虛擬主機(jī)、CGI 和 keep-alive。
            • ihttpd,使用不到 800 行的 C 代碼,包括 CGI,并通過(guò) inetd 提供頁(yè)面。
            • im-httpd,非常小的服務(wù)器 —— 只有大約 7 KB,鏈接到 glibc。而且它也非常快。
            • mattows,支持 CGI,只有 600 行 C 代碼。
            • Scrinchy,雖然很小,不到 30KB,但是支持多種腳本編制語(yǔ)言,包括一種特殊用途的、基于棧的 Sy 腳本語(yǔ)言。
            • ZWS 演示了一個(gè)即使是使用 500 多行帶足夠注釋的 zsh (!) 編寫的應(yīng)用程序 —— 在這里是一個(gè) HTTP 0.9+ 服務(wù)器 —— 也可以有多強(qiáng)大。
            體積小并不妨礙這些服務(wù)器被正式使用。例如,fnord 可以處理數(shù)千個(gè)同時(shí)進(jìn)行的連接。

             

            也許輕量級(jí)作為一個(gè)類別最令人印象深刻的成就是高性能服務(wù)器:

            • cghttpd 是一個(gè)小型 Web 服務(wù)器,它被理解為使用 2.6 系列內(nèi)核中可用的異步功能的一個(gè)試驗(yàn)品。
            • darkhttpd 是一個(gè)快速的、單線程的 HTTP/1.1 服務(wù)器。
            • Gatling 是為高性能設(shè)計(jì)的。它的特性包括 FTP、IPv6、虛擬主機(jī)、CGI 等。
            • Kernux 是一個(gè) Linux 內(nèi)核模塊,它實(shí)現(xiàn)了一個(gè) HTTP 守護(hù)進(jìn)程。
            • lighttpd 是使用率排名第五的 Web 服務(wù)器(排名還在上升)。它為很多同時(shí)進(jìn)行的連接進(jìn)行了優(yōu)化:“典型的場(chǎng)景是使用 lighttpd 作為一個(gè)下載(off-load)服務(wù)器,以提供靜態(tài)內(nèi)容……”
            • LiteSpeed Web Server 是一款輕量級(jí)商業(yè) Web 服務(wù)器,強(qiáng)調(diào)性能和安全性。 LiteSpeed Technologies 公司宣傳為靜態(tài)內(nèi)容提速了 6 倍,在解釋頁(yè)面方面也有一定的提高。
            • Miniature JWS,也稱 tjws,它是基于 Java 的 Web 服務(wù)器,可以處理 servlet、JSP 和數(shù)千個(gè)并發(fā)連接,而大小只有 77 KB。它的作者聲稱它 “比 Apache 2.x 快 10%”。
            • Yaws 是用 Erlang 編寫的一款高性能 HTTP/1.1 服務(wù)器。

             

            有些 Web 服務(wù)器被實(shí)現(xiàn)為類或庫(kù),以便嵌入 到較大的應(yīng)用程序中。 在這些 Web 服務(wù)器當(dāng)中,我發(fā)現(xiàn)特別有趣的有:

            • EHS —— “嵌入式 HTTP 服務(wù)器”,被設(shè)計(jì)為一個(gè) C++ 類,用于嵌入到較大的 C++ 應(yīng)用程序;還有
            • Embedded TCL Web Server,它是一個(gè)很普通的 Web 服務(wù)器,支持 SSL 和 Basic Authentication,速度非常快 —— 其作者使它至少與 lighthttpd 和 AOLserver 一樣快。它是用不到 100 行 Tcl 編寫的。

             

            Python 是幾種適合不尋常環(huán)境的 Web 服務(wù)器的實(shí)現(xiàn)語(yǔ)言,這些 Web 服務(wù)器包括:

            • cdServer 是一個(gè)小型的、用 Python 編寫的 HTTP 服務(wù)器,它 “被設(shè)計(jì)用來(lái)提供來(lái)自 CD-ROM 的(靜態(tài))內(nèi)容” 。它在提供動(dòng)態(tài)內(nèi)容方面能力有限。我們有幾個(gè)涉及不受影響的 “live CDs” 的項(xiàng)目,在這些項(xiàng)目中像 cdServer 之類的工具很關(guān)鍵。
            • edna,一款智能的用 Python 編寫的 MP3 服務(wù)器,它是用 HTTP 實(shí)現(xiàn)的。

             

            還有其他一些用 Perl 和其他不出名的語(yǔ)言編寫的輕量級(jí) Web 服務(wù)器:

            • Camlserv,用 ocaml 編寫的一個(gè)完整的 Web 服務(wù)器,目標(biāo)是 “高度交互式的 Web 頁(yè)面”。它由幾千行 ocaml 編寫而成,其中大部分代碼都與 MySQL 和 HTML 的特殊處理有關(guān)。
            • dhttpd 用和 Apache 相同的格式記錄訪問(wèn)。它支持 CGI,并具有內(nèi)建的 Perl 解釋器、虛擬主機(jī)、IPv6、帶寬管理和安全性等方面的特性。
            • DNHTTPD 是用 Perl 編寫的,用于 UNIX®。它支持虛擬主機(jī)、SSL 連接、CGI 等。
            • Jellybean 是用 Perl 編寫的基于 HTTP 的 Perl Object Server。
            • lns.http 是一個(gè) Common LISP HTTP/1.1 Web 框架。
            • Mongrel 是用 Ruby 編寫的、用于 HTTP 的一個(gè)庫(kù)和服務(wù)器。
            • Nanoweb 是用 PHP 編寫的一款快速、健壯的 Web 服務(wù)器。它宣稱具有豐富的特性,包括完全遵從 HTTP/1.1、訪問(wèn)控制、身份驗(yàn)證、虛擬主機(jī)、SSL 兼容性等。
            • Naridesh 是用 Perl 編寫的 Web 服務(wù)器。
            • OpenAngel 是用 Perl 編寫的。它強(qiáng)調(diào)的重點(diǎn)是安全性。
            • Xavante 是用 Lua 編寫的 HTTP/1.1 Web 服務(wù)器。
            • XSP 是用 C# 編寫的,用于運(yùn)行 ASP.NET。

             

            有時(shí)候您可能需要其他一些用 C 編寫的、具有不常見(jiàn)的次要優(yōu)勢(shì)的輕量級(jí) Web 服務(wù)器:

            • ABYSS 可以在 UNIX 和 Win32 之間移植,其 “目的是成為完全遵從 HTTP/1.1 的 Web 服務(wù)器”。它占用的內(nèi)存很少。
            • Anti-Web HTTPD(也稱 “Anti-Web”、“awhttpd” 和 “AW”)是一款單進(jìn)程、無(wú)線程、支持 CGI 的服務(wù)器,它強(qiáng)調(diào)安全性和簡(jiǎn)單性。
            • MHTTPD 支持從外部文件或 LDAP 服務(wù)器進(jìn)行的 MHTTPD Basic Authentication。
            • mini-httpd 可以在一個(gè)系統(tǒng)線程中處理多個(gè)并發(fā)請(qǐng)求,但是在主機(jī)上占用的內(nèi)存或 CPU 很少。
            • Naken Web 類似于很多其他的輕量級(jí)服務(wù)器 —— 它支持 Basic Authentication、靜態(tài)內(nèi)容等 —— 但是它的作者將它設(shè)計(jì)為用于 Webcam 操作,并且在 Gumstix、WRT54GL、OpenWrt 和其他新的平臺(tái)上運(yùn)行。
            • Null httpd 是一款多線程的、簡(jiǎn)單的、可移植的 Web 服務(wù)器。
            • Seminole 是一款商業(yè) Web 服務(wù)器,內(nèi)存需求較小,功能較多。
            • thttpd throttle,支持 chroot、 Basic Authentication 等。

             





            回頁(yè)首


            結(jié)束語(yǔ)

            Web 服務(wù)器遠(yuǎn)遠(yuǎn)不止是 Apache 和 IIS 的天下。您可以發(fā)現(xiàn)很多其他的 Web 服務(wù)器,它們很小,易于理解,但是又足夠快,可以被正式使用。這樣的 Web 服務(wù)器可以很好地加快您的下一個(gè)項(xiàng)目。



            參考資料

            學(xué)習(xí)

            獲得產(chǎn)品和技術(shù)

            討論


            關(guān)于作者

            Photo of Cameron Laird

            Cameron Laird 長(zhǎng)期為 developerWorks 撰稿,并且曾擔(dān)任專欄作家。他經(jīng)常撰寫關(guān)于能加快其雇主的應(yīng)用程序開發(fā)的開放源代碼項(xiàng)目的文章,著重關(guān)注可靠性和安全性。


            posted on 2010-07-16 15:01 doing5552 閱讀(590) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            AAA级久久久精品无码片| 人妻精品久久无码区| 欧美午夜A∨大片久久 | 狼狼综合久久久久综合网| 国产情侣久久久久aⅴ免费| 日本道色综合久久影院| 亚洲精品无码久久毛片| 精品国产VA久久久久久久冰| 久久av免费天堂小草播放| 国产精品久久久久aaaa| 国产成人久久精品激情| 国产高潮国产高潮久久久91 | 国产A级毛片久久久精品毛片| 久久亚洲sm情趣捆绑调教| 综合网日日天干夜夜久久| 中文精品久久久久人妻| 亚洲AV无码久久精品色欲| 香蕉久久夜色精品升级完成| 久久香蕉超碰97国产精品| 久久精品无码一区二区三区日韩| 国产精品成人99久久久久| 久久精品久久久久观看99水蜜桃| 狠狠色狠狠色综合久久| 亚洲国产精品久久| 伊人热热久久原色播放www| 久久人人超碰精品CAOPOREN| 久久成人国产精品| 午夜精品久久久久久| 久久久久亚洲av成人无码电影| 久久青青草原精品影院| 亚洲欧美日韩精品久久亚洲区| 国内精品久久久久久久久电影网 | 91精品国产综合久久四虎久久无码一级| 精品视频久久久久| 久久国产精品无| 99久久婷婷国产综合精品草原| 国产精品久久久久久久久软件| 亚洲AV无码久久| 亚洲国产成人久久综合一区77| 久久天天躁狠狠躁夜夜avapp| 久久婷婷色香五月综合激情|