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

简介: 今天我们能够在网络中畅游,随时通过网络获取资源、信息,都得益于一位计算机科学家蒂姆·伯纳斯·李的构想。

今天我们能够在网络中畅游,随时通过网络获取资源、信息,都得益于一位计算机科学家蒂姆·伯纳斯·李的构想。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证书、代码签名证书,从根本上保障数据保密性、完整性和身份真实性,从而保障互联网安全与可信。

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

相关文章
|
29天前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
37 0
一起深入了解http和https的区别
|
4天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
5 0
|
7天前
|
缓存 安全 网络协议
【面试必备】HTTP和HTTPS是什么?有什么差异?
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。
12 2
|
22天前
|
前端开发 应用服务中间件 网络安全
http转为https,ssl证书安装及nginx配置
http转为https,ssl证书安装及nginx配置
36 1
|
23天前
|
安全 数据安全/隐私保护
深入解析:HTTP和HTTPS的三次握手与四次挥手
在这些握手和挥手过程中,双方交换信息,协商参数,建立或关闭连接,以保证数据的可靠传输。HTTPS在此基础上加入了数字证书验证和加密通信,增加了安全性。这些步骤确保了HTTP和HTTPS协议的通信过程的稳定和安全。
112 0
|
29天前
|
数据采集 缓存 前端开发
http和https请求服务器的时候在请求头部分都带什么到服务器呢?
HTTP和HTTPS请求头基本结构相似,HTTPS多了一层SSL/TLS加密。常见请求头如Accept(指定内容类型)、Authorization(身份验证)、Cookie(会话跟踪)、User-Agent(标识用户代理)等。HTTPS特有的头包括Upgrade-Insecure-Requests(升级到HTTPS)、Strict-Transport-Security(强制使用HTTPS)、Sec-Fetch-*(安全策略)和X-Content-Type-Options、X-Frame-Options等(增强安全性)。实际应用中,请求头会根据需求和安全策略变化。
20 0
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之http转https便捷的转换如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
20 0
|
1月前
|
安全 算法 网络协议
一文搞懂HTTP与HTTPS
一文搞懂HTTP与HTTPS
|
1月前
|
存储 缓存 安全
https跳过SSL认证时是不是就是不加密的,相当于http?
https跳过SSL认证时是不是就是不加密的,相当于http?
118 0
|
1月前
|
缓存 安全 网络协议
http和https的区别是什么? (2)
http和https的区别是什么? (2)
17 1