频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

HTTP:信封里的文档

作者: [美]Leonard Richardson 、Sam Ruby/徐涵、李红军、.. 出处:电子工业出版社  2008-05-12 15:59    砖    好    评论   进入论坛
阅读提示:《RESTful Web Services中文版》第1章主要为大家介绍的是Programmable Web及其分类,本节为HTTP:信封里的文档。

HTTP:信封里的文档

HTTP: Documents in Envelopes

假如要我对海洋动物进行分类的话,我会先从一些共性(比如DNA、分子结构、胚胎发育规律,等等)开始讨论,然后说明为什么在这些共性上的分化会导致动物之间的差别。为了对programmable web进行分类,我想先对HTTP(所有Web服务共有的协议)作一个概述。
HTTP是一种基于文档的协议。客户端把文档放在信封(envelope)里,然后发给服务器;作为回应,服务器把响应文档放在信封里,然后发给客户端。HTTP对信封格式有严格的标准,但它并不关心信封里面的内容。示例1-5是一个信封的例子:当访问oreilly.com

主页时,Web浏览器发出HTTP请求(HTTP request)。我截断了其中超长的两行,以便适应印刷页面的大小。

示例1-5:一个发给http://www.oreilly.com/index.html的HTTP GET请求

GET /index.html HTTP/1.1
Host: www.oreilly.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12)...
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,...
Accept-Language: us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

也许你对HTTP还不熟悉,所以我来讲解一下上述HTTP请求的各个主要部分。全书都采用这里的术语。

HTTP方法(HTTP method)

对于这个请求,方法是“GET”。在其他讨论“REST”的地方,你会看到HTTP方法也被称作“HTTP动词(HTTP verb)”或“HTTP动作(HTTP action)”。

HTTP方法的名称,就如同编程语言里的方法名称,表示客户端希望服务器如何处理该信封。这里,客户端(即我的Web浏览器)希望从服务器(www.oreilly.com)获取(GET)一些信息。

路径(path)

这是URI里主机名(hostname)后面的部分。对于这个请求,URI是http://www.oreilly. com/index.html,路径是“/index.html”。拿信封作比喻的话,路径就是信封上的地址。在本书中,有时“URI”只表示路径。

请求报头(request headers)

它们是一组关键字-值对(key-value pairs),起元数据(metadata)的作用,就像贴在信封上、写有信息的不干胶标贴一样。 这个请求有8个报头(headers):Host、User-Agent、Accept,等等。关于HTTP报头有一个标准(参见附录C),不过应用程序也可以定义自己的报头。
实体主体(entity-body),也称作文档(document)或表示(representation)

这是放在信封里的文档。本例是一个没有实体主体的HTTP请求——也就是说,信封里面是空的!一般来说,GET请求都没有实体主体——完成请求所需的全部信息都在路径(path)和报头(headers)里。

HTTP响应(HTTP response)也是一个放在信封里的文档。HTTP响应跟HTTP请求在形式上差不多。在浏览器向位于oreilly.com的服务器发出如示例1-5所示的请求后,该服务器将向Web浏览器作出响应。示例1-6显示的是经简化的HTTP响应。

示例1-6:对发给http://www.oreilly.com/index.html的HTTP GET请求的响应

HTTP/1.1 200 OK
Date: Fri, 17 Nov 2006 15:36:32 GMT 

Server: Apache
Last-Modified: Fri, 17 Nov 2006 09:05:32 GMT
Etag: "7359b7-a7fa-455d8264
Accept-Ranges: bytes
Content-Length: 43302
Content-Type: text/html
X-Cache: MISS from www.oreilly.com
Keep-Alive: timeout=15, max=1000
Connection: Keep-Alive
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
...
<title>oreilly.com -- Welcome to O'Reilly Media, Inc.</title>
...

HTTP响应可分为三个部分。

HTTP响应代码(HTTP response code)
它是一个通知客户端“HTTP请求是成功还是失败”的数字代码,并告诉客户端应如何对待信封及信封里的内容。对于本例,响应代码是200(“OK”),可见GET操作成功了。我将在附录B对各种HTTP响应代码进行解释。

响应报头(response headers)

跟请求报头(request headers)一样,响应报头也是贴在信封上的“不干胶标贴”。本例的HTTP响应有11个报头:Date、Server,等等。
实体主体(entity-body)或表示(representation)

同样地,它也是放在信封里的文档。不过这次它不是空的!该实体主体实现(fulfill)了我的GET请求。 HTTP响应里其余的部分,就像是粘有不干胶标贴的信封,告诉Web浏览器如何来处理这个文档。

有一些非常重要的标签是值得单独提及的。响应报头Content-Type给出实体主体的媒体类型(media type)。对于本例,媒体类型是text/html——这告诉Web浏览器,它可以把实体主体作为一个HTML文档(也就是一个网页)来呈现。

关于媒体类型有一个标准(http://www.iana.org/assignments/media-types/)。最常见的媒体类型有文本文档(text/html)、结构化数据文档(application/xml)及图像(image/jpeg)等。在别处讨论REST或HTTP时,你会看到媒体类型也被称作“MIME类型”、“内容类型(content type)”或“数据类型(data type)”。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
企业Web安全威胁在线评估系统
Web 2.0基础知识大全
Websphere入门
汶川大地震 IT技术人为同胞生命祈福
全面解析35岁技术人的价值与出路
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
全面解析35岁技术人的价值与出路
全面解析35岁技术人的价值与..
汶川大地震 IT技术人为同胞生命祈福
汶川大地震 IT技术人为同胞生..
企业数据恢复指南
企业数据恢复指南
· 企业数据恢复指南
· 龙芯要做中国的“奔腾”
· 2008年上半年全国软考..
· 交换机故障解决指南
· Vista SP1对决XP SP3
· 华为路由器配置
· LAMP技术精解
· 微软出价446亿美元收购..
· 网络故障排除宝典
· AIX操作系统管理应用(..
· 华为员工自杀频频拷问..
· 三层交换技术专题
· ARP攻击防范与解决方案
· 隐私保护技术探讨
· 反垃圾邮件技术应用
· Windows Server 2008专..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· Apache技术专题
· 中间件应用技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· 中间件应用技术专题
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· RAID——磁盘阵列基础
· 路由器设置与口令恢复
· SOA 面向服务架构
· ADSL应用面面俱到
· ADSL应用面面俱到
· 反垃圾邮件技术应用