• Http权威指南(服务器、缓存)


    对于web服务器(软件)大家应该不会陌生,常见的web服务器有Apache、IIS、Tomcat、Nginx、Jetty等等。

    1.基本功能

    几乎所有的web服务器都会执行以下几项同样的任务:

    1.建立连接:接受一个客户端连接,或者将其关闭;

    2.接收请求:从网络中读取一条HTTP请求报文;

    3.处理请求:对请求报文进行解释,并采取行动;

    4.访问资源:访问报文中指定的资源;

    5.构建响应:创建带有正确首部的HTTP响应报文;

    6.发送响应:将响应回送给客户端;

    7.记录日志:将事务处理记录在一个日志文件中。

    说到web服务器自身的日志功能,这里有两个实用的web服务器日志:

    access.log:这是服务器的访问日志,记录了每一次的Http请求过程,包括用户的IP,请求的资源(接口);

    error.log:错误日志,当出现报错(代码报错)时,会记录哪个文件的哪一行在执行过程中出错了;

    对于访问日志的功能,当你的网站出现漏洞时,有时候会有人通过漏洞牟利,这时候你可以根据访问日志来追踪

    是自己的哪行代码出现了漏洞,进而去修复漏洞。

    2.代理

    代理服务器就是代理客户端执行请求的服务器  

    代理服务器的角色既是客户端又是服务端,这个相信不难理解。

    代理服务器可以对客户端的请求进行处理,一般有访问控制、web缓存、转码器等等

    3.缓存

    缓存机制是用来提高性能,降低网络通讯费用的

    通常设有缓存的服务器请求是这样的:

    1.接收:缓存从网络中读取抵达的报文;

    2.解析:缓存对报文解析,提取URL和各种首部;

    3.查询:缓存看缓存服务器上有没有副本可用,如果没有,就从源服务器获取一份副本并保存;

    4.新鲜度检测:缓存服务器如果有副本可用,就查看副本是否够新鲜(是否过期),如果不够新鲜,就询问源服务器

    是否有任何更新;

    5.创建响应:缓存会用新的首部和已缓存的主体构建一条报文;

    6.发送:将响应发给客户端;

    7.日志:缓存服务器创建日志。

    针对新鲜度检测这块,我随意找了一个http响应头来说明一下:

    这是百度首页的一张图片的响应报文,(说明一下,当前时间为2018-08-07 01:37)

    我们可以看到,Data首部的时间为7月31号的16:45,也就是说从缓存服务器拿到的副本是7月31号 16:45的存储版本;

    而这个副本的过期时间是8月16号 17:48,也就是说在此时间之前,缓存服务器都不用去源服务器进行新鲜度检测;

    假设现在是8月16号18:00,我们请求这同一张图片,缓存服务器一看,该副本过期了,那是不是直接去原服务器请求新

    的资源呢?不是的,缓存会与源服务器进行核对,该文档是不是有被修改(更新),如果修改了,那就拿一份新的,存

    到缓存服务器上并响应出去,如果没被修改,那么缓存只需要获取新的首部(包括一个新的过期时间),并对缓存中的

    首部进行更新就可以了。这就是服务器再验证

    上面Expires定义了该缓存的过期日期(绝对时间),Cache-Control:max-age也是过期时间(相对时间/段)

  • 相关阅读:
    写作的益处
    【转载】德鲁克:激发我一生的七段经历
    PS如何删除灰色的自动切片
    其他经验博文分类链接
    LODOP单个简短问答(小页面无需拖动滚动条)
    LODOP导出excel的页眉页脚
    LODOP导出和写入excel测试
    LODOP导出Excel简短问答和相关博文
    Lodop导出excel带数字格式
    LODOP批量打印判断是否加入队列1
  • 原文地址:https://www.cnblogs.com/eco-just/p/9428151.html
Copyright © 2020-2023  润新知