?

?

?

?

?
这是请求报文的格式:
1.<method> <request-URL> <version>
2.<headers>
3.
4.<entity-body>
1.方法 请求URL 版本
2.首部
3.
4.实体主体部分
这是响应报文的格式(注意,只有起始行的语能有所不同):
1.<version> <status> <reason-phrase>
2.<headers>
3.
4.<entity-body>
1.版本 状态码 原因短语
2.首部
3.
4.实体的主体部分
各部分描述
HTTP/<major>.<minor>
例子 
?

并不是所有服务器都实现了表3-1 列出的所有7 种方挫。而且,由于HπP 设计得
易于扩展,所以除了这些方桂之外,其他服务器可能还会实现一些自己的请求方桂. 这些附加的方桂是对HTTP 规范的扩展,因此被称为扩展方法。


前一小节的重点是请求和响应报文的第一行(方法、状态码、原因短语和版本号)。跟在起始行后面的就是零个、一个或多个HTTP 首部字段。
HTTP 首部字段向请求和响应报文中添加了一些附加信息。本质上来说,它们只是一
些名/值对的列表。

?
HTTP 报文的第三部分是可选的实体主体部分。实体的主体是HTTP 报文的负荷。就是HTTP 要传输的内容。
HTTP 报文可以承载很多类型的数字数据z 图片、视频、HTML 文档、软件应用程序、信用卡事务、电子邮件等。

?
HTTP 定义了一组被称为安全方棒的方法。GET 方法和HEAD 方法都被认为是安全的,这就意味着使用GET 或HEAD 方捷的HTTP 请求都不会产生什么动作。
用于请求服务器发送某个资源。 
?
HEAD 方法与GET 方法的行为很类似, 但服务器在响应中只返回首部。不会返回实体的主体部分。 
?
与GET 从服务器读取文档相反, PUT 方能会向服务器写入文挡。 
?
POST 方法起初是用来向服务器输入数据的。实际上,通常会用它来支持HTML的表单。 
?
客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的HTTP 请求。TRACE 方法允许客户端在最终将请求发送给服务器时,看看它变成了什么样子。
TRACE 请求会在目的服务器端发起一个“环回”诊断。行程最后一站的服务器会弹回一条TRACE 响应,并在响应主体中携带它收到的原始请求报文。这样客户端就可以查看在所有中闹HTTP 应用程序组成的请求/响应链上,原始报文是否,以及如何被毁坏或修改过。 
?
OPTIONS 方法请求Web 服务器告知其支持的各种功能。 
?
DELETE 方法所做的事情就是请服务楼删除请求URL 所指定的资源。
HTTP 规范允许服务器在不通知客户端的情况下撤销请求。 
?
HTTP 被设计成字段可扩展的,这样新的特性就不会使老的软件失效了。扩展方法指的就是没有在HTTP/1.1 规范中定义的方法。 
?

?

?
重定向状态码要么告知客户端使用替代位置来访问他们所感兴趣的资源,要么就提供一个替代的响应而不是资源的内容。如果资源已被移动,可发送一个重定向状态码和一个可选的Location 首都来告知客户端资源已被移走,以及现在可以在哪里找到它。这样,浏览器就可以在不打扰使用者的情况下,透明地转入新的位置了。 
?
可以通过某些重定向状态码对资源的应用程序本地副本与源端服务器上的资源进行验证。比如, HTTP应用程序可以查看其资源的本地副本是否仍然是最新的,或者在源端服务器上资源是否被修改过。图3-15 显示了一个这样的例子。客户端发送了一个特殊的If - Modified-S.ince 首部,说明只读取1997 年10 月之后修改过的文挡。这个日期之后,此文档并未被修改过,因此,服务器回送了一个304 状态码,而不是文档的内容. 
?

?
?

?
?

?
?


?
信息性首部 
?




信息性首部 
?


信息性首部: 
?


原文:http://yangchildren.iteye.com/blog/2272413