2018-08-28 12:16:15 +08:00

3.3 KiB
Raw Blame History

Http常见状态码

2XX 成功

200 OK表示从客户端发来的请求在服务器端被正确处理 204 No content表示请求成功但响应报文不含实体的主体部分 206 Partial Content进行范围请求

3XX 重定向

301 moved permanently永久性重定向表示资源已被分配了新的 URL 302 found临时性重定向表示资源临时被分配了新的 URL 303 see other表示资源存在着另一个 URL应使用 GET 方法丁香获取资源 304 not modified表示服务器允许访问资源但因发生请求未满足条件的情况 307 temporary redirect临时重定向和302含义相同

4XX 客户端错误

400 bad request请求报文存在语法错误 401 unauthorized表示发送的请求需要有通过 HTTP 认证的认证信息 403 forbidden表示对请求资源的访问被服务器拒绝 404 not found表示在服务器上没有找到请求的资源

5XX 服务器错误

500 internal sever error表示服务器端在执行请求时发生了错误 503 service unavailable表明服务器暂时处于超负载或正在停机维护无法处理请求

http 和 https 的区别

http

  • 采用明文传输数据,内容可能遭到窃听;
  • 不验证通信方的身份,通信方的身份有可能遭遇伪装;
  • 无法证明报文的完整性,报文有可能遭篡改。

https

HTTPs 并不是新协议,而是让 HTTP 先和 SSLSecure Sockets Layer通信再由 SSL 和 TCP 通信,也就是说 HTTPs 使用了隧道进行通信。

通过使用 SSLHTTPs 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。

https 的加密方式:

HTTPs 采用混合的加密机制,使用非对称密钥加密用于传输对称密钥来保证传输过程的安全性,之后使用对称密钥加密进行通信来保证通信过程的效率。

http 2.0 的优势

二进制分帧层

在通信过程中,只会有一个 TCP 连接存在它承载了任意数量的双向数据流Stream

  • 一个数据流都有一个唯一标识符和可选的优先级信息,用于承载双向信息。
  • 消息Message是与逻辑请求或响应消息对应的完整的一系列帧。
  • Fram是最小的通信单位来自不同数据流的帧可以交错发送然后再根据每个帧头的数据流标识符重新组装。

服务端推送

HTTP/2.0 在客户端请求一个资源时,会把相关的资源一起发送给客户端,客户端就不需要再次发起请求了。例如客户端请求 page.html 页面,服务端就把 script.js 和 style.css 等与之相关的资源一起发给客户端。

首部压缩

HTTP/1.1 的首部带有大量信息,而且每次都要重复发送。

HTTP/2.0 要求客户端和服务器同时维护和更新一个包含之前见过的首部字段表,从而避免了重复传输。

不仅如此HTTP/2.0 也使用 Huffman 编码对首部字段进行压缩。