有人能给我简单介绍一下HTTP 1.0和HTTP 1.1的区别吗?我在这两个rfc上都花了一些时间,但并没有发现它们之间的很多区别。维基百科是这么说的:

HTTP / 1.1 (1997 - 1999) 当前版本;默认情况下启用持久连接,并且与代理一起工作良好。还支持请求流水线,允许同时发送多个请求,允许服务器为工作负载做好准备,并可能更快地将请求的资源传输到客户端。

但这对我来说意义不大。我知道这是一个有点复杂的话题,所以我不期待一个完整的答案,但有人能从更低的层次给我一个简要的差异概述吗? 我的意思是,我正在寻找实现HTTP服务器或应用程序所需的信息。我主要是在寻找一个正确的方向,这样我就可以自己解决问题了。


当前回答

HTTP 1.1在其规范中带有主机标头,而HTTP 1.0并没有正式的主机标头,但它并没有拒绝添加一个。

主机报头很有用,因为它允许客户端在代理服务器上路由消息,1.0和1.1版本HTTP的主要区别是:

HTTP 1.1带有持久连接,它定义了我们可以在同一个HTTP连接上有多个请求或响应。 而在HTTP 1.0中,你必须为每个请求和响应打开一个新的连接 在HTTP 1.0中它有一个pragma,而在HTTP 1.1中它有Cache-Control 这类似于pragma

其他回答

一个关键的兼容性问题是对持久连接的支持。我最近在一台“支持”HTTP/1.1的服务器上工作,但当客户端发送HTTP/1.0请求时,却无法关闭连接。在编写支持HTTP/1.1的服务器时,请确保它也能与仅支持HTTP/1.0的客户端良好地工作。

我能回忆起的第一个区别是在同一个服务器上运行多个域,部分资源检索,这允许你检索和加速资源的下载(这是几乎所有下载加速器所做的)。

如果你想开发一个类似网站或类似的应用程序,你不需要太担心它们的区别,但你至少应该知道GET和POST动词之间的区别。

现在,如果你想开发一个浏览器,那么是的,你必须知道完整的协议,以及如果你试图开发一个HTTP服务器。

如果你只对了解HTTP协议感兴趣,我建议你从HTTP/1.1开始,而不是1.0。

HTTP 1.1是超文本传输协议的最新版本,超文本传输协议是运行在互联网TCP/IP协议套件之上的万维网应用协议。与HTTP 1.0相比,HTTP 1.1提供了比原始HTTP更快的Web页面传递,并减少了Web流量。

Web流量示例:例如,如果您正在访问服务器。同时如此多的用户正在访问服务器以获取数据,那么就有机会挂起服务器。这是网络流量。

对于琐碎的应用程序(例如,偶尔从启用web的温度计中检索温度值),HTTP 1.0对于客户机和服务器都很好。您可以用大约20行代码编写一个基本的基于套接字的HTTP 1.0客户端或服务器。

对于更复杂的场景,HTTP 1.1是最好的选择。为了处理更复杂的HTTP 1.1协议的复杂性,预计代码大小将增加3到5倍。复杂性主要来自于在HTTP 1.1中,您将需要创建、解析和响应各种报头。您可以通过让客户端使用HTTP库或服务器使用web应用程序服务器来保护应用程序免受这种复杂性的影响。

●HTTP 1.0 (1994)

它仍在使用中 可以被不能处理分块的客户端使用吗 (或压缩的)服务器应答

【HTTP 1.1(1996- 2015)】

对1.0版本进行了许多扩展 支持持久连接和流水线连接 支持分块传输,压缩/解压 支持虚拟主机(一台服务器具有一个IP地址托管多个域) 支持多种语言 支持字节范围传输;用于恢复中断的数据 转移

HTTP 1.1是对HTTP 1.0的增强。以下列出了 四大改进:

有效的使用IP地址,通过允许多个域 从一个IP地址提供服务。 更快的响应,通过允许网络浏览器发送多个 通过单个持久连接的请求。 对动态生成页面的更快响应,支持 分块编码,允许在响应之前发送响应 总长度是已知的。 更快的响应和巨大的带宽节省,通过增加缓存 支持。