文档介绍:HTTP协议概述、方法、Header、状态码2009-04-0621:18转自:http://hi./vivliu/blog/item/,但很多网络应用都没有利用这些强大之处。比如缓存和HTTP方法。HTTP为资源的增删改查分别提供了PUT,DELETE,POST,GET等方法,确没有人用。所以,最近兴起的Restful只是对优化web架构、充分利用HTTP协议的能力的一个回归。下面是一些HTTP协议的概述:消息:HTTP协议中顶级数据单位,使用HTTP协议通信的机器之间来回发送的数据包实体:只出现在有消息体的消息中。它按照实体header定义的格式和编码进行传输。方法:OPTIONS:客户端查询服务器对与某URL允许的通信选项GET:从服务器获取URL对应的资源HEAD:除了服务器响应中不能包含消息体,该方法与GET一样。用于只需少数元信息的情况POST:被设计用来注解、修改URL所对应的资源PUT:被设计用来修改或创建资源。当URL对应的资源存在时,则提交的作为新版本,否则新建资源DELETE:被设计用来删除URL对应的资源TRACE:主要用来测试。服务器将最终接收到的请求本身发送回来,作为客户端诊断依据CONNECT:保留的方法名,用于代理切换隧道header特殊参数:q:在大多的各种header值中,都可以看到一个名为q=、q=。因为发送header主要是一个和服务器的协商过程,所以能允许的选项一般不只一个,但具体哪个优先呢?这就需要为一些选项制定权重值。q参数的值是一个从0到1的浮点数,默认是1,为0表示客户端无法接收,小数点后不能超过3位。另外,header的多个值之间用逗号分隔而不是分号。比如这个header:Accept:audio/*;q=,audio/basic,这表示客户“端告诉服务器我最喜欢的是一个audio/basic类型的音频(因为它没有设置q参数,默认是1,但如果没有,给的音频也行。当然,这只是q参数一个比较简单的应用。我一个任意类型(audio/*”常规header:Cache-Control:用于指出请求/响应链上所有缓存必须服从的指令,它必须具有穿透各代理和网关的能力。:no-cache。Connection:允许客户端指出希望特定连接的选项,且禁止由代理在将来的连接中通讯Date:表示消息发生的日期和时间,与RFC822中的orig-date语义一致Pragma:用来包括实现特定的指令,可能应用到请求/响应链上所有接收方Trailer:指出给出的头部域集合在以chunkedtransfer-coding编码的消息的尾部中存在Transfer-Encoding:指出应用什么类型的转换到消息主体上,与content-coding不同,这不是指定实体的属性而是消息的Upgrade:允许客户端指出其支持的其他通讯协议,切愿意使用之,若服务器发现切换是可行的,必须在响应中回101Via:必须由网关或代理来指出请求中的UA和服务器、以及在响应中的原始服务器和客户端的中间协议和接收方。用于跟踪消息转发,避免请求循环Warning:用户携带关于消息的状态和转换的额外