ajp13是定向包協議。因為效能原因,使用二進位制格式來傳輸可讀性文字。web伺服器通過 tcp連線和servlet容器連線。為了減少程序生成 socket的花費,web伺服器和servlet容器之間嘗試保持永續性的tcp連線,對多個請求/回覆迴圈重用乙個連線。一旦連線分配給乙個特定的請求,在請求處理迴圈結束之前不會在分配。換句話說,在連線上,請求不是多元的。這個是連線兩端的編碼變得容易,雖然這導致在一時刻會有很多連線。
一旦web伺服器開啟了乙個到servlet容器的連線,連線處於下面的狀態:
◆ 空閒
這個連線上沒有處理的請求。
◆ 已分派
連線正在處理特定的請求。
一旦乙個連線被分配給乙個特定的請求,在連線上傳送的基本請求資訊是高度壓縮的。在這點,servlet容器大概準備開始處理請求,當它處理的時候,它能發回下面的資訊給web伺服器:
◆ send_headers
傳送一組頭到瀏覽器。
◆ send_body_chunk
傳送一塊主體資料到瀏覽器。
◆ get_body_chunk
從請求獲得下乙個資料如果還沒有全部傳輸完,如果請求內容的包長度非常大或者長度不確定,這是非常必要的。例如上載檔案。注意這和http的塊傳輸沒有關聯。
◆ end_response
結束請求處理迴圈。
tomcat伺服器通過connector聯結器元件與客戶程式建立連線,connector元件負責接收客戶的請求,以及把tomcat伺服器的響應結果傳送給客戶。預設情況下,tomcat在server.xml中配置了兩種聯結器:
maxthreads="150"
minsparethreads="25"
maxsparethreads="75"
enablelookups="false"
redirectport="8443"
acceptcount="100"
debug="0"
connectiontimeout="20000"
disableuploadtimeout="true" />
enablelookups="false"
redirectport="8443" debug="0"
protocol="ajp/1.3" />
第乙個聯結器監聽8080埠,負責建立http連線。在通過瀏覽器訪問tomcat伺服器的web應用時,使用的就是這個聯結器。
第二個聯結器監聽8009埠,負責和其他的http伺服器建立連線。在把tomcat與其他http伺服器整合時,就需要用到這個聯結器。
web客戶訪問tomcat伺服器上jsp元件的兩種方式如圖22-1所示。
圖22-1 web客戶訪問tomcat伺服器上的jsp元件的兩種方式
在圖22-1中,
web客戶1直接訪問tomcat伺服器上的jsp元件,他訪問的 url為http://localhost:8080 /index.jsp。
web客戶2通過http伺服器訪問tomcat伺服器上的jsp元件。假定http伺服器使用的http埠為預設的80埠,那麼web客戶2訪問的url為http://localhost:80/index.jsp 或者 http://localhost/index.jsp。
原文:
Tomcat HTTP協議與AJP協議
tomcat在server.xml中配置了兩種聯結器。擁有這個聯結器,tomcat才能成為乙個web伺服器,但還額外可處理servlet和jsp。ajp聯結器可以通過ajp協議和另乙個web容器進行互動。第乙個聯結器監聽8080埠,負責建立http連線。在通過瀏覽器訪問tomcat伺服器的web應用...
Tomcat HTTP協議和AJP協議區別
http協議 聯結器監聽8080埠,負責建立http連線。在通過瀏覽器訪問tomcat伺服器的web應用時,使用的就是這個聯結器。ajp協議 聯結器監聽8009埠,負責和其他的http伺服器建立連線。在把tomcat與其他http伺服器整合時,就需要用到這個聯結器。ajp apache jserv ...
SpringMvc對JSON的處理與AJAX示例
測試自定義ajax json 中,可以使用 response body註解,快速生成 json資料 但需要jackson類庫支援。配置要求 context annotation config mvc annotation driven 載入轉換器,並 支援物件與json 間的資料轉換 生成json ...