开发者

Do XMLHttpRequests cache the response headers?

If I make an XMLHttpRequest and the browser caches the response, will it also cache the HTTP response headers? That is, the next time I make the same request, will I get the same values back from response.getRespo开发者_运维知识库nseHeader?

Is this browser-dependent?


I'm certain at least the major browsers don't try to cache the headers. However, if you want to prevent caching altogether, you may need to send special headers. If you want to do a quick test of caching behaviors, there's a page here:

http://www.mnot.net/javascript/xmlhttprequest/cache.html

And I recommend if you want to see what's actually happening, that you go get a packet sniffer such as Wireshark and see for yourself. I can imagine the browser at least performs a HEAD request for an XmlHttpRequest even if it gives you the cached body, but I could be wrong.


Headers are either not cached or not reused. Since a request is sent, headers are received and only then can be decided if this request is valid in the cache. The new headers have then already been downloaded, so no point in reusing the old ones.

Only the response body is cached.

You could ofcourse very easily test this. Make a XHR request to a static resource (img or txt file or something) and check the Date header.

I don't think it's browser dependant. A browser caching and reusing HTTP headers would be very, very strange.

edit
jQuery adds (by default I think) anti caching arguments to GET requests (very annoying), which would sort-of answer your question: nothing is cached like that.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜