HTTP读书笔记(二)

原创
2016/02/23 17:27
阅读数 54

      第三章 HTTP结构

1.一个HTTP/1.1服务器特性要有:丰富的资源支持,虚拟主机,访问控制,日志记录,配置,监视和性能特性。

2.反向DNS对服务器端配置可以使得主机对客户端详细的访问控制和日志记录,不过视乎很花费时间。

3.复用i/o的服务器,当连接有变化的时候才处理,处理完后又放回连接列表当中。空闲连接等待的时候不会绑定线程和进程。

4.复用多线程i/o的服务器,比较接近现代服务器。

5.虚拟托管的docroot,同台web服务器提供多个web站点,每个站点都应该有自己独有的文档根目录。

6.对请求重定向,对路由规则进行重新修改。(定到本地也可以定到其他服务器---负载)

    第四章 HTTP代理服务器

1.代理和网关的区别:网关可以协议转换,代理服务器用的相同的协议。(但代理其实也可以做到这些,SSL安全协议,socket防火墙,FTP访问)

2.代理服务器:WEB缓存,反向代理,内容路由器,转码器。

3.代理服务器的请求报文和web服务器请求不同。代理服务器是完整的urlweb服务器是部分url.HTTP/1.1已经要求都是完整url了,但有一些服务器不是这样。

        第五章 HTTP缓存(客户端)

1.距离时延问题,和距离有很大的关系。

2.HTTP再验证(新鲜度检测)。一般是客户端请求时候,缓存比较久的情况的下,做一次再验证。使用if-modified-since或是if-none-match首部进行验证:用户从响应码无法知道是否是命中缓存或者是请求的原始服务器。只有通过Date首部,对比时间的可以知道是不是命中了缓存。私有缓存和共有缓存,私有的是浏览器提供,公有的是用的出口代理服务器提供的。

3.HTTP Cache-Controller首部和Expires首部为每个文档加一个过期时间,浏览器通过对比就会决定是否请求原数据库。

4.如果不认识缓存的首部请求就会当普通的请求直接做。

5.对于缓存新鲜度检测,如果没有改变返回的结果是 304 Not Modified。成功的话就会在200 ok之后加上新的内容。

6.不同缓存首部的作用:Cache-Controllerno-store/no-cache 限制提供已经缓存的对象,保证新鲜度。但两者区别是:no-store是通知客户端删除对象,no-cache是要先对比一次和服务器的数据,一致再提供。Cache-Controller: max-age/m-maxage;可以设置新鲜度的时间。Expires首部是指的是过期日期,而不是简单的时间。Cache-Controller:must-revalidate,no-cache作用其实是差不多的,如果在检查新鲜度的时候原始服务器不可用,缓存必须返回一条504 GateWay Timeout错误。

7.试探性过期:如果没有那些首部信息,LM-Factor算法就是一个很常见的试探性过期算法。

8.Apachemod_headers模块可以对首部进行单独的设置,可以将首部和个别内容相互关联起来(用Apache的表达式和过滤器一起使用)。mod_expires模块可以提供的程序逻辑自动生成带有正确日期的首部。mod_cern_meta模块可以将HTTP首部文件与特定的对象联系起来。启动这个模块就创建了一组“元文件”,每个需要控制文档一个,并为每个元文件添加首部。

9.通过HTTP-EQUIV控制HTML缓存,为了使html作者不用去Apache配置文件操作,HTML 2.0定义了<META HTTP-EQUIV >标签例如 <META HTTP-EQUIV =Cache-control CONTENT=no-cache>这个就是设置,但只支持HTML文件,所以很少服务器支持这个特性。

10.广告又是超级讨厌使用缓存的。


展开阅读全文
打赏
1
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
1
分享
返回顶部
顶部