`
85977328
  • 浏览: 1871205 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP/1.1协议的新特性

    博客分类:
  • http
 
阅读更多
持久连接
    在HTTP1.1之前,无论什么时候浏览器连接到一个web服务器,当请求的资源被发送之后,连接就被服务器关闭了。然而,一个互联网网页包括其他资源, 例如图片文件,applet等等。因此,当一个页面被请求的时候,浏览器同样需要下载页面所引用到的资源。加入页面和它所引用到的全部资源使用不同连接来 下载的话,进程将会非常慢。那就是为什么HTTP1.1引入持久连接的原因了。使用持久连接的时候,当页面下载的时候,服务器并不直接关闭连接。相反,它 等待web客户端请求页面所引用的全部资源。这种情况下,页面和所引用的资源使用同一个连接来下载。考虑建立和解除HTTP连接的宝贵操作的话,这就为 web服务器,客户端和网络节省了许多工作和时间。
    持久连接是HTTP1.1的默认连接方式。同样,为了明确这一点,浏览器可以发送一个值为keep-alive的请求头部connection: connection: keep-alive

块编码
http://zh.wikipedia.org/wiki/%E5%88%86%E5%9D%97%E4%BC%A0%E8%BE%93%E7%BC%96%E7%A0%81
    建立持续连接的结果就是,使用同一个连接,服务器可以从不同的资源发送字节流,而客户端可以使用发送多个请求。结果就是,发送方必须为每个请求或响应发送 内容长度的头部,以便接收方知道如何解释这些字节。然而,大部分的情况是发送方并不知道将要发送多少个字节。例如,在开头一些字节已经准备好的时 候,servlet容器就可以开始发送响应了,而不会等到所有都准备好。这意味着,在content-length头部不能提前知道的情况下,必须有一种 方式来告诉接收方如何解释字节流。
    即使不需要发送多个请求或者响应,服务器或者客户端也不需要知道将会发送多少数据。在HTTP1.0中,服务器可以仅仅省略content-length 头部,并保持写入连接。当写入完成的时候,它将简单的关闭连接。在这种情况下,客户端将会保持读取状态,直到获取到-1,表示已经到达文件的尾部。
    HTTP1.1使用一个特别的头部transfer-encoding来表示有多少以块形式的字节流将会被发送。对每块来说,在数据之前,长度(十六进 制)后面接着CR/LF将被发送。整个事务通过一个零长度的块来标识。假设你想用2个块发送以下38个字节,第一个长度是29,第二个长度是9。 I'm as helpless as a kitten up a tree.
    你将这样发送: 1D\r\n I'm as helpless as a kitten u 9\r\n p a tree. 0\r\n 1D,是29的十六进制,指示第一块由29个字节组成。0\r\n标识这个事务的结束。

状态100(持续状态)的使用
    在发送请求内容之前,HTTP 1.1客户端可以发送Expect: 100-continue头部到服务器,并等待服务器的确认。这个一般发生在当客户端需要发送一份长的请求内容而未能确保服务器愿意接受它的时候。如果你 发送一份长的请求内容仅仅发现服务器拒绝了它,那将是一种浪费来的。
    当接受到Expect: 100-continue头部的时候,假如乐意或者可以处理请求的话,服务器响应100-continue头部,后边跟着两对CRLF字符。 HTTP/1.1 100 Continue
    接着,服务器应该会继续读取输入流。
分享到:
评论

相关推荐

    HTTP_2基础教程.pdf

    如今互联网发展日新月异,HTTP/1.1 协议已经难以承载日益复杂的网页内容,因此 HTTP/2 值得尝试。本书介绍了 HTTP/2 的设计初衷和新特性,对比了在不同网络环境下以及不同浏览器 上 HTTP/1.1 与 HTTP/2 的性能表现...

    USB 1.1 协议中文版

    USB 1.1 协议中文版:01 intro.doc;02 术语和缩略词.doc;05 USB数据流模型.doc;07 USB电气特性(缩写).doc;08 协议层.doc;09 USB设备架构.doc;10 usb主机硬件软件.doc;11 集线器规范_1.doc

    USB 1.1 协议中文版.rar

    但以终端用户的眼光来看,PC机的输入/输出,如串行/并行端口、键盘、鼠标、操纵杆接口等,均还没有达到即插即用的特性,USB正是在这种情况下问世的。 (三)端口扩充:外围设备的添加总是被相当有限的端口数目限制着...

    HTTP协议(RFC2616)中文版.pdf

    HTTP协议(RFC2616)中文版.pdf 超文本传输协议(HTTP)是一种为分布式,协作式的,超媒体信息系统。它是一种通用的,无 状态(stateless)的协议,除了应用于超文本传输外...HTTP/1.1 协议,是RFC 2068的修订版[33]。

    http1.1协议rfc2616中文版

    http1.1 超文本传输协议(HTTP)是分布式、协作的、超媒体信息系统的应用层协议。它是通 用的,无状态的协议,可以用在超文本用途之外的许多任务,如名称服务器和分布式目标管 理系统,通过扩展它的请求方法,错误码...

    apache的介绍,安装,使用

    2) 支持最新的HTTP/1.1协议 3) 简单而且强有力的基于文件的配置(HTTPD.CONF). 4) 支持通用网关接口(CGI) 5) 支持虚拟主机. 6) 支持HTTP认证. 7) 集成PERL. 8) 集成的代理服务器 9) 可以通过WEB浏览器监视...

    http2基础教程英文文字版

    如今互联网发展日新月异,HTTP/1.1协议已经难以承载日益复杂的网页内容,因此HTTP/2值得尝试。本书介绍了HTTP/2的设计初衷和新特性,对比了在不同网络环境下以及不同浏览器上HTTP/1.1与HTTP/2的性能表现差异,指出了...

    RFC2616(HTTP1.1)协议文档

    RFC2616 HTTP1.1 超文本传输协议(HTTP)是分布式、协作的、超媒体信息系统的应用层协议。它是通 用的,无状态的协议,可以用在超文本用途之外的许多任务,如名称服务器和分布式目标管 理系统,通过扩展它的请求...

    Bluetooth 5.0协议新特性

    新特性 1 1.2. 期待中的新特性依然不见踪影: 2 2 BLE 的物理层 PHY 更新 3 2.1. 增加 LE Coded 模式和 LE 2M PHY 3 2.1.1 参考信号精度要求依然是 0.5% 4 2.2. 最大传输功率提升至 100mW。 4 2.2.1 同时提出对...

    FuIP v2.1 专为单片机联网而定制的TCP/IP协议栈

    默认网关是家庭常用的:192.168.1.1 如果家里的路由器网关是其他如:192.168.0.1,请自行修改网关IP、本机IP 内存分配机制: 以太网首部: EN_Head[14] IP首部: IP_Head[20] UDP伪首部: UDP_False[12] UDP首部...

    FileZilla--支持FTP、FTPS、SFTP等文件传输

    FileZilla 客户端是一个快速可靠的、跨平台的FTP,FTPS和SFTP客户端。具有图形用户界面(GUI)和很多有用的特性。...支持HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy) 登录到文件功能 同步文件夹浏览 远程查找文件

    FileZilla.3.44.2.x64

    FileZilla 客户端是一个快速可靠的、跨平台的FTP,FTPS和SFTP客户端。具有图形用户界面(GUI)和很多有用的特性。...支持HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy) 登录到文件功能 同步文件夹浏览 远程查找文件

    USB1.1 通讯协议spec 中文版 pdf.rar

    USB1.1 通讯协议spec说明 中文版 pdf Intel公司开发的通用串行总线架构(USB)的目的主要基于以下三方面考虑: (一)计算机与电话之间的连接:显然用计算机来进行计算机通信将是下一代计算机基本的应用。机器和人们的...

    FileZilla_3.47.2.1_macosx-x86.app mac 客户端

    FileZilla_3.47.2.1_macosx-x86.app.tar.bz2 FileZilla 客户端是一个快速可靠的、跨平台的FTP,FTPS和SFTP客户端。...支持HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy) 登录到文件功能 同步文件夹浏览 远程查找文件

    常用FTP免费软件 FileZilla

    more支持IPv6协议多种可用的语言(包含中文)断点续传且支持容量大于4GB的文件多标签用户界面功能强大的站点管理器(Site Manager)和传输队列管理书签功能拖拽功能支持支持传输限速功能文件名过滤器文件夹比较功能...

    FuIP 2.0协议栈,专为各种单片机的TCP/IP协议,接入互联网

    默认网关是家庭常用的:192.168.1.1 如果家里的路由器网关是其他如:192.168.0.1,请自行修改网关IP、本机IP,子网掩码一般不改。 内存分配机制: 以太网首部: EN_Head[14] IP首部: IP_Head[20] UDP伪首部: ...

    resin-2.1.8服务器

    Resin1.1的特性包括: 1 支持jsp1.1和在服务器端编译的javascript. 2 比mod_perl,mod_php更快,比Jakarta Tomcat快3倍。您可以在Caucho的站点看到很全面的各种测试报告。 3 使用servlet2.2引擎。 4 自动的servlet/...

    FuIP协议栈,用于单片机的TCP/IP协议接入网络

    v1.2 占用416 Byte左右(接收缓存150) ROM不到8K 如果大家要节省,可以省去...默认网关是家庭常用的:192.168.1.1 如果家里的路由器网关是其他如:192.168.0.1,请自行修改网关IP、本机IP,子网掩码一般不改。

    免费开源的 FTP 软件 FileZilla 3.54.1 + x64 中文多语免费版.zip

    免费开源的FTP解决方案 FileZilla 中文版是一种快速、可信赖的FTP客户端以及服务器端开放源代码程式,具有多种特色、直觉...支持 HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy) 登录到文件功能 同步文件夹浏览 远程查找文件

    TCP IP网络编程

    2.1 套接字协议及其数据传输特性 26 2.2 Windows平台下的实现及验证 32 2.3 习题 35 第3章 地址族与数据序列 36 3.1 分配给套接字的IP地址与端口号 36 3.2 地址信息的表示 39 3.3 网络字节序与...

Global site tag (gtag.js) - Google Analytics