diff --git a/notes/HTTP.md b/notes/HTTP.md index 18163b4a..11c91fd1 100644 --- a/notes/HTTP.md +++ b/notes/HTTP.md @@ -353,16 +353,33 @@ Session 是服务器用来跟踪用户的一种手段,每个 Session 都有一 1. 让代理服务器进行缓存; 2. 让客户端浏览器进行缓存。 -**Cache-Control** +**Cache-Control 字段** -该字段用于控制缓存的行为。Cache-Contro : no-cache 有两种含义: +HTTP 通过 Cache-Control 首部字段来控制缓存。 -1. 如果是客户端向缓存服务器发送的请求报文中含有该指令,表示客户端不想要缓存的资源; -2. 如果是源服务器向缓存服务器发送的响应报文中含有该指令,表示缓存服务器不能对资源进行缓存。 +```html +Cache-Control: private, max-age=0, no-cache +``` -**过期时间** +**no-cache 指令** -Expires 字段可以用于告知缓存服务器该资源什么时候会过期。当首部字段 Cache-Control 有指定 max-age 指令时,比起 Expires 字段,会优先处理 max-age 指令。 +该指令出现在请求报文的 Cache-Control 字段中,表示缓存服务器需要先向原服务器验证缓存资源是否过期; + +该指令出现在响应报文的 Cache-Control 字段中,表示缓存服务器在进行缓存之前需要先验证缓存资源的有效性。 + +**no-store 指令** + +该指令表示缓存服务器不能对请求或响应的任何一部分进行缓存。 + +no-cache 不表示不缓存,而是缓存之前需要先进行验证,no-store 才是不进行缓存。 + +**max-age 指令** + +该指令出现在请求报文的 Cache-Control 字段中,如果缓存资源的缓存时间小于该指令指定的时间,那么就能接受该缓存。 + +该指令出现在响应报文的 Cache-Control 字段中,表示缓存资源在缓存服务器中保存的时间。 + +Expires 字段也可以用于告知缓存服务器该资源什么时候会过期。在 HTTP/1.1 中,会优先处理 Cache-Control : max-age 指令;而在 HTTP/1.0 中,Cache-Control : max-age 指令会被忽略掉。 ## 持久连接 @@ -405,7 +422,6 @@ Content-Type: text/plain --AaB03x-- ``` - ## 范围请求 如果网络出现中断,服务器只发送了一部分数据,范围请求使得客户端能够只请求未发送的那部分数据,从而避免服务器端重新发送所有数据。 diff --git a/notes/数据库系统原理.md b/notes/数据库系统原理.md index c8e5ef20..407cec94 100644 --- a/notes/数据库系统原理.md +++ b/notes/数据库系统原理.md @@ -287,7 +287,9 @@ MySQL InnoDB 采用的是两阶段锁协议。在事务执行过程中,随时 # 数据库的三层模式和两层映像 -外模式:局部逻辑结构;模式:全局逻辑结构;内模式:物理结构。 +- 外模式:局部逻辑结构 +- 模式:全局逻辑结构 +- 内模式:物理结构 ## 外模式 @@ -311,25 +313,25 @@ MySQL InnoDB 采用的是两阶段锁协议。在事务执行过程中,随时 # ER 图 -Entity-Relationship,包含三个部分:实体、属性、联系。 +Entity-Relationship,有三个组成部分:实体、属性、联系。 ## 实体的三种联系 联系包含 1 对 1,1 对多,多对多三种。 -如果 A 到 B 是 1 对多关系,那么画个带箭头的线段指向 B;如果是 1 对 1,画两个带箭头的线段;如果是多对多,画两个不带箭头的线段。 +如果 A 到 B 是 1 对多关系,那么画个带箭头的线段指向 B;如果是 1 对 1,画两个带箭头的线段;如果是多对多,画两个不带箭头的线段。下图的 Course 和 Student 是 1 对多的关系。