Oracle webserver中文介紹-第二章
2024-08-29 13:41:03
供稿:網友
Oracle Web Listener是一個高性能,可伸縮, 可移植的 HTTP 服務器,支持要求迅速響應的的高流量的 Web 應用。 Oracle Web Listener專為實現企業網絡或全球因特網上的分布式信息系統而設計.
從用戶的角度看,Web 是一個文檔或頁面的集合,他們包含了文字,圖象和指向其他頁面的鏈接。通過點,單擊并瀏覽這些鏈接,用戶可以立即訪問一個分布的信息系統。Oracle Web Listener 融合了信息檢索和超文本技術來建立一個強大的全球信息系統。
Oracle Web Listener 工作在簡單的客戶機-服務器模式下。客戶端向 Oracle Web Listener 發出請求。Listener 通過讀取URL來解釋請求,找到或生成所請求的信息, 并將信息返回給通過表格進行請求的客戶機。
在同一臺機器上可以運行多個使用各自專有端口的 Oracle Web Listeners。使用多個 Web Listeners 是在多個不同應用之間平衡負載的好方法。
Oracle Web Listeners 與其客戶端通訊所使用的語言是超文本傳輸協議(HTTP)。Web Listeners實現的是IETF HTTP工作組http://www.ics.UCi.edu/pub/ietf/http/) 定義的HTTP協議的版本1.0。所有的Web客戶端為了能收發超媒體文檔,必須能講HTTP協議。
HTTP協議是一種應用級的協議,輕便并能滿足分布式的協同工作的超媒體信息系統所要求的速度。它是一種通用的,無狀態的面向對象的協議,通過擴展它的請求方法(命令)可以用于很多系統。
Oracle Web Listener 的特性
Oracle Web Listener 的配置參數
2.1 Oracle Web Listener 的特性
Oracle Web Listener 包含了一定數目的特性以在不同的環境下增強其性能和擴展其使用能力。
High Performance Architecture 高性能的體系結構為使性能最大化,Oracle Web Listener 被設計為作為通過帶單線索的單進程運行的的異步引擎,與大多數HTTP服務器不同,他們每建立一個新連接就啟動
一個新進程或線程。這顯著地減少了服務一個請求所要求的時間,降低了監聽機資源的使用,假如是在重負載下提供高性能的話。
File Caching in Memory 文件內存緩存Oracle Web Listener 答應在內存中緩存一個可配置的經常存取的文件集。當這些文件被客戶端訪問時,將能提供很好的性能。
在當前版本的Oracle Web Listener 中,進行內存緩存的文件列表由WebServer治理員決定并能手工配置。治理員應定期分析監聽程序日志以決定那些文件性緩存并相應的修改設置。
Memory Mapping of Files 文件內存映射在支持此特性的操作系統上,文件被訪問時,Oracle Web Listener 自動將他們映射到內存地址上(除非他們被永久的緩存在內存中了)。這種情況下,文件將象是從內存中加載的,答應多于一個連接訪問同一文件而避免重復讀取磁盤。另外,操作系統通常在前一段傳輸后,預讀內存緩存文件的下一段,所以即使是單一連接的情形下,也能進一步提高性能。Directory Mapping 目錄映射Oracle Web Listener 支持將在Web上外部表現在URL中的路徑名映射到Web Listener 機器上的內部位置。這使得即使Web Listener的磁盤被重新規劃了,對客戶端仍是一致的。外部可見(虛擬)目錄到本地文件系統中的物理目錄的指定映射是治理員可配置的。
例如:URL
http://www.acme.com/PRoducts/info.Html
可以映射為系統 www.oracle.com 的目錄 /disk1/ products:
/disk1/products/info.html
假如一次重組時,將目錄 products 移到 /disk3, 治理員在Web listener 配置文件(owl.cfg), 中重新配置虛目錄 products 指向新位置 /disk3/products,而Web客戶則完全不知道這一改變.
注重:Web Listener需要重新載入以識別改動。有關重啟Web Listener的信息,見本章后面的"Web Listener Control Utility" 。
Language Extensions 語言擴展名
Oracle Web Listener支持文件按照不同的字符集存儲以適應所使用的語言。
Web Listener可以解釋文件擴展名以得出文件中數據的類型(如HTML數據)和文件是以何種語言寫的。語言影射特性有治理員控制,并答應客戶端訪問以與不同的語言相應的字符集書寫的文件。
指定的文件擴展名與語言和數據類型的影射關系有Web Listener配置文件控制。
HTTP Protocol Negotiation Features HTTP協議協商特性
HTTP的特點之一是客戶端和HTTP服務器交換有關他們能傳輸和能解釋的數據類型的信息。這些協商特性答應使用不同的數據類型和語言構造系統。
當一個Web客戶機請求一個對象時,它可以指定它能接收何種類型的數據并表示指定類型的配置。 Web Listener可以用此信息發出相應格式化的數據到客戶機,假如 Web Listener上儲存著不止一種格式的話。這一過程叫作HTTP類型協商,OWL完全支持它。例如,文檔中包含行中的圖象,它可以以或者gif或者JPEG的格式傳輸到Web客戶端。
Oracle Web Listener 也支持類似的概念來協商文擋應以哪種語言顯示給特定的用戶。 文檔可能以多種語言存儲(例如英語和加拿大法語),假如客戶端表明了配置將發送適宜的文檔拷貝給他。這極大簡化了多語站點以的維護,因為不需要為不同的語言維護重復的URL或分離的目錄。
Common Gateway Interface 通用網關接口 (CGI)
通用網關接口(CGI)版本1.1是HTTP服務器用以執行一個程序產生HTML輸出的標準技術。這種技術提供了動態內容而不是來自磁盤文件的靜態內容。Oracle Web Listener與CGI 1.1完全兼容。
當一個請求進來而Web Listener識別出該請求將執行一個CGI應用,將創建一個單獨的進程執行這一操作。Web Listener與該進程保持通訊,將Web客戶端的輸入傳過去,檢索其生成的用于客戶端屏幕顯示的HTML輸出。
Web Listener治理員可以配置指定的目錄以包含CGI程序用以運行而不是傳輸文件。這些都可以用Web Listener配置文件來做到。有關WEb Listener配置文件,參見本章后面的"Configuration Parameters,"。
CGI application Execution CGI程序執行
當客戶端向Oracle Web Listener發出一個URL請求,URL的路徑部分被分析以決定它是否代表一個包含文件的目錄(通常情況下)。 這些文件被馬上發給客戶端,對于包含CGI應用程序的目錄,有時被作為腳本引用,他們必須被作為單獨的程序執行以生成發往客戶端的輸出。
CGI應用執行技術是Web的要害特性之一。它答應多個信息源的集成。 Oracle Web Agent即是一種可用此項技術訪問的的CGI應用。
一旦監聽程序發現URL代表一個CGI應用,它將解釋此URL并分解出路徑信息和參數,傳給正在啟動的CGI應用。
CGI程序的URL可分為3部分:
virtual path 虛擬路徑
extra path information 另外的路徑信息
query string 查詢字符串
The syntax is as follows: 語法如下:
virtual_path extra_path_information?query_string
virtual path
虛擬路徑 模擬一個你用于訪問常規文檔或圖象的路徑。就是說,它為服務器指向一個含有你想執行的CGI程序的文件。
extra path information
另外的路徑信息 你將在URL中附加在程序名后面的額外信息。另外的路徑信息是一個可選項。它可以用于傳遞常量信息給那些依靠客戶端輸入的腳本。它也可以用于訪問服務器的虛擬-物理路徑的轉換機制。
query string
查詢字符串 是URL的另一個可選項。它既可以顯式地由超文本錨給出,也可以是來自用戶在帶ISINDEX標記的HTML文件中的搜索對話框中的輸入,或者來自HTML表格。
來自URL或其他資源的用戶輸入 當數據在搜索對話框或文本輸入表格中輸入時,數據將使用URL encoding進行編碼。此編碼依據以下規則編碼:
空格變成加號+
任何一個字符都可以轉義為%xx格式的序列,其中 x 是十六進制數字。字符由轉換兩位十六進制數成的代表字符的0-255的數字表示。
假如來自一個由ISINDEX標記的搜索對話框結果,以上的轉換將直接進行。另外,假如你想避免自己進行次轉換,你的CGI程序可以在命令行上接收已完全轉換的信息。
假如數據來自HTML表格,數據變量的位置依靠于你的HTML文檔中表格標記中指定的方法屬性。假如使用GET方法,這些信息來自變量QUERY_STRING。假如使用POST方法,這些信息使用標準輸入發送給你的程序。
數據以此格式提供:
name1=value1&name2=value2.....&nameN=valueN
假如在編碼后的數據中有任何等號(=)或與號(&),他們被使用以上規則編碼。為了正確地解碼數據,NAME=VALUE對不應被分割直至與號,每個對應分為名稱和值,URL編碼將對每一個對進行。
當表格提交時,你通常使用表格項出現的順序來決定你的CGI程序接收NAME=VALUE對的順序。然而你不能依靠這種行為。不同的表格元素有他們自己的方式來決定什么值將和他們給定的名字相聯系。
所有文本性的輸入區使用用戶的鍵入作為值。
Radio button圓型鈕使用使能鈕的值
Checkboxes檢查框不打叉時,他們或者使用空字符串或者他們的名字根本不在加密表格數據中出現。隱藏的表格項可以用于發送常量或狀態信息給你的腳本。
Imagemap Suppo