CloudFlaireのページを読むと、
So in this case you will need to make sure you are sending HTTP 1.0 as the protocol from your web server if you specifically need the content-length header.
content-lengthのヘッダが必要なら、HTTP 1.0でWebサーバから送れ、
と書いてありますね。
事実上難しい気がします。
一応条件を整理すると、以下の1、2を満たすことのようです。
1.サーバからHTTP/1.0で返すこと。
2.以下のいずれかを満たすこと。
2-1.Which file extensions does CloudFlare cache for static content?にある拡張子にする。
2-2.PageRuleを使って、"custom caching"で"cache everything"に設定する。
2-2.の時に1が必要とは直接書いていませんが、
文脈からそう読み取りました。
また、動作上、sounisi5011さんの環境でも、
おそらく2-1.の条件は満たしているのではないかと思います。
それは、JavaScriptのHTTPのレスポンスヘッダに
+CF-Cache-Status:HIT
があり、キャッシュはされているように見えるためです。
なぜこの様な仕様にしているかの根拠として、
For version 1.1 of the HTTP protocol, the chunked transfer mechanism is considered to be always acceptable, even if not listed in the TE request header field, and when used with other transfer mechanisms, should always be applied last to the transferred data and never more than one time. (Source: wikipedia "Chunked Encoding").
というWikipediaの箇所を、HTTP/1.1の場合に常にchunkedで返す理由にしている様です。
この箇所は常にacceptableであると言っているだけで根拠として弱いと思いますが、
これ以上は読み取れませんでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/20 02:26 編集
2015/09/20 02:40
2015/09/20 02:42