早期伺服器中常見的服務程式當以傳統的共用閘道介面(Common Gateway Interface -- CGI)為主,是一種完全獨立於不同程式語言的標準,它可以使用任何語言來撰寫,像Perl、Unix shell scripts,、PHP、Java、C/C++ 和Visual Basic等都可以用來撰寫CGI語言,但因其執行過程中都需要產生一個行程,所以,客戶端每請求一次,伺服器都要耗費很多系統資源,早期如果網站伺服器的能力不夠,很容易造成系統崩潰當機。所以,後來各家科技大廠便陸續推出了一些伺服端動態網頁程式語言標準以解決這個問題,而在伺服端運行常見的動態網頁技術主要有以下幾種 :
- Java Servlet : 在客戶端的開發技術有提到Java Applet,而所謂Servlet就是Server Applet的簡稱,是昇陽在Java程式語言所提供的一項技術,在互動式網頁技術中,客戶端使用者介面有Applet,在伺服端可以用Servlet程式來回應客戶端的請求 ,用Servlet開發的程式在第一次啟動後即可以被載入初始化並啟動其行程(Instance) ,以類似於服務(Service)的形式常駐系統的記憶體中,隨時等待回應客戶端所提出的請求,並將響應的結果傳回客戶端,一般情況下,除非應用伺服器的系統重啟或關機,或者執行記憶體回收,才可能結束該行程,由於Servlet可以常駐服務並共享,生命週期較長,所以其系統負載平衡的能力會比傳統CGI程式還要優異,但是其常駐於記憶體,若閒置週期過長,也容易佔用記憶體空間,如果程式在釋放系統資源的工作沒有做好,就會增加系統的負擔,如果不想在軟體的系統資源優化方面下功夫,就必須加大記憶體的空間容量。
- JSP(JavaServer Pages) : JSP是由HttpServlet所擴展出來的,其運作也是架構在Servlet的基礎服務之上,因為JSP執行時會被JSP編譯器編譯成Java Servlets,以Servlet的方式來執行。一般我們用HTML開發出靜態網頁後,可以在HTML裏面嵌入帶有JSP標籤的JAVA語言,當使用者向伺服器請求網頁時,伺服器會透過JSP編譯器針對該JSP網頁內容進行預處理,JSP編譯器會把帶有JSP標籤的JAVA語言編譯成Java Servlets,再由JAVA編譯器將之編譯成機械碼,最後把程式處理的結果放在回傳的網頁裏,將HTML結果呈現給終端使用者。
- ASP(Active Server Pages) : ASP的開發方式與JSP相當類似,所不同的是ASP是由微軟開發,只能在Windows的Web伺服器Internet Information Services (IIS)中運作,它可以架構在微軟的元件物件模型(Component Object Model -- COM)或ActiveX元件技術上進行開發。在客戶端網頁開發技術中提到在客戶端網頁中可以使用微軟VBScript和JScript等嵌入式語言,這部份我們將之稱為Client-side script,而在伺服端一樣可以使用VBScript和JScript,在伺服端的部份則稱之為Server-side script,只要在HTML網頁中嵌入帶有ASP標籤的Server-side Script程式就可以制作ASP網頁,我們可以直接操作COM元件或ActiveX元件,甚至呼叫底層的Windows API,ASP網頁經過支援ASP架構的IIS伺服器進行解析後,最後只會傳回HTML結果給終端主機,使用者只能看得到Client-side script,完全看不到Server-side Script的部份。
- ASP.NET : ASP.NET是源自於ASP技術,所不同的是它採用微軟新的.NET Framework架構平台,它基本上是.NET Framework平台所提供的一網頁開發平台,它可以直接使用.NET Framework架構所提供的VB.NET、C#、J#等多種語言,操作各種不同的.NET元件,這項技術被整合在Visual Web Developer 和Visual Studio等視覺化開發工具中,比起傳統的Visual InterDev開發工具還要具有親和力和可開發性,大大加快了互動式動態網頁的開發週期。
- PHP (Hypertext Preprocessor) : PHP和ASP的概念基本相近,其語法參考了Perl、C語言,同樣可以被嵌入在HTML之中,通過伺服器的PHP編譯器處理後將HTML結果回傳給客戶端。今年Facebook推出HipHop編譯器,HipHop把PHP原始碼編譯成C++,以提高速度;Facebook內部測試過,HipHop的性能比原本的PHP版本高,可以讓CPU負載減少達50%。目前網路上很多開發網站的模板軟體工具都是使用PHP所開發出來的,主要是因為其自由軟體的開放路線,與Tomcat和MySQL等免費的伺服器軟體結合,再加上它可以在很多作業系統上運行,而且完全免費,大大降低了開發費用,所以,才能被廣泛的運用在網際網路上。
- 其它
沒有留言:
張貼留言