AJP簡(jiǎn)介
AJP是定向包協(xié)議。因?yàn)樾阅茉颍褂枚M(jìn)制格式來(lái)傳輸可讀性文本。WEB服務(wù)器通過(guò)TCP連接和SERVLET容器連接。為了減少進(jìn)程生成socket的花費(fèi),WEB服務(wù)器和SERVLET容器之間嘗試保持持久性的TCP連接,對(duì)多個(gè)請(qǐng)求/回復(fù)循環(huán)重用一個(gè)連接。一旦連接分配給一個(gè)特定的請(qǐng)求,在請(qǐng)求處理循環(huán)結(jié)束之前不會(huì)在分配。換句話說(shuō),在連接上,請(qǐng)求不是多元的。這個(gè)是連接兩端的編碼變得容易,雖然這導(dǎo)致在一時(shí)刻會(huì)有很多連接。
通常正式的應(yīng)用都是由apache,nginx來(lái)解析http 協(xié)議,然后將ajp協(xié)議有應(yīng)用服務(wù)器來(lái)解析,這樣可以大大提高性能。 一旦WEB服務(wù)器打開(kāi)了一個(gè)到SERVLET容器的連接,連接處于下面的狀態(tài):
空閑
這個(gè)連接上沒(méi)有處理的請(qǐng)求。
已分派
連接正在處理特定的請(qǐng)求。
一旦一個(gè)連接被分配給一個(gè)特定的請(qǐng)求,在連接上發(fā)送的基本請(qǐng)求信息是高度壓縮的。在這點(diǎn),SERVLET容器大概準(zhǔn)備開(kāi)始處理請(qǐng)求,當(dāng)它處理的時(shí)候,它能發(fā)回下面的信息給WEB服務(wù)器:
SEND_HEADERS
發(fā)送一組頭到瀏覽器。
SEND_BODY_CHUNK
發(fā)送一塊主體數(shù)據(jù)到瀏覽器。
GET_BODY_CHUNK
從請(qǐng)求獲得下一個(gè)數(shù)據(jù)如果還沒(méi)有全部傳輸完,如果請(qǐng)求內(nèi)容的包長(zhǎng)度非常大或者長(zhǎng)度不確定,這是非常必要的。例如上載文件。注意這和HTTP的塊傳輸沒(méi)有關(guān)聯(lián)。
END_RESPONSE
結(jié)束請(qǐng)求處理循環(huán)。
通常正式的應(yīng)用都是由apache,nginx來(lái)解析http 協(xié)議,然后將ajp協(xié)議有應(yīng)用服務(wù)器來(lái)解析,這樣可以大大提高性能。 一旦WEB服務(wù)器打開(kāi)了一個(gè)到SERVLET容器的連接,連接處于下面的狀態(tài):
空閑
這個(gè)連接上沒(méi)有處理的請(qǐng)求。
已分派
連接正在處理特定的請(qǐng)求。
一旦一個(gè)連接被分配給一個(gè)特定的請(qǐng)求,在連接上發(fā)送的基本請(qǐng)求信息是高度壓縮的。在這點(diǎn),SERVLET容器大概準(zhǔn)備開(kāi)始處理請(qǐng)求,當(dāng)它處理的時(shí)候,它能發(fā)回下面的信息給WEB服務(wù)器:
SEND_HEADERS
發(fā)送一組頭到瀏覽器。
SEND_BODY_CHUNK
發(fā)送一塊主體數(shù)據(jù)到瀏覽器。
GET_BODY_CHUNK
從請(qǐng)求獲得下一個(gè)數(shù)據(jù)如果還沒(méi)有全部傳輸完,如果請(qǐng)求內(nèi)容的包長(zhǎng)度非常大或者長(zhǎng)度不確定,這是非常必要的。例如上載文件。注意這和HTTP的塊傳輸沒(méi)有關(guān)聯(lián)。
END_RESPONSE
結(jié)束請(qǐng)求處理循環(huán)。
posted on 2011-10-21 11:03 linugb118 閱讀(467) 評(píng)論(0) 編輯 收藏