Fiddler 是个很大的HTTP处理请求响应工具 可以构建HTTP请求并查看请求响应信息
介绍:http://www.cnblogs.com/backuper/archive/2008/12/31/1365984.html
下面是学习HTTP请求响应笔记
请求过程中的缓存当客户端需要一个资源(html,css.js…),他们有3种可能的动作:1 发送一个一般的HTTP请求到远程服务器端,请求这个资源。2 发送一个有条件的HTTP请求到服务器,条件就是如果它不同于本地的缓存版本。3 如果缓存的拷贝可用,就使用本地的缓存资源。
下面描述请求响应的信息
请求头1 Pragma:no-cache 表明客户端不愿意接受缓存请求,它需要的是最即时的资源。2 If-Modified-Since: datetime 表明如果这个资源自从上次被客户端请求,就已经修改了,那么服务器就会返回给客户
端最新的。3 If-None-Match: etagvalue 如果客户端资源的ETAG值跟服务器端不一致了,那么服务器端返回最新的资
注:如果要是这些有条件的请求,也就是含有If-Modified-Since 或者 If-None-MatchHeader头的请求,服务器将会以
HTTP/304 Not Modified 来作为响应,那么客户端就知道可以使用客户端的缓存了。否则,服务器将会返回一个新的响应
并且客户端就会抛弃过期的缓存资源。
响应头
Expires(过期) 头包含一个绝对的日期,当超过此日期,它将不会被考虑更新了。
Cache-Control头的参数设置:Public 响应会被缓存,并且在多用户间共享。Private 响应只能够作为私有的缓存,不能再用户间共享。No-cache 响应不会被缓存No-store 响应不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。
Vary:User-Agent表示缓存当前的响应,Vary 是一个缓存信号
Accept-Encoding: gzip, deflate 表明IE将愿意接受GZIP格式的和Ddeflate格式的压缩响应