如何让浏览器停止缓存服务器响应?

时间:2011-02-07 00:35:13

标签: html http caching webserver browser-cache

我为我构建的机器人(video)开发了自己的自定义Web服务器,但却不知道HTTP的复杂性。我遇到的一个问题是我从浏览器发送请求,比如http://192.168.2.10/r?cmd=doStuff,机器人会响应。然后我再次从浏览器发送相同的请求(通过单击我保存的书签),请求永远不会消失,它只显示上一个请求的响应。

以下是来自浏览器的内容(特别是IE8):

GET /r?cmd=s HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg,     application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.2; .NET4.0C; .NET4.0E; Zune 4.7)
Accept-Encoding: gzip, deflate
Host: 192.168.2.10
Connection: Keep-Alive

机器人响应以下内容:

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Server: The Little Robot That Could 1.0
Date: Thu, 01 Jan 2009 00:05:00 GMT
Content-Length: 4
X-Powered-By: Little Robot HTTP Server

我是否需要在混合中添加一些其他HTTP标头以防止浏览器缓存响应?

3 个答案:

答案 0 :(得分:3)

是的,你需要缓存控制头。

Cache-Control: no-cache;max-age=0

答案 1 :(得分:1)

我会尝试投入一个Pragma:no-cache。应该适用于任何现代浏览器。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

答案 2 :(得分:0)

好。

这里的真正的问题是使用GET来“做某事”。