openresty默認(rèn)是chunked_transfer_encoding on的,也就是使用chunked編碼,這時(shí)候content-length沒(méi)用。
然后我們客戶端那邊對(duì)這個(gè)字段有需求,我們的業(yè)務(wù)邏輯也比較簡(jiǎn)單,我就把chunked關(guān)掉了。這時(shí)候變成短連接,但是不會(huì)自動(dòng)生成content-length這個(gè)字段,如果要我在每次返回前,都手動(dòng)計(jì)算返回的內(nèi)容長(zhǎng)度就比較費(fèi)勁了,而且我是動(dòng)態(tài)生成的內(nèi)容。
這個(gè)問(wèn)題與是不是openresty無(wú)關(guān),而是動(dòng)態(tài)內(nèi)容在輸出時(shí)web服務(wù)器根本就不會(huì)知道你要輸出內(nèi)容的大小,如果是靜態(tài)資源,在輸出這些靜態(tài)資源時(shí),web服務(wù)器就能獲取到資源的大小,也就能指定content-length響應(yīng)頭。所以動(dòng)態(tài)內(nèi)容要支持content-length響應(yīng)頭,只能是自己添加了。