首页 文章

HTTP 1.0与1.1

提问于
浏览
222

有人能简单介绍一下HTTP 1.0和HTTP 1.1之间的区别吗?我花了一些时间与两个RFC,但未能在它们之间拉出很多差异 . 维基百科说:

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

但是,这并没有期待一个完整的答案,但有人可以给我一个较低层次的差异的简要概述吗?
通过这个我的意思是,我主要是想在正确的方向上轻推,以便我可以自己解决这个问题 .

8 回答

  • 1

    我可以从头脑中回忆起的第一个差异之一是在同一服务器中运行的多个域,部分资源检索,这允许您检索并加速资源的下载(这几乎是每个下载加速器所做的) .

    如果你想开发一个像网站或类似的应用程序,你不需要太担心差异,但你至少知道 GETPOST 动词之间的区别 .

    现在,如果您想开发浏览器,那么您必须知道完整的协议以及您是否正在尝试开发HTTP服务器 .

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

  • 313

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

    Web流量示例:例如,如果您正在访问服务器 . 同时这么多用户正在访问服务器以获取数据,然后有可能挂起服务器 . 这是网络流量 .

  • 9

    Proxy support and the Host field:

    HTTP 1.1按规范具有所需的主机头 .

    HTTP 1.0并不正式需要Host头,但添加一个并没有什么坏处,并且许多应用程序(代理)都希望看到Host头,而不管协议版本如何 .

    例:

    GET / HTTP/1.1
    Host: www.blahblahblahblah.com
    

    此标头很有用,因为它允许您通过代理服务器路由邮件,还因为您的Web服务器可以区分同一服务器上的不同站点 .

    所以这意味着如果你有blahblahlbah.com和helohelohelo.com都指向相同的IP . 您的Web服务器可以使用“主机”字段来区分客户端计算机所需的站点 .

    Persistent connections:

    HTTP 1.1还允许您拥有持久连接,这意味着您可以在同一HTTP连接上拥有多个请求/响应 .

    在HTTP 1.0中,您必须为每个请求/响应对打开一个新连接 . 在每次响应之后,连接将被关闭 . 由于TCP Slow Start,这会导致一些大的效率问题 .

    OPTIONS method:

    HTTP / 1.1引入了OPTIONS方法 . HTTP客户端可以使用此方法来确定HTTP服务器的功能 . 它主要用于Web应用程序中的跨源资源共享 .

    Caching:

    HTTP 1.0支持通过标头进行缓存:If-Modified-Since .

    HTTP 1.1通过使用称为“实体标记”的东西大大扩展了缓存支持 . 如果2个资源相同,那么它们将具有相同的实体标记 .

    HTTP 1.1还添加了If-Unmodified-Since,If-Match,If-None-Match条件头 .

    还有一些与缓存相关的新增功能,如Cache-Control标头 .

    100 Continue status:

    HTTP / 1.1 100中有一个新的返回码 . 这是为了防止客户端在客户端甚至不确定服务器是否可以处理请求或是否有权处理请求时发送大量请求 . 在这种情况下,客户端仅发送 Headers ,服务器将告诉客户端100继续,继续正文 .

    Much more:

    • 摘要式身份验证和代理身份验证

    • 额外的新状态代码

    • 分块传输编码

    • 连接头

    • 增强的压缩支持

    • 远远多了 .

  • 8

    关键兼容性问题是对persistent connections的支持 . 我最近在一台服务器"supported" HTTP / 1.1上工作,但在客户端发送HTTP / 1.0请求时却无法关闭连接 . 编写支持HTTP / 1.1的服务器时,请确保它也适用于仅支持HTTP / 1.0的客户端 .

  • 5
  • 7

    HTTP1.0(1994)

    • 它仍在使用中

    • 可以由无法处理分块(或压缩)服务器回复的客户端使用

    HTTP1.1(1996-2015)

    • 将许多扩展版本化为1.0版

    • 支持持久和流水线连接

    • 支持分块传输,压缩/解压缩

    • 支持虚拟主机(具有单个IP地址的服务器)托管多个域名)

    • 支持多种语言

    • 支持字节范围传输;对于恢复中断的数据传输很有用

    HTTP 1.1是HTTP 1.0的增强 . 以下列出了四项主要改进:

    • 通过允许从单个IP地址提供多个域,有效使用IP地址 .

    • 通过允许Web浏览器通过单个持久连接发送多个请求,可以更快地响应 .

    • 动态生成页面的响应速度更快,支持分块编码,允许在知道总长度之前发送响应 .

    • 通过添加缓存支持,可以更快地响应并节省大量带宽 .

  • 12

    对于简单的应用程序(例如偶尔从支持Web的温度计检索温度值),HTTP 1.0对于客户端和服务器都是好的 . 您可以在大约20行代码中编写基于套接字的基本HTTP 1.0客户端或服务器 .

    对于更复杂的场景,HTTP 1.1是可行的方法 . 预计代码大小会增加3到5倍,以处理更复杂的HTTP 1.1协议的复杂性 . 复杂性主要来自,因为在HTTP 1.1中,您将需要创建,解析和响应各种标头 . 通过让客户端使用HTTP库或服务器使用Web应用程序服务器,您可以保护应用程序免受此复杂性的影响 .

  • 0

    与1.0相比,1.1减少了网络流量

相关问题