auto commit

This commit is contained in:
CyC2018 2018-06-11 10:11:30 +08:00
parent 04a8572e18
commit 0da4cf12c2

View File

@ -422,7 +422,7 @@ Session 可以存储在服务器上的文件、数据库或者内存中,现在
### 1. 优点
- 缓解服务器压力;
- 低客户端获取资源的延迟(缓存资源比服务器上的资源离客户端更近)。
- 低客户端获取资源的延迟(缓存资源比服务器上的资源离客户端更近)。
### 2. 实现方法
@ -473,7 +473,7 @@ max-age 指令出现在响应报文中,表示缓存资源在缓存服务器中
Cache-Control: max-age=31536000
```
Expires 字段也可以用于告知缓存服务器该资源什么时候会过期。在 HTTP/1.1 中,会优先处理 Cache-Control : max-age 指令;而在 HTTP/1.0 中Cache-Control : max-age 指令会被忽略掉。
Expires 首部字段也可以用于告知缓存服务器该资源什么时候会过期。在 HTTP/1.1 中,会优先处理 Cache-Control : max-age 指令;而在 HTTP/1.0 中Cache-Control : max-age 指令会被忽略掉。
```html
Expires: Wed, 04 Jul 2012 08:26:05 GMT
@ -481,7 +481,7 @@ Expires: Wed, 04 Jul 2012 08:26:05 GMT
### 4. 缓存验证
需要先了解 ETag 首部字段的含义,它是资源的唯一表示。URL 不能唯一表示资源,例如 `http://www.google.com/` 有中文和英文两个资源,只有 ETag 才能对这两个资源进行唯一表示
需要先了解 ETag 首部字段的含义,它是资源的唯一标识。URL 不能唯一表示资源,例如 `http://www.google.com/` 有中文和英文两个资源,只有 ETag 才能对这两个资源进行唯一标识
```html
ETag: "82e22293907ce725faf67773957acd12"
@ -511,7 +511,7 @@ If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
当浏览器访问一个包含多张图片的 HTML 页面时,除了请求访问 HTML 页面资源,还会请求图片资源,如果每进行一次 HTTP 通信就要断开一次 TCP 连接,连接建立和断开的开销会很大。长连接只需要建立一次 TCP 连接就能进行多次 HTTP 通信。
HTTP/1.1 开始默认是长连接的,如果要断开连接,需要由客户端或者服务器端提出断开,使用 Connection : close而在 HTTP/1.1 之前默认是短连接的,如果需要长连接,则使用 Connection : Keep-Alive。
HTTP/1.1 开始默认是长连接的,如果要断开连接,需要由客户端或者服务器端提出断开,使用 Connection : close而在 HTTP/1.1 之前默认是短连接的,如果需要长连接,则使用 Connection : Keep-Alive。
### 2. 流水线
@ -631,6 +631,7 @@ HTTP/1.1 使用虚拟主机技术,使得一台服务器拥有多个域名,
使用代理的主要目的是:
- 缓存
- 负载均衡
- 网络访问控制
- 访问日志记录
@ -666,25 +667,29 @@ HTTPs 并不是新协议,而是让 HTTP 先和 SSLSecure Sockets Layer
### 1. 对称密钥加密
对称密钥加密Symmetric-Key Encryption加密的加密和解密使用同一密钥。
对称密钥加密Symmetric-Key Encryption加密和解密使用同一密钥。
- 优点:运算速度快;
- 缺点:密钥容易被获取
- 缺点:无法安全地将密钥传输给通信方
<div align="center"> <img src="../pics//7fffa4b8-b36d-471f-ad0c-a88ee763bb76.png" width="600"/> </div><br>
### 2. 公开密钥加密
### 2.非对称密钥加密
公开密钥加密Public-Key Encryption也称为非对称密钥加密使用一对密钥用于加密和解密分别为公开密钥和私有密钥。公开密钥所有人都可以获得通信发送方获得接收方的公开密钥之后就可以使用公开密钥进行加密接收方收到通信内容后使用私有密钥解密
非对称密钥加密又称公开密钥加密Public-Key Encryption加密和解密使用不同的密钥
- 优点:更为安全;
- 缺点:运算速度慢;
公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。
非对称密钥除了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥对签名进行解密,就能判断这个签名是否正确。
- 优点:可以更安全地将公开密钥传输给通信发送方;
- 缺点:运算速度慢。
<div align="center"> <img src="../pics//39ccb299-ee99-4dd1-b8b4-2f9ec9495cb4.png" width="600"/> </div><br>
### 3. HTTPs 采用的加密方式
HTTPs 采用混合的加密机制,使用公开密钥加密用于传输对称密钥来保证安全性,之后使用对称密钥加密进行通信来保证效率。(下图中的 Session Key 就是对称密钥)
HTTPs 采用混合的加密机制,使用非对称密钥加密用于传输对称密钥来保证安全性,之后使用对称密钥加密进行通信来保证效率。(下图中的 Session Key 就是对称密钥)
<div align="center"> <img src="../pics//How-HTTPS-Works.png" width="600"/> </div><br>
@ -698,13 +703,15 @@ HTTPs 采用混合的加密机制,使用公开密钥加密用于传输对称
进行 HTTPs 通信时,服务器会把证书发送给客户端。客户端取得其中的公开密钥之后,先使用数字签名进行验证,如果验证通过,就可以开始通信了。
通信开始时,客户端需要使用服务器的公开密钥将自己的私有密钥传输给服务器,之后再进行对称密钥加密。
<div align="center"> <img src="../pics//2017-06-11-ca.png" width=""/> </div><br>
## 完整性保护
SSL 提供报文摘要功能来进行完整性保护。
HTTP 也提供了 MD5 报文摘要功能,但是却不是安全的。例如报文内容被篡改之后,同时重新计算 MD5 的值,通信接收方是无法意识到发生篡改。
HTTP 也提供了 MD5 报文摘要功能,但不是安全的。例如报文内容被篡改之后,同时重新计算 MD5 的值,通信接收方是无法意识到发生篡改。
HTTPs 的报文摘要功能之所以安全,是因为它结合了加密和认证这两个操作。试想一下,加密之后的报文,遭到篡改之后,也很难重新计算报文摘要,因为无法轻易获取明文。