`

Http1.1 与 Http1.0的区别

阅读更多
翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟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
分享到:
评论

相关推荐

    HTTP 1.1与HTTP 1.0的比较

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

    geronimo-jms_1.1_spec-1.0.jar

    geronimo-jms_1.1_spec-1.0.jar

    geronimo-interceptor_1.1_spec-1.0.jar

    geronimo-interceptor_1.1_spec-1.0

    UVC 1.0/1.1/1.5协议

    **UVC 1.0/1.1/1.5协议详解** USB Video Class (UVC) 是一种标准,用于定义USB设备上的视频捕获功能,使得计算机可以通过USB接口与各种视频源(如网络摄像头、摄像机等)进行通信。UVC 1.0、1.1和1.5是这一标准的...

    HTTP1.0&HTTP1.1(rfc2616)

    这里我们将深入探讨这两个版本的区别与特点。 **HTTP1.0** HTTP1.0是HTTP协议的第一个广泛使用的版本,它定义了Web的基本通信机制。在HTTP1.0中,主要包含以下关键特性: 1. **请求方法**:HTTP1.0支持GET、POST和...

    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

    标题提及的“TLS1.0、1.1、1.2、1.3”指的是安全传输层协议(Transport Layer Security)的不同版本。TLS是互联网上广泛使用的安全协议,它确保了数据在客户端和服务器之间的加密传输,从而保护用户的隐私和信息安全...

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

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

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

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

    jstl1.1和jstl1.0

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

    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连接上发送多个请求和...

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

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

Global site tag (gtag.js) - Google Analytics