tomcat http協議與ajp協議

2022-08-10 07:48:14 字數 1675 閱讀 6558

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 ...