万维网诞生30周年:看HTTP和HTTPS的起源发展

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 今天我们能够在网络中畅游,随时通过网络获取资源、信息,都得益于一位计算机科学家蒂姆·伯纳斯·李的构想。

今天我们能够在网络中畅游,随时通过网络获取资源、信息,都得益于一位计算机科学家蒂姆·伯纳斯·李的构想。1991年8月6日,蒂姆·伯纳斯·李在位于欧洲粒子物理研究所(CERN)的NeXT计算机上,正式公开运行世界上第一个Web网站(http://info.cern.ch ),建立起基本的互联网基础概念和技术体系,由此开启了网络信息时代的序幕。

万维网www构想的诞生

1989 年 3 月 12 日,欧洲粒子物理研究所(CERN)的计算机科学家蒂姆·伯纳斯·李在其一份提案《InformationManagement: A Proposal》中提出了一个构想:创建一个以超文本系统为基础的项目,允许在不同计算机之间分享信息,其目的是方便研究人员分享及更新信息。这个构想最终成了WWW(World Wide Web)万维网的基础,彻底改变了人类社会的沟通交流方式。

伯纳斯·李的提案包含了网络的基本概念并逐步建立了所有必要的工具:

提出HTTP (Hypertext Transfer Protocol) 超文本传输协议,允许用户通过单击超链接访问资源;
提出使用HTML超文本标记语言(Hypertext Markup Language)作为创建网页的标准;
创建了统一资源定位器URL (Uniform Resource Locator)作为网站地址系统,就是沿用至今的http://www URL格式;
创建第一个Web浏览器,称为万维网浏览器,这也是一个Web编辑器;
创建第一个HTTP 服务器软件,后来称为CERNhttpd;
创建第一个Web服务器(http://info.cern.ch)以及描述项目本身的第一个Web页面。

不过这个提案在当时并没有引起人们的兴趣。1993年4月30日,欧洲粒子物理研究所(CERN)将万维网软件开源,发布了一个开放式许可证,使得万维网得到最大化的传播。但直到20世纪90年代中期吉姆·克拉克和马克·安德森在Netscape(网景通信公司)推广商业网页浏览这一概念后,万维网的应用才开始真正爆发。

HTTP协议的诞生和发展

超文本传输协议(HTTP)是应用层的一个协议,是万维网生态系统的核心,在OSI 七层模型中在最上层,它并不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。HTTP 协议采用 BS 架构,也就是浏览器到服务器的架构,客户端通过浏览器发送 HTTP 请求给服务器,服务器经过解析响应客户端的请求。

 

HTTP 协议最早的一个版本是1991年发布的 HTTP/0.9,这个版本只有一个命令:GET。通过 GET 你可以获取服务器的资源,比如请求服务器根目录下的 index.html 文件。这个版本的协议规定,服务器只能回应HTML格式的字符串,不能回应别的格式,也就是说今天的图像、视频等多媒体资源,在 HTTP/0.9这个版本上是无法进行传输的。

1996年5月,HTTP/1.0 版本发布,增加了POST命令和HEAD命令,丰富了浏览器与服务器的互动手段。这个版本HTTP协议可以发送任何格式的内容,包括传输文字、图像、视频、文件,这为互联网的大发展奠定了基础。

HTTP/1.0 除了增加了请求方法以及对发送文件的支持之外,还增加了格式的改变。除了数据部分,每次通信都必须包括头信息(HTTP header),用来描述一些元数据。另外还增加了状态码、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等等。

HTTP/1.0 版也并不是完美的,它的主要缺点是,每一次建立TCP连接只能发送一个请求。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。如果多次请求,势必就会对服务器产生较大的资源性能损耗。

1997年1月,HTTP/1.1 版本发布,这个版本只比1.0 版本晚了半年。这个版本最大的变化就是将持久化连接加入了 HTTP 标准,即TCP连接默认不关闭,可以被多个请求复用。此外,HTTP/1.1版还新增了许多方法,例如:PUT、PATCH、HEAD、 OPTIONS、DELETE。得到进一步完善的HTTP/1.1 版本,一直沿用至今。

HTTPS时代到来,提升Web安全性

HTTP 协议的诞生主要是为了解决信息传递和共享的问题,并没有考虑到互联网高速发展后面临的安全问题,HTTP协议不具备任何数据加密、身份校验等机制,使用HTTP协议传递的数据以明文形式在网络中传输,任意节点的第三方都可以随意劫持流量、篡改数据或窃取信息,无法确保数据的保密性、完整性和真实性,已经不能适应现代互联网应用的安全需求。

1994年,Netscape创建了SSL协议的原始规范并逐步发布协议改进版本,1996年,Netscape和Paul Kocher共同设计发布SSL 3.0协议,获得互联网广泛认可和支持。因特网工程任务组(IETF)接手负责该协议,并将其重命名为传输层安全(TLS)协议。

SSL(Secure SocketsLayer ,安全套接层)介于应用层和TCP层之间,应用层数据不再直接传递给传输层而是传递给SSL层,SSL层对从应用层收到的数据进行加密,利用数据加密、身份验证和消息完整性验证机制,为网络上数据的传输提供安全性保证。

 

2014年起,谷歌开始计划在Chrome浏览器上针对HTTP协议的不安全性对用户发出警告,并逐步升级警告范围,最终目标是将所有HTTP网站标记红色“不安全”警告,推动网站迁移至更安全的HTTPS加密协议,FireFox、Safari等主流浏览器也纷纷加入行列。在最新版Chrome浏览器已经对所有HTTP网站标记“不安全”,并对需要输入字段的HTTP页面标记红色“不安全”警告。

在浏览器的推动下,近两年全球网站HTTPS部署率持续上升,为创建安全、隐私的互联网环境打下良好基础。

下一代协议HTTP/2 ,仅支持HTTPS连接

HTTP/1.1版本已经广泛使用了十几年,不仅存在安全性的问题,在性能方面也存在一定的缺陷。虽然它允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的,服务器只有处理完一个回应,才会进行下一个回应,要是前面的回应特别慢,后面就会有许多请求排队等着,这就是队头堵塞(Head-of-line blocking或缩写为HOL blocking)。

为了解决这个问题,2009年谷歌公开了自行研发的SPDY 协议,这个协议在Chrome浏览器上证明可行以后,就被当作 HTTP/2 的基础,主要特性都在 HTTP/2 之中得到继承。

2015年下一代协议——HTTP/2协议发布(它不叫 HTTP/2.0是因为标准委员会不打算再发布子版本了)。HTTP/2增加了二进制分帧、多路复用、服务器推送(server push)、头部压缩等新特性。HTTP/2采用二进制格式传输数据(而非 HTTP 1.x 的文本格式),将请求和响应数据分割为更小的帧,并采用二进制编码,解析起来更高效,不再依赖 TCP 链接去实现多流并行,所有请求都是通过一个 TCP连接并发完成。HTTP/2的新特性使性能有了极大提升,同个域名只需要占用一个 TCP 连接,消除了因多个 TCP 连接而带来的延时和内存消耗。

值得注意的是,在开放互联网上HTTP/2 将只用于HTTPS加密连接,HTTP明文连接将继续使用HTTP/1协议,目的是在开放互联网上加强加密技术的应用,提升网络连接安全性,抵御网络劫持等安全威胁。

今年是互联网诞生30周年,未来的互联网将朝着更加安全、可信的方向去发展,其中离不开所有网络安全从业者和生态圈服务商的努力。沃通CA(www.wosign.com)持续提供全球信任的SSL证书、代码签名证书,从根本上保障数据保密性、完整性和身份真实性,从而保障互联网安全与可信。

沃通原创文章,转载请注明来源

目录
打赏
0
0
0
0
6
分享
相关文章
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
1632 2
HTTP和HTTPS的区别有哪些?
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
113 3
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
1026 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
Introduction to the HTTP and HTTPS Protocol
HTTP protocol is the foundation of the Internet, and HTTPS is the secure version of HTTP. HTTP is an application layer protocol based on TCP/IP protocol. It does not involve packet (packet) transmission, mainly specifying the communication format between the client and the server, and the default po
77 25
代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
本文详细介绍了HTTP、HTTPS和SOCKS5三种代理协议的特点、优缺点以及适用场景。通过对比和分析,可以根据具体需求选择最合适的代理协议。希望本文能帮助您更好地理解和应用代理协议,提高网络应用的安全性和性能。
68 17
HTTPS与HTTP:区别及安全性对比
HTTP和HTTPS是现代网络通信中的两种重要协议。HTTP为明文传输,简单但不安全;HTTPS基于HTTP并通过SSL/TLS加密,确保数据安全性和完整性,防止劫持和篡改。HTTPS还提供身份验证,保护用户隐私并防止中间人攻击。尽管HTTPS有额外的性能开销和配置成本,但在涉及敏感信息的场景中,如在线支付和用户登录,其安全性优势至关重要。搜索引擎也更青睐HTTPS网站,有助于提升SEO排名。综上,HTTPS已成为大多数网站的必然选择,以保障用户数据安全和合规性。
140 1
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
1126 8
HTTP和HTTPS的区别
本文介绍HTTP与HTTPS的区别、HTTPS链接建立过程及常见加密算法。HTTP为明文传输,易被窃听;HTTPS通过SSL/TLS协议加密,确保数据安全。HTTPS使用端口443,提供认证机制。文中还详细讲解了对称加密(如AES、DES)和非对称加密(如RSA、ECC)算法的特点及应用场景。
【DrissionPage】Linux上如何将https改为http
通过上述步骤,可以在Linux上将DrissionPage从HTTPS改为HTTP。关键在于修改DrissionPage配置、代码中的HTTPS设置、URL以及Web服务器配置,确保所有部分都正确使用HTTP协议。通过合理配置和测试,能够确保系统在HTTP环境下稳定运行。
119 1