`

[转]HTTP1.1和HTTP1.0的区别

    博客分类:
  • java
阅读更多

HTTP1.1和HTTP1.0的区别


作者:千里孤行(http://blog.csdn.net/yanghehong)

翻了下HTTP1.1的协议标准RFC2616 http://www.ietf.org/rfc/rfc2616.txt,下面是看到的一些它跟HTTP1.0的差别。

 

Persistent Connection(持久连接)

 

在HTTP1.0中,每对Request/Response都使用一个新的连接。

 

HTTP 1.1则支持Persistent Connection, 并且默认使用persistent connection.

 

 

Host 域

 

HTTP1.1在Request消息头里头多了一个Host域,比如:

 

       GET /pub/WWW/TheProject.html HTTP/1.1

       Host: www.w3.org

  

   HTTP1.0则没有这个域。

   可能HTTP1.0的时候认为,建立TCP连接的时候已经指定了IP地址,这个IP地址上只有一个host。

 

date/time stamp (日期时间戳)

 

(接收方向)

无论是HTTP1.0还是HTTP1.1,都要能解析下面三种date/time stamp:

 

      Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123

      Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036

      Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

 

(发送方向)
    HTTP1.0要求不能生成第三种asctime格式的date/time stamp;

    HTTP1.1则要求只生成RFC 1123(第一种)格式的date/time stamp。

 

 

 

Transfer Codings

 

HTTP1.1支持chunked transfer,所以可以有Transfer-Encoding头部域:

Transfer-Encoding: chunked

 

   HTTP1.0则没有。

 

 

Quality Values

 

HTTP1.1多了个qvalue域:

 

       qvalue         = ( "0" [ "." 0*3DIGIT ] )

                      | ( "1" [ "." 0*3("0") ] )

 

 

Entity Tags

   

用于Cache。

 

 

Range 和 Content-Range

 

HTTP1.1支持传送内容的一部分。比方说,当客户端已经有内容的一部分,为了节省带宽,可以只向服务器请求一部分。

 

 

100 (Continue) Status

 

100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。

客户端在Request头部中包含

Expect: 100-continue

Server看到之后呢如果回100 (Continue) 这个状态代码,客户端就继续发request body。

 

这个是HTTP1.1才有的。

 

 

Request method

 

HTTP1.1增加了OPTIONS, PUT, DELETE, TRACE, CONNECT这些Request方法.

 

       Method         = "OPTIONS"                ; Section 9.2

                      | "GET"                    ; Section 9.3

                      | "HEAD"                   ; Section 9.4

                      | "POST"                   ; Section 9.5

                      | "PUT"                    ; Section 9.6

                      | "DELETE"                 ; Section 9.7

                      | "TRACE"                  ; Section 9.8

                      | "CONNECT"                ; Section 9.9

                      | extension-method

       extension-method = token

 

 

Status code

 

  HTTP1.1 增加的新的status code:

 

(HTTP1.0没有定义任何具体的1xx status code, HTTP1.1有2个)

100 Continue

101 Switching Protocols

 

203 Non-Authoritative Information

205 Reset Content

206 Partial Content

 

302 Found (在HTTP1.0中有个 302 Moved Temporarily)

303 See Other

305 Use Proxy

307 Temporary Redirect

 

405 Method Not Allowed

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Request Entity Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Requested Range Not Satisfiable

417 Expectation Failed

 

504 Gateway Timeout

505 HTTP Version Not Supported

 

 

 

Content Negotiation

 

    HTTP1.1增加了Content Negotiation,分为Server-driven Negotiation,Agent-driven Negotiation和Transparent Negotiation三种。

 

 

Cache (缓存)

 

HTTP1.1(RFC2616)详细展开地描述了Cache机制,详见13节。

依据:

rfc2616 Hypertext Transfer Protocol -- HTTP-1.1.txt  http://www.ietf.org/rfc/rfc2616.txt

rfc1945 Hypertext Transfer Protocol -- HTTP 1.0.txt http://www.ietf.org/rfc/rfc1945.txt

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yanghehong/archive/2009/05/28/4222594.aspx

分享到:
评论

相关推荐

    geronimo-jms_1.1_spec-1.0.jar

    geronimo-jms_1.1_spec-1.0.jar

    HTTP 1.1与HTTP 1.0的比较

    ### HTTP 1.1与HTTP 1.0的主要区别 #### 持久连接(Persistent Connections) - **HTTP 1.0**:默认情况下,HTTP 1.0使用非持久连接,即每次请求都需要建立一个新的TCP连接。这种设计虽然简单,但在实际应用中导致...

    HTTP1.0&HTTP1.1(rfc2616)

    HTTP1.0和HTTP1.1是其两个主要版本,它们在互联网通信中扮演着至关重要的角色。这里我们将深入探讨这两个版本的区别与特点。 **HTTP1.0** HTTP1.0是HTTP协议的第一个广泛使用的版本,它定义了Web的基本通信机制。在...

    UVC 1.0/1.1/1.5协议

    UVC 1.0、1.1和1.5是这一标准的不同版本,每个版本都在前一个的基础上进行了更新和扩展,以适应技术的发展和市场需求。 ### UVC 1.0协议 UVC 1.0是最初的版本,它定义了一个通用的框架,使得不同的视频设备能够以...

    geronimo-interceptor_1.1_spec-1.0.jar

    geronimo-interceptor_1.1_spec-1.0

    http 1.1/1.0 RFC中文文档

    在这个压缩包中包含的两个文件,RFC2616(HTTP/1.1)中文版.pdf和RFC1945(HTTP/1.0)中文版.pdf,分别是对HTTP 1.1和HTTP 1.0协议的官方文档的中文翻译。 HTTP 1.0是早期的版本,它定义了HTTP的基本操作,如GET、...

    TLS1.0、1.1、1.2、1.3

    1. **版本历史**:TLS协议自1999年的TLS 1.0开始,经过TLS 1.1、TLS 1.2的迭代,最终在TLS 1.3实现了显著的性能和安全性提升。 2. **安全性**:每个新版本都在前一个版本的基础上增强了安全性,例如TLS 1.3去掉了不...

    jstl1.1和jstl1.0

    JSTL1.1和JSTL1.0是两个版本,主要的区别在于功能的完善和性能的优化。 **JSTL1.1** JSTL1.1是针对Tomcat5.x版本设计的,它在JSTL1.0的基础上进行了一些改进和增强。这个版本引入了对JSP 2.0规范的支持,包括对EL ...

    TCG-Glossary-V1.1-Rev-1.0.pdf

    "TCG Glossary V1.1 Rev 1.0.pdf"是该组织发布的一份词汇表,详细解释了与可信计算相关的术语和概念。这份文档对于理解和实施TPM(Trusted Platform Module,可信平台模块)等相关技术至关重要。 TPM是一种硬件安全...

    极智复刻者go1.1鼠标驱动 v1.0 官方版

    极智go1.1驱动是专用于极智复刻者go1.1鼠标的驱动程序,用户可以通过它自定义设置鼠标的快捷键组合以及鼠标dpi和鼠标灯光颜色等等,非常的方便快捷,拥有这款鼠标的小伙伴们可以下载了!驱动介绍:极智go1.1驱动是专...

    J2ME水波倒影(CLDC1.1及CLDC1.0)

    CLDC1.1 和 CLDC1.0 主要的区别在于它们支持的 Java API 版本和内存管理。CLDC1.1 基于 Java ME SDK 3.0,提供更丰富的 API 和改进的内存模型,这使得开发者可以实现更复杂的功能和优化。而 CLDC1.0 是早期版本,API...

    CCIX_Base_Specification_Revision1.1_Version1.0.pdf

    《CCIX基础规范修订1.1版1.0》详细阐述了Cache Coherent Interconnect for Accelerators(CCIX)技术的起源、发展及其与Peripheral Component Interconnect Express(PCIe)的兼容性和区别。该规范旨在提供一个高...

    Http1.1 手册、文档等

    HTTP1.1相对于HTTP1.0做了许多改进,包括但不限于连接管理的优化、支持持久连接、增加新的请求方法、引入更多首部字段以及对缓存机制的强化。例如,HTTP1.1引入了Keep-Alive首部,允许在一个TCP连接上发送多个请求和...

Global site tag (gtag.js) - Google Analytics