微商的自己做网站叫什么软件下载,iis 配置 wordpress,商业型网站,推广公司业务话术文章目录 1. 背景2. SPDY 之前3. SPDY 项目目标4. SPDY 功能特点4.1 SPDY基本功能4.2 SPDY高级功能 1. 背景
TCP是通用的、可靠的传输协议#xff0c;提供保证交付、重复抑制、按顺序交付、流量控制、拥塞避免和其他传输特性。 HTTP是提供基本请求/响应语义的应用层协议。
不… 文章目录 1. 背景2. SPDY 之前3. SPDY 项目目标4. SPDY 功能特点4.1 SPDY基本功能4.2 SPDY高级功能 1. 背景
TCP是通用的、可靠的传输协议提供保证交付、重复抑制、按顺序交付、流量控制、拥塞避免和其他传输特性。 HTTP是提供基本请求/响应语义的应用层协议。
不幸的是HTTP并不是特别为延迟设计的。比如我们要访问一个网站当我们浏览器输入网址例如 www.baidu.com 回车之后浏览器需要请求多个资源然后再渲染展示。
HTTP要求每个资源就要创建一个HTTP请求即使使用HTTP管道仍然需要按照FIFO队列来执行服务器延迟又阻止了TCP通道的请求重用。最终只能让浏览器通过使用多个连接来解决这个问题。最开始浏览器默认每个域2个连接后来扩展到6个连接。
在HTTP中只有客户端可以发起请求即使服务器知道客户端需要某个资源它也没有机制通知客户端必须等待从客户端接收到资源的请求。
此外HTTP header大小逐渐变大, HTTP header 大小从200字节到2KB不等随着应用程序使用更多的cookie和代理扩展功能700-800字节的header大小越来越常见。减少header可以直接改善发送请求的序列化延迟同时例如 User-Agent \ Host \ Accept 等静态头部其实并不需要在同一通道上反复发送。
此外TCP 的head of line blocking问题TCP要求数据接收必须是有序的中间的一次失败就会阻塞后面所有的数据包接收。
基于以上问题Google开发SPDY协议旨在通过减少网络延迟来提高Web页面的加载速度。它是一种基于TCP的应用层协议旨在优化HTTP协议的性能。
SPDY的主要特点包括
多路复用允许在一个SPDY连接内有无限个并行请求这样可以共享一个TCP会话进行多个HTTP请求从而减少消息交互往返的时间和延迟。请求优先级可以设置优先级选择性地传输更重要的资源如CSS和JavaScript然后是其他资源。HTTP头部压缩删除不必要的头信息通过压缩减少数据传输所带来的等待时间和带宽。服务器推送技术服务器可以主动向客户端发送数据这种预加载可以使用户一直保持一个快速的网络。
SPDY协议不是用于替代HTTP的协议而是对HTTP协议的增强。它通过实现多路复用、请求优先级、头部压缩和服务器推送等功能提高了网页加载速度同时也减少了延迟。
随着时间的推移SPDY协议已经成为了HTTP/2的基础并在多个浏览器和服务器上得到了广泛支持。
2. SPDY 之前
在SPDY协议之前还有其他协议来解决网络延迟只是他们大多处在传输层或会话层
Stream Control Transmission Protocol(SCTP) 用于替代TCP的传输层协议提供多路复用流和流意识的拥塞控制。HTTP over SCTP一种让HTTP在SCTP上运行的协议Structured Stream Transport (SST)一种创建“结构化流”的协议是一种清凉、独立的用于在普通传输层上运行的协议。可以替代TCP或者运行在UDP上。MUX/SMUX结余传输层和应用层之间的协议它提供了流的多路复用。
这些都提供了解决一些互联网延迟问题的方法但由于HTTP中的问题压缩、优先级等仍然需要解决这与底层的传输层协议无关。从实际上讲改变传输层是非常难以部署的。
3. SPDY 项目目标
SPDY项目定义并实现了一个应用层协议用于大幅度减少网络的延迟。SPDY的High Level 目标包括
目标是减少50%的页面加载时间。最小化部署复杂性。SPDY使用TCP作为底层传输层因此不需要对现有网络基础设施进行任何更改。避免需要网站作者对内容进行任何更改。支持SPDY所需的唯一更改是在客户端用户代理和Web服务器应用程序中。 4,. 聚集志同道合的团体期望与开源社区和行业专家合作开发这一新协议。
一些具体的技术目标包括
允许许多并发的HTTP请求在单个TCP会话中运行。通过压缩头部和消除不必要的头部来减少HTTP当前使用的带宽。定义一个易于实现且对服务器高效的协议。我们希望通过减少边缘情况和定义易于解析的消息格式来降低HTTP的复杂性。使SSL成为底层传输协议以获得更好的安全性和与现有网络基础设施的兼容性。尽管SSL确实引入了延迟后果但相信网络的长期未来取决于安全的网络连接。此外使用SSL是必要的以确保跨现有代理的通信不被破坏尽可能地使服务器能够启动与客户端的通信并向客户端推送数据。
4. SPDY 功能特点
SPDY 在SSL上添加了一层应用会话层从而允许多个并发且交织的流在单个TCP上运行HTTP的标准Get和Post消息保持不变但是SDPY定义了一个新的编码方式并通过电缆传输这些数据。 流是双向的既可以被客户端初始化也可由服务端初始化。
4.1 SPDY基本功能
多路复用流 SDPY 允许无线数量的并发流在单个TCP连接上运行TCP效率大大提升需要建立的网络连接减少也减少需要发送的包的数量。 请求优先级 虽然无限数量的并发流解决了序列化问题但它们引入了另一个问题如果通道上的带宽受限客户端可能会阻止请求以免塞满通道。 为了克服这个问题SPDY实现了请求优先级客户端可以从服务器请求任意数量的资源并为每个请求分配优先级。 这样可以防止在高优先级请求待处理时通道被非关键资源所塞满。 HTTP头部压缩 SPDY压缩请求和响应的HTTP头部导致发送的包较少传输的字节数也减少。 4.2 SPDY高级功能
SPDY提供了一个高级的功能即服务器启动的流。 服务器启动的流可以用来向客户端发送内容而不需要客户端请求。 可以由网页开发者通过以下两种方式配置
服务器推送 它允许服务器通过X-Associated-Content标头向客户端推送数据。 这个标头告知客户端服务器正在向客户端推送资源而客户端还没有请求它。 对于首次下载页面例如用户第一次访问网站时这可以极大地提升用户体验。 服务器提示 相反于自动向客户端推送资源当服务器知道客户端将需要这些资源时服务器使用X-Subresources标头向客户端建议它应该请求特定资源。 然而服务器仍然会等待客户端的请求才发送内容。 在慢链接上这个选项可以减少客户端发现需要资源所需的时间几百毫秒并且可能更适合非首次页面加载。