openresty預設是chunked_transfer_encoding on的,也就是使用chunked編碼,這時候content-length沒用。 然後我們客戶端那邊對這個欄位有需求,我們的業務邏輯也比較簡單,我就把chunked關掉了。這時候變成短連接,但是不會自動生成content-length這個字段,如果要我在每次返回之前,都手動計算返回的內容長度就比較費勁了,而且我是動態生成的內容。
這個問題與是不是openresty無關,而是動態內容在輸出時web伺服器根本就不會知道你要輸出內容的大小,如果是靜態資源,在輸出這些靜態資源時,web伺服器就能取得到資源的大小,也就能指定content-length響應頭。所以動態內容要支援content-length回應頭,只能是自己加了。
這個問題與是不是openresty無關,而是動態內容在輸出時web伺服器根本就不會知道你要輸出內容的大小,如果是靜態資源,在輸出這些靜態資源時,web伺服器就能取得到資源的大小,也就能指定content-length響應頭。所以動態內容要支援content-length回應頭,只能是自己加了。