該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓
定義
伺服器
硬體角度上說就是一台高性能的Computer。我們通常指的伺服器其實應該是裝有能夠處理具體請求事務的伺服器軟體的Computer。比如最常見的www伺服器、mail伺服器、計費伺服器、ftp伺服器等等。很多時候人們常把諸如Tomcat、IIS、Weblogic 也稱之為web伺服器,其實這些隻是用于開發、內建、部署和管理Web應用、網絡應用和資料庫應用的應用伺服器軟體。
Web伺服器
web伺服器可以處理Http協定,當web伺服器接受到一個Http請求,會傳回一個Http響應,例如送回一個HtMl頁面。
web伺服器可以響應針對靜态頁面或者圖檔的請求,進行頁面跳轉(redirect),或者把動态響應(dynamic response)的産生委托(delegate)給一些其它的程式,例如 CGI 腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,伺服器端 JavaScript,或者一些其它的伺服器端技術。
web伺服器僅僅提供一個可以執行伺服器端程式和傳回(程式産生)響應的環境,而不會超出職能範圍
web伺服器主要是處理需要向浏覽器發送Html的請求以供浏覽
Web伺服器也可以叫做應用伺服器。它的功能比web容器要強大的多,因為它可以部署EJB應用,可以實作容器管理的事務,一般的應用伺服器有weblogic和websphere等,它們都是商業伺服器,功能強大但都是收費的。
Web應用程式需要部署到Web容器或者Web伺服器中才能運作,兩者都必須符合J2EE規範。
Web容器
web容器就是一種服務程式,在伺服器中一個端口就對應一個提供相應服務的程式(比如Apache預設的端口為80),給處于其中的應用程式元件提供環境,使其直接跟容器中的環境變量互動,不必關注其它系統問題。而這個程式就是處理伺服器從用戶端收到的請求,如Java中的Tomcat容器,ASP的IIS都是這樣的容器。這些容器相容了Web伺服器軟體的一些功能。一個伺服器可以有多個容器。
如果web伺服器應用得到一個指向servlet的請求(而不是其他請求,如請求一個普通的靜态HTML),此時伺服器不是把這個請求交給servlet本身,而是交給部署該servlet的容器,要由容器調用servlet的方法,如doPost()或doGet()。
筆者在網上搜到的這些概念,很多時候也都混淆不清。容器和伺服器有時候的定義也比較模糊,容器兼有了伺服器的職責和能力。
容器中,中小型的Tomcat,Nginx大型的,JBoss、Weblogic、WebSphere等
應用程式伺服器 The Application Servlet
根據定義,作為應用程式伺服器,要求可以通過各種協定包括Http協定把商業邏輯暴露給expose用戶端應用程式,應用程式使用此商業邏輯就像你調用對象的一個方法或過程一樣。
Servlet(Server Applet),全稱 Java Servlet,未有中文譯文。是用 Java 編寫的伺服器端程式。其主要功能在于互動式地浏覽和修改資料,生成動态 Web 内容。狹義的 Servlet 是指 Java 語言實作的一個接口,廣義的 Servlet 是指任何實作了這個 Servlet 接口的類,一般情況下,人們将 Servlet 了解為後者。
Servlet 運作于支援 Java 的應用伺服器中。從實作上講,Servlet 可以響應任何類型的請求,但絕大多數情況下 Servlet 隻用來擴充基于 HTTP 協定的 Web 伺服器。