HTTP Header(协议头)与Keep-Alive模式详解
2012-07-12 14:08:04 来源:我爱运维网 评论:0 点击:
footer = *entity-header
即Chunk编码由四部分组成: 1、0至多个chunk块 ,2、"0" CRLF ,3、footer ,4、CRLF . 而每个chunk块由:chunk-size、chunk-ext(可选)、CRLF、chunk-data、CRLF组成。
4、响应内容长度的总结
上面2种方法都可归纳为是如何判断http响应内容的大小与数量。RFC 2616 对HTTP响应内容的长度总结如下:一个HTTP响应内容的transfer-length(传输长度)是指内容的message-body(消息体)的长度。当应用 transfer-coding(传输编码),每个响应内容中的message-body(消息体)的长度(transfer-length)由以下几种情况决定(优先级由高到低):
- 任何不含有消息体的响应(如1XXX、204、304等响应和任何头(HEAD,首部)请求的响应内容),总是由一个空行(CLRF)结束。
- 若出现Transfer-Encoding头字段 并且值为非“identity”,那么transfer-length由“chunked” 传输编码定义,除非消息由于关闭连接而终止。
- 若出现Content-Length头字段,其值表示entity-length(实体长度)和transfer-length(传输长 度)。如果这两个长度的大小不一样(i.e.设置了Transfer-Encoding头字段),那么将不能发送Content-Length头字段。并 且如果同时收到了Transfer-Encoding字段和Content-Length头字段,那么必须忽略Content-Length字段。
- 若响应使用媒体类型“multipart/byteranges”,并且transfer-length 没有另外指定,那么这种自定界(self-delimiting)媒体类型定义transfer-length 。除非发送者知道接收者能够解析该类型,否则不能使用该类型。
- 由服务器关闭连接确定响应长度。(注意:关闭连接不能用于确定请求响应的结束,因为服务器不能再发响应内容给客户端了。)
为了兼容HTTP/1.0应用程序,HTTP/1.1的请求响应中必须包含一个合法的Content-Length头字段,除非知道应用程序兼容 HTTP/1.1。一个请求响应的Content-Length字段没有给定,即服务器不能判断响应的长度,服务器应用400 (bad request) 来响应;或者服务器坚持希望有一个合法的Content-Length字段,用 411 (length required)来响应。
所有HTTP/1.1的接收者应用程序必须接受“chunked” transfer-coding (传输编码),因此当不能事先知道响应内容长度,允许使用这种机制来传输内容。响应头不应该够同时包含 Content-Length字段和non-identity transfer-coding。如果一个响应同时包含non-identity transfer-coding和Content-Length ,必须忽略Content-Length 。
5、HTTP头字段总结
总结一下HTTP协议的头部字段。
- 1、 Accept:请求头字段,告诉服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。
- 2、 Accept-Charset: 请求头字段
相关热词搜索:HTTP Header 协议头 Keep-Alive
上一篇:使用Nginx自动裁剪图片
下一篇:静态图片优化技术研究
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)