• 一步
    2019-06-07
    像这样的缓存 Cache-Control: max-age=1000 ,浏览器不是直接判断是否使用浏览器缓存的吗? 若判断浏览器本地缓存过期,在利用 Last-Modifiy-Since 或者etag 这样值再去请求判断是否继续使用缓存的? 怎么课程中对于浏览器是否使用缓存都是要请求代理服务器的呢?

    作者回复: 1、你是说在请求中带max-age吗?这种用法罕见,浏览器并不使用这种用法,它表示“客户端不会接受 Age 超出 max-age 秒的缓存”。
    2、是的。
    3、源服务器没有必要缓存,只有代理服务器使用缓存才能提升性能和可用性。

    
     1
  • zkeen
    2020-02-04
    “缓存中的【响应】的头部明确告知可以使用过期的响应(如:Cache-Control:max-stale=60)” ,是不是错别字?应该是【相应】?

    作者回复: 就是响应,http response

    
    
  • 笨笨
    2019-10-05
    还有一点,请求和响应中如果存在缓存设置冲突该怎么解决/协商呢?比如,请求中设置no-store,要求我这个请求在各个代理上都不要缓存,但是,源服务器给出响应中,响应头设置了max-age: 1000,那么各个代理服务器对这个请求到底是缓存呢还是不缓存呢?

    作者回复: 多数代理服务器是以上游响应头部为准,例如Nginx。

    
    
  • 笨笨
    2019-10-05
    和上面同学有相同的疑问,即【浏览器】作为用户的【正向代理服务器】的作用是怎么体现的?把浏览器看做一个普通的【代理服务器】么?假如整个请求链路中有2个真正的Nginx代理服务器,那么如果一个【请求】中有【no-cache】起到的效果就是【告诉浏览器不要使用缓存,这个请求一定发给我的上游,即第一个Nginx代理服务器,然后中间的代理服务器不断的逐层向自己的上游发起验证请求,直到到达真正的源服务器,源服务器做出304或200的响应,再在各个中间代理服务器递归回来,最终返回给用户】?请问老师理解的是否正确?

    作者回复: 1、浏览器只是可以设置正向代理服务器,它自身不是代理服务器。浏览器上通过设置正向代理服务器的IP和端口,可以把请求转发给代理,再由代理与源服务器建立连接转发请求。
    2、语义上没错,但现实中不是每个代理服务器都严格遵守规范,验证时要留意。

    
    
  • 我在你的视线里
    2019-08-04
    这web课程,在工作中偏向于运维吗?

    作者回复: 没有,举例时会有一些运维案例,也会有开发案例,涉及python、lua、C等语言时只是为了说明协议

    
    
  • 张迪
    2019-07-23
    Web服务器是不是也有一大堆请求缓存来消耗内存?

    作者回复: 对

    
    
  • Jesse
    2019-06-06
    老师好,想问下Pragma的优先级比Cache-control高吗?

    作者回复: 没有这种规定哦,通常,对HTTP/1.1有良好支持的服务可能会忽略Pragma头部,而只支持HTTP/1.0的服务会不识别Cache-Control

    
    
我们在线,来聊聊吧