文档章节

HTTP读书笔记(二)

年少爱追梦
 年少爱追梦
发布于 2016/02/23 17:27
字数 1044
阅读 43
收藏 2

      第三章 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.广告又是超级讨厌使用缓存的。


© 著作权归作者所有

上一篇: HTTP读书笔记(三)
下一篇: HTTP读书笔记(一)
年少爱追梦
粉丝 35
博文 190
码字总数 119538
作品 0
杭州
程序员
私信 提问
UNIX网络编程卷2进程间通信读书笔记汇总

UNIX网络编程卷2进程间通信读书笔记(一)—概述 http://blog.chinaunix.net/u/22935/article_52711_2.html UNIX网络编程卷2进程间通信读书笔记(二)—管道 (1) http://blog.chinaunix.ne...

长平狐
2012/09/03
238
0
《Linux内核设计与实现》读书笔记 - 目录 (完结)

《Linux内核设计与实现》读书笔记 - 目录 (完结) 读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个《Linux内核设计...

你的猫大哥
2018/01/14
0
0
《ASP.NET Core In Action》读书笔记系列,这是一个手把手的从零开始的教学系列目录

  最近打算系统学习一下asp.net core ,苦于没有好的中文书藉,只好找来一本英文的 《ASP.NET Core In Action》学习。我和多数人一样,学习英文会明显慢于中文。希望与我相同情况的人避免这...

china_fucan
01/31
0
0
我的RabbitMQ的学习成果

背景 在研发分布式事务的最终一致性事务模式时,使用了RabbitMQ。 在这之前也接触过RabbitMQ,但没有特别深入的去了解它的特性与原理。这次决定系统的学习一次,所以业余时间阅读大神们的书籍...

XuePeng77
04/15
231
0
我的 2017 年度盘点

一、Core Topics Learning based on full English. Operating System Kernel & Dynamic tracking & Go Programming Language. Lincoln Foundation & Absolutism Research. 二、年度成果 2.1 ......

RiboseYim
2017/12/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
6
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
7
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
5
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
6
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部