摘自:http://www.cnblogs.com/chanzhi/p/5455144.html
LAMP环境搭建企业网站建设必然离不开服务器运维,一个稳定高效的服务器环境是保证网站正常运行的重要前提。本文小编将会详细讲解Linux系统上如何搭建配置高效的lamp服务环境,并在lamp环境中搭建起
顺晟科技
2021-06-16 10:39:03
227
作为互联网通信协议的老手,HTTP协议在今天经历了三个版本的变化。现在最新的版本是HTTP2.0,相信大家已经很熟悉了。今天我就给大家好好介绍一下HTTP的前世。
HTTP/0.9
HTTP最早的版本诞生于1991年。相比现在的版本,这个最早的版本极其简单,没有HTTP头,没有状态码,甚至没有版本号。后来将其版本号设置为0.9,以区别于其他版本的HTTP。HTTP/0.9只支持一个方法,——Get,请求只有一行。
GET/hello.html
响应也很简单,只包括html文档本身。
超文本标记语言
编译
/HTML
TCP建立连接后,服务器向客户端返回一个HTML格式的字符串。发送后关闭TCP连接。由于没有状态码和错误码,如果服务器在处理过程中出错,只会返回一个包含问题描述信息的特殊HTML文档。这是HTTP/0.9最早的版本。
HTTP/1.0
1996年,HTTP/1.0版本发布,极大地丰富了HTTP的传输内容。除了文字,图片和视频也可以发送,这为互联网的发展奠定了基础。与HTTP/0.9相比,HTTP/1.0主要有以下特点:
请求和响应支持HTTP头,并添加了状态代码。响应对象以响应状态行开始
协议版本信息需要随请求一起发送,并支持HEAD和POST方法
支持HTML文件以外的其他类型内容的传输
典型的HTTP/1.0请求如下所示:
GET/hello.htmlHTTP/1.0
用户代理:NCSA_Mosaic/2.0(窗口3.1)
200OK
日期:1996年11月15日15Nov199608:12:31GMT
Server:CERN/3.0libwww/2.17
内容类型:文本/html
超文本标记语言
包含图片的页面
IMGSRC='/smile.gif '
/HTML
HTTP/1.1
HTTP/1.0发布几个月后,HTTP/1.1发布了。HTTP/1.1更是HTTP/1.0的完美。在HTTP1.1中,主要有以下改进:
连接可以多路复用
添加管道:HTTP管道是批量提交多个HTTP请求的技术,不需要先等待服务器的响应。流水线机制必须通过persistentconnection完成。浏览器对HTTP请求的大规模提交可以大大缩短页面的加载时间,尤其是在高滞后/延迟的情况下。需要注意的一点是,只有幂等请求可以使用管道,比如GET和HEAD方法。
分块代码传输:该代码以块的形式传输实体,并逐块标记长度,直到长度为0的块指示传输结束,这在实体长度未知时(如数据库动态生成的数据)尤其有用
引入更多的缓存控制机制,如etag和缓存控制
介绍内容协商机制,包括语言、编码、类型等。并允许客户端和服务器同意交换最合适的内容
请求消息和响应消息都支持主机头域:在HTTP1.0中,认为每台服务器都绑定了的IP地址,因此请求消息中的URL不传递主机名。然而,随着虚拟主机技术的发展,一台物理服务器上可以有多个多宿主网络服务器,它们共享一个IP地址。因此,有必要引入主机头。
添加了选项、放置、删除、跟踪和连接方法
虽然HTTP/1.1已经在很多方面进行了优化,并且作为使用最广泛的协议版本,已经能够满足很多网络需求。然而,随着网页变得越来越复杂,甚至演变成独立的应用程序,HTTP/1.1逐渐暴露出一些问题:
当传输数据时,每次都必须重新建立连接,这对移动终端尤其不友好
传输内容是明文,不够安全
头内容太大,每个请求头变化不大,造成浪费
保持活动给服务器带来了性能压力
为了解决这些问题,HTTPS和社民党应运而生。
SPDY
其实SPDY并不是一个新的协议,而是HTTP之前的会话层。
从2010年到2015年,谷歌通过实践一个实验性的SPDY协议,证明了一种在客户端和服务器之间交换数据的替代方法。收集了浏览器端和服务器端开发者关注的焦点问题,明确了响应量的增加,解决了复杂的数据传输。启动SPDY项目时的默认目标是:
页面加载时间(PLT)减少50%。
网站作者不需要修改任何东西。
在不改变网络基础设施的情况下,更大限度地降低部署复杂性。
与开源社区合作开发这个新协议。
收集真实的性能数据,验证该实验协议是否有效。
为了减少目标和页面加载时间,SPDY引入了新的二进制成帧数据层,实现多向请求和响应,区分优先级,最小化和消除不必要的网络延迟,从而更有效地利用底层的TCP连接。
HTTP/2.0
时间到了2015年,HTTP/2.0出来了。我们先来介绍一下HTTP/2.0的特点:
使用二进制成帧层:在应用层和传输层之间增加一个二进制成帧层,从而突破HTTP1.1的性能限制,提高传输性能,在不改变HTTP、HTTP方法、状态码、URI和报头字段语义的情况下,实现低延迟、高吞吐量。在二进制成帧层,HTTP2.0将所有传输的信息分成更小的消息和帧,并以二进制格式编码,其中HTTP1.x的头信息封装在Headers帧中,我们的requestbody封装在Data帧中。
二元框架
复用:对于HTTP/1.x,即使打开了长连接,请求也是串行发送的。带宽充足的时候,带宽利用率不够。HTTP/2.0采用复用方式,可以并行发送多个请求,提高了带宽利用率。
多路技术
数据流优先级:既然可以并发发送请求,那么如果浏览器在等待关键CSS或者JS文件完成页面渲染,而服务器在专注于发送图像资源呢?HTTP/2.0可以为数据流设置一个优先级值,这决定了客户端和服务器对不同的流采用不同的优先级策略处理。
服务器推送:在HTTP/2.0中,服务器可以将请求之外的内容发送给客户端。比如在请求一个页面的时候,服务器会直接把logo、CSS等与页面相关的文件推给客户端,不会等到请求来了,因为服务器认为客户端会用到这些东西。这相当于在一个HTML文档中收集所有资源。
标头压缩:标头表用于跟踪和存储之前发送的键值对。对于相同的内容,它不会在每次发出请求和响应时发送。
以上是一次性了解HTTP、HTTPS、SPDY、HTTP2的完整介绍。如果你想了解更多关于Html5的教程,请关注PHP中文网站。
本文转载自中文网站
15
2022-09
15
2022-09
15
2022-09
15
2022-09
15
2022-09
15
2022-09