diff --git a/notes/HTTP.md b/notes/HTTP.md index b509d950..1c6ddb86 100644 --- a/notes/HTTP.md +++ b/notes/HTTP.md @@ -290,9 +290,7 @@ Session 是服务器用来跟踪用户的一种手段,每个 Session 都有一 有两种缓存方法:让代理服务器进行缓存和让客户端浏览器进行缓存。 -Cache-Control 用于控制缓存的行为。 - -Cache-Control: no-cache 有两种含义,如果是客户端向缓存服务器发送的请求报文中含有该指令,表示客户端不想要缓存的资源;如果是源服务器向缓存服务器发送的响应报文中含有该指令,表示缓存服务器不能对资源进行缓存。 +Cache-Control 用于控制缓存的行为。Cache-Control: no-cache 有两种含义,如果是客户端向缓存服务器发送的请求报文中含有该指令,表示客户端不想要缓存的资源;如果是源服务器向缓存服务器发送的响应报文中含有该指令,表示缓存服务器不能对资源进行缓存。 Expires 字段可以用于告知缓存服务器该资源什么时候会过期。当首部字段 Cache-Control 有指定 max-age 指令时,比起首部字段 Expires,会优先处理 max-age 指令。 @@ -318,7 +316,7 @@ Expires 字段可以用于告知缓存服务器该资源什么时候会过期。 ## 多部分对象集合 -一份报文主体内可含有多类型的实体同时发送,每个部分之间用 boundary 字段定义的分隔符进行分隔;每个部分都可以有首部字段。 +一份报文主体内可含有多种类型的实体同时发送,每个部分之间用 boundary 字段定义的分隔符进行分隔;每个部分都可以有首部字段。 例如,上传多个表单时可以使用如下方式: @@ -328,7 +326,7 @@ Expires 字段可以用于告知缓存服务器该资源什么时候会过期。 如果网络出现中断,服务器只发送了一部分数据,范围请求使得客户端能够只请求未发送的那部分数据,从而避免服务器端重新发送所有数据。 -在请求报文首部中添加 Range 字段,然后指定请求的范围,例如 Range : bytes = 5001-10000。请求成功的话服务器发送 206 Partial Content 状态。 +在请求报文首部中添加 Range 字段,然后指定请求的范围,例如 Range:bytes=5001-10000。请求成功的话服务器发送 206 Partial Content 状态。 ## 内容协商 @@ -344,9 +342,11 @@ Expires 字段可以用于告知缓存服务器该资源什么时候会过期。 **代理** -代理服务器接受客户端的请求,并且转发给其它服务器。代理服务器一般是透明的,不会改变 URL。 +代理服务器接受客户端的请求,并且转发给其它服务器。 -使用代理的主要目的是:缓存、网络访问控制以及记录访问日志。 +代理服务器一般是透明的,不会改变 URL。 + +使用代理的主要目的是:缓存、网络访问控制以及访问日志记录。 ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics//c07035c3-a9ba-4508-8e3c-d8ae4c6ee9ee.jpg) @@ -366,9 +366,9 @@ Expires 字段可以用于告知缓存服务器该资源什么时候会过期。 HTTP 有以下安全性问题: -1. 通信使用明文,内容可能会被窃听; -2. 不验证通信方的身份,因此有可能遭遇伪装; -3. 无法证明报文的完整性,所以有可能已遭篡改。 +1. 使用明文进行通信,内容可能会被窃听; +2. 不验证通信方的身份,通信方的身份有可能遭遇伪装; +3. 无法证明报文的完整性,报文有可能遭篡改。 HTTPs 并不是新协议,而是 HTTP 先和 SSL(Secure Socket Layer)通信,再由 SSL 和 TCP 通信。通过使用 SSL,HTTPs 提供了加密、认证和完整性保护。 @@ -386,9 +386,9 @@ HTTPs 采用 **混合的加密机制**,使用公开密钥加密用于传输对 通过使用 **证书** 来对通信方进行认证。证书中有公开密钥数据,如果可以验证公开密钥的确属于通信方的,那么就可以确定通信方是可靠的。 -数字证书认证机构(CA,Certificate Authority)颁发的公开密钥证书,可以通过 CA 对其进行验证。 +数字证书认证机构(CA,Certificate Authority)可以对其颁发的公开密钥证书对其进行验证。 -进行 HTTPs 通信时,服务器会把证书发送给客户端,客户端取得其中的公开密钥之后,就可以开始加密过程。 +进行 HTTPs 通信时,服务器会把证书发送给客户端,客户端取得其中的公开密钥之后,就可以开始通信。 使用 OpenSSL 这套开源程序,每个人都可以构建一套属于自己的认证机构,从而自己给自己颁发服务器证书。浏览器在访问该服务器时,会显示“无法确认连接安全性”或“该网站的安全证书存在问题”等警告消息。 @@ -400,8 +400,10 @@ SSL 提供摘要功能来验证完整性。 # HTTP/1.0 与 HTTP/1.1 的区别 -- HTTP/1.1 默认是长连接; -- HTTP/1.1 提供了范围请求功能; -- HTTP/1.1 提供了虚拟主机的功能; -- HTTP/1.1 多了一些缓存处理字段; -- HTTP/1.1 多了一些状态码; +HTTP/1.1 新增了以下内容: + +- 默认为长连接; +- 提供了范围请求功能; +- 提供了虚拟主机的功能; +- 多了一些缓存处理字段; +- 多了一些状态码;