У меня возникли проблемы с выяснением того, что мне нужно настроить для частичных ответов (206), чтобы Google Chrome и Firefox кэшировали данные байта, отправленные в браузер. Internet Explorer кажется доволен моими заголовками, благодаря тому, что я собираю, Chrome очень специфичен в отношении того, что представляет собой действительный ответ для кэширования.206 частичное не кэширование
фон:
я загружаю элемент для длительного видео, и я ищу к клипам в пределах того же видео. Когда я ищу между клипами и возвращаюсь к первому клипу ... вместо того, чтобы играть в кешированные данные, он снова запрашивает данные с сервера в другом запросе 206.
Вот заголовки из одного из этих reuests:
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
Любой успех? Вы нашли ответ? – Matyas
Возможный дубликат [браузер Chrome не отправляет if-modified-since с заголовка на сервер] (http://stackoverflow.com/questions/8294034/chrome-browser-is-not-sending-if-modified-since-header- to-server) –
Любые обновления по этому вопросу? Я также не могу заставить кешировать работу для частичного содержимого 206 в Chrome и Firefox. –