美文网首页
HTTP协议-HTTP\1扩展三

HTTP协议-HTTP\1扩展三

作者: Wu杰语 | 来源:发表于2019-09-20 19:09 被阅读0次

    序言

    这是HTTP\1扩展的小短文的最后一篇了,HTTP的缓存控制和代理,实际上HTTP的扩展还有很多,这里介绍的都是在工程上的主要使用。

    HTTP扩展

    HTTP缓存控制

    为何说是HTTP缓存控制而不是HTTP缓存,这是因为HTTP本身没有缓存功能,所以只是在HTTP协议中扩充了缓存字段,让浏览器和服务端按照缓存控制字段处理是否需要缓存。

    • 服务器端使用Cache-Control, 例如Cache-Control: max-age=30,就是说服务器端发出报文到客户端智能保留30秒。浏览器是怎么处理的呢,浏览器收到缓存条件就把数据缓存起来,如果没有过期就可以直接使用,过期就要去服务器验证是否仍然可用。
    • 浏览器怎样验证呢?有两个步骤:
      • 在第一次缓存的时候浏览器收到的服务器报文中,有Last-Modified和ETag两个字段。
      • 浏览器接下来的处理中,会先下发HEAD请求,报文带上if-Modified-Since和if-None-Match两个字段以及上面Last-Modified和ETag两个字段, 交给服务器验证,服务器验证后如果返回304 Not Modified,就说明缓存依然有效,浏览器就可以继续使用缓存。
    代理

    代理是HTTP比较常见的应用,最常用的代理应用是负载均衡。通过设置代理,可以做如下事情:

    • 代理服务器可以对服务器做管理,建立心跳,如果服务器已经异常,则端口服务器连接,保证服务高可用性。
    • 黑名单,可以在代理服务器上设置黑名单,保证服务器高可用。
    • 缓存,如ngix,可以用来作为缓存静态数据,如果发现是静态数据,就直接从代理服务器返回。

    由于中间存在代理,服务器和客户端之间就不能互相知道IP,而服务器的IP一般按照安全原则是不暴漏给客户端的,但是服务器确有必要知道客户端的IP地址,这时有两个字段 X-Forwarded-Host和X-Real-IP只记录客户端的信息。

    小结

    关于HTTP/1的主要扩展使用了三篇小短文,分别是承载内容、长连接、cookie、重定向、缓存、代理

    相关文章

      网友评论

          本文标题:HTTP协议-HTTP\1扩展三

          本文链接:https://www.haomeiwen.com/subject/rzyjuctx.html