HTTP

HTTP 123

D瓜哥
HTTP1.0 根据谷歌的调查, 现在请求一个网页,平均涉及到 80 个资源,30 多个域名。考虑最原始的情况,每请求一个资源都需要建立一次 TCP 请求,显然不可接受。HTTP 协议规定了一个字段 Connection,不过默认的值是 close,也就是不开启。 HTTP1.1 Pipeline 是为了减少不必要的 TCP 连接,但依然存在队头阻塞(HOC)的缺点,一种解决思路是利用并发连接减少某一个 HOC 的影响,另一个是共享(注意与复用的区别) TCP 连接,直接避免 HOC 问题的发生。 HTTP1.1 的缺陷 高延迟 — 队头阻塞(Head-Of-Line Blocking) 当有多个串行请求执行时,如果第一个请求不执行完,后续的请求也无法执行。 支持并发请求是解决解决 HOC 问题的一种方案,并发请求并非是直接解决了 HOC 的问题,而是尽可能减少 HOC 造成的影响。 将同一页面的资源分散到不同域名下,提升连接上限。 减少请求数量 内联一些资源:css、base64 图片等 合并小文件减少资源数 无状态特性 — 阻碍交互 明文传输 — 不安全性 HTTP 1.x 也可以配合 TLS 进行安全传输,只是不是强制的。 不支持服务端推送 SPDY SPDY 是由 Google 推行的改进版本的 HTTP1.1。 针对 HTTP1.1 的缺陷,SPDY 提供了如下特性: 多路复用 — 解决队头阻塞 SPDY 允许在一个连接上无限制并发流。因为请求在一个通道上,TCP 效率更高。