Google Chrome と Firefox がブラウザに送信されたバイト データをキャッシュするために、部分応答 (206) に何を設定する必要があるかわかりません。Internet Explorer は私のヘッダーに満足しているようです。私が収集した情報によると、Chrome はキャッシュに対する有効な応答を構成するものについて非常に具体的です。
バックグラウンド:
長いビデオの要素を読み込んでいて、同じビデオ内でクリップしようとしています。クリップ間をシークして最初のクリップに戻ると、キャッシュされたデータを再生する代わりに、別の 206 リクエストでサーバーからデータを再度要求します。
以下は、これらの要求の 1 つからのヘッダーです。
Request URL:http://localhost:51202/Stream/StreamVideo?videoFileGuid=e824795d-18af-43cb-935d-b793dbbe36fb
Request Method:GET
Status Code:206 Partial Content
Request Headers
GET /Stream/StreamVideo?videoFileGuid=e824795d-18af-43cb-935d-b793dbbe36fb HTTP/1.1
Host: localhost:51202
Connection: keep-alive
Accept-Encoding: identity;q=1, *;q=0
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Accept: */*
Referer: http://localhost:52309/Playlists/Playlist/ViewPlaylist?playlistGuid=165deee2-e5d3-435c-ac19-f2f7357cf6d2
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: .ASPXAUTH=<snip>
Range: bytes=463809580-
Query String Parameters
videoFileGuid=e824795d-18af-43cb-935d-b793dbbe36fb
Response Headers
HTTP/1.1 206 Partial Content
Cache-Control: public
Content-Length: 421590265
Content-Type: video/mp4
Content-Range: bytes 463809580-885399845/885399846
Expires: Thu, 14 Nov 2013 08:54:30 GMT
Last-Modified: Fri, 01 Nov 2013 14:33:04 GMT
Accept-Ranges: bytes
ETag: 515e8d9b-87f4-4e49-ac64-17c33e091b4a
Server: Microsoft-IIS/8.0
X-AspNetMvc-Version: 4.0
Content-Disposition: inline; filename="StreamVideo"
X-AspNet-Version: 4.0.30319
X-SourceFiles: =<snip>
X-Powered-By: ASP.NET
Date: Thu, 07 Nov 2013 08:54:46 GMT
X-Powered-By:ASP.NET
X-SourceFiles:=<snip>
何か案は?
Internet Explorer では、サーバーで処理している "If-Unmodified-Since" 値と "If-Match" 値が要求に含まれていることがわかります。ただし、Chrome はこれらをリクエスト ヘッダーに含めませんか? そもそも元の応答が、コンテンツをキャッシュするために必要なものを提供しなかったためだと思います。
IE ヘッダー:
Key Value
Request GET /Stream/StreamVideo?videoFileGuid=e824795d-18af-43cb-935d-b793dbbe36fb HTTP/1.1
Accept */*
If-Unmodified-Since Fri, 01 Nov 2013 14:33:04 GMT
If-Match 515e8d9b-87f4-4e49-ac64-17c33e091b4a
Range bytes=884228096-885399845
User-Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Referer <myURL>
GetContentFeatures.DLNA.ORG 1
Pragma getIfoFileURI.dlna.org
Accept-Language en-ZA
Accept-Encoding gzip, deflate
Host <myHost>
DNT 1
Connection Keep-Alive