Web 代理服务器(或其他 http 缓存)缓存了哪些数据?
What data is cached by web proxy server(or other http caches)?
我特别感兴趣的是代理服务器(或其他http缓存)是否缓存了客户端请求的URI、方法、Headers和Body?还是只有 URI 和方法?
原因是我对负缓存感到困惑,例如使用 400 状态代码 ("Bad request") 缓存响应。我的意思是如果第一个响应有一个 "invalid" body 导致 400 错误并且我们缓存它是否意味着后续请求 "valid" body 仍然会得到 400 响应从缓存? (甚至没有访问源服务器?
GET 请求是可以被中间缓存缓存的请求。
如书中所示 "HTTP: The definitive guide" 只有 URL 和 headers 被缓存。
PUT、POST 和 DELETE 请求将导致缓存失效,如图 here。
所以我原来的问题(由于 body 无效,大约有 400 个响应)是错误的,因为根据 REST 和其他方法(可能有 body,GET 请求不应该有 body ) 导致缓存失效。
感谢@Adrien 指点!
我特别感兴趣的是代理服务器(或其他http缓存)是否缓存了客户端请求的URI、方法、Headers和Body?还是只有 URI 和方法?
原因是我对负缓存感到困惑,例如使用 400 状态代码 ("Bad request") 缓存响应。我的意思是如果第一个响应有一个 "invalid" body 导致 400 错误并且我们缓存它是否意味着后续请求 "valid" body 仍然会得到 400 响应从缓存? (甚至没有访问源服务器?
GET 请求是可以被中间缓存缓存的请求。 如书中所示 "HTTP: The definitive guide" 只有 URL 和 headers 被缓存。
PUT、POST 和 DELETE 请求将导致缓存失效,如图 here。
所以我原来的问题(由于 body 无效,大约有 400 个响应)是错误的,因为根据 REST 和其他方法(可能有 body,GET 请求不应该有 body ) 导致缓存失效。
感谢@Adrien 指点!