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也是过期时间(相对时间/段)
Http权威指南(服务器、缓存)的更多相关文章
- Struts2权威指南笔记
Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也 ...
- 【HTTP权威指南】第1 章 HTTP 概述
1.1 HTTP--因特网的多媒体信使 ................................................................................ ...
- 《HTTP权威指南》读书笔记(一)
1.因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过Web传输的对象都搭上了名为MIME类型的数据格式标签.WEB服务器会为所有HTTP对象数据附加一个MIME类型.当Web浏览器从服务器中 ...
- 《http权威指南》读书笔记18
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记17
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记14
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记10
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记7
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《http权威指南》读书笔记6
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- 《Kafka权威指南》读书笔记-操作系统调优篇
<Kafka权威指南>读书笔记-操作系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大部分Linux发行版默认的内核调优参数配置已经能够满足大多数应用程序的运 ...
随机推荐
- nmap与Nessus扫描特定靶机分析
打开装载Metasploitable2虚拟机的靶机,并获取靶机ip: 使用nmap+ip初步扫描靶机 PORT为端口,STATE为端口开放状态,SERVICE为端口的提供的服务.靶机的MAC地址为: ...
- gerrit代码审核工具之“error unpack failed error Missing unknown”错误解决思路
使用gerrit代码审核工具时遇到error: unpack failed: error Missing unknown d6d7c89bd1d77f44c5c8e99437aaffbfc0684e7 ...
- Centos7 Python3.x源码安装
第一步,安装开发工具集 yum -y groupinstall "Development tools" 第二步,安装相关依赖包: yum -y install zlib-devel ...
- [BZOJ1044木棍分割]
Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连 接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段 ...
- PHP的memory_limit引起的问题
在运行PHP程序,通常会遇到下面的错误, 这个意味着PHP脚本使用了过多的内存,并超出了系统对其设置的允许最大内存.解决这个问题,首先需要查看你的程序是否分配了过多的内存,在程序没有问题的情况下,你可 ...
- MongoTemplate WriteResult acknowledged=false 的问题
今天使用 MongoTemplate 的 update 操作时,发现 WriteResult 的 acknowledged 一直为 false ,个人首先想到可能时java驱动版本不对,在更换好对应版 ...
- 高并发下,php与redis实现的抢购、秒杀功能
抢购.秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到 ...
- 在centos7上安装部署hadoop2.7.3和spark2.0.0
一.安装装备 下载安装包: vmware workstations pro 12 三台centos7.1 mini 虚拟机 网络配置NAT网络如下: 二.创建hadoop用户和hadoop用户组 1. ...
- HDU 3861 The King's Problem(强连通分量缩点+最小路径覆盖)
http://acm.hdu.edu.cn/showproblem.php?pid=3861 题意: 国王要对n个城市进行规划,将这些城市分成若干个城市,强连通的城市必须处于一个州,另外一个州内的任意 ...
- codeforces600E Lomsat gelral
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...