基本信息
- 原书名:HTTP:The Definitive Guide
- 原出版社: O'Reilly Media
- 作者: (美)David Gourley Brian Totty Marjorie Sayer Sailu Reddy Ansbu Aggarwal
- 译者: 陈涓 赵振平
- 丛书名: 图灵程序设计丛书
- 出版社:人民邮电出版社
- ISBN:9787115281487
- 上架时间:2012-8-28
- 出版日期:2012 年9月
- 开本:16开
- 页码:694
- 版次:1-1
- 所属分类:计算机 > 计算机网络 > 网络协议 > TCP/IP
计算机 > 软件与程序设计 > 网络编程 > HTML
编辑推荐
国内首本HTTP及其相关核心Web技术权威著作
HTTP最著名最突出的应用为Web浏览器和Web服务器之间的双工通信
内容简介
作译者
David在加州大学伯克利分校获得了计算机科学的学士学位,还拥有Web技术方面的几项专利。
Brian Totty最近出任了Inktomi公司(这是1996年他参与建立的一家公司)研发部副总裁,在公司中他负责Web缓存、流媒体及因特网搜索技术的研发工作。他曾是Silicon Graphics公司的一名科学家,他在那儿为高性能网络和超级计算机系统设计软件并对其进行优化。在那之前,他是苹果计算机公司高级技术组的一名工程师。
Brian在伊利诺伊大学Urbana-Champaign分校获得了计算机科学的博士学位,在MIT获得了计算机科学及电子工程的学士学位,在那里他获得了计算机系统研究的Organick奖。他还为加州大学扩展系统开发并讲授了一些屡获殊荣的因特网技术方面的课程。
Marjorie Sayer在Inktomi公司负责编写Web缓存方面的软件。在加州大学伯克利分校获得了数学硕士和博士学位之后,一直致力于数学课程的改革。从1990年开始致力于能量资源管理、并行系统软件、电话和网络方面的写作。
Sailu Reddy目前在Inktomi公司负责嵌入式的性能增强型HTTP 代理的开发。Sailu从事复杂软件系统的开发已经有12年了,从1995年开始深入Web架构的研发工作。他是Netscape第一台Web服务器、Web 代理产品,以及后面几代产品的核心工程师。他具备HTTP应用程序、数据压缩技术、数据库引擎以及合作管理等方面的技术经验。Sailu在亚里桑那大学获得了信息系统的硕士学位并握有Web技术方面的多项专利。
Anshu Aggarwal是Inktomi公司的工程总监。他领导着Inktomi公司Web缓存产品的协议处理工程组,从1997年就开始参与Inktomi的Web技术设计工作。Anshu在科罗拉多大学Boulder分校获得了计算机科学的硕士和博士学位,从事分布式多处理器的内存一致性技术研究。他还拥有电子工程的硕士和学士学位。Anshu撰写了多篇技术论文,还拥有两项专利。
目录
第一部分 HTTP:Web 的基础
第1章 HTTP 概述 3
1.1 HTTP——因特网的多媒体信使 4
1.2 Web 客户端和服务器 4
1.3 资源 5
1.3.1 媒体类型 6
1.3.2 URI 7
1.3.3 URL 7
1.3.4 URN 8
1.4 事务 9
1.4.1 方法 9
1.4.2 状态码 10
1.4.3 Web 页面中可以包含多个对象 10
1.5 报文 11
1.6 连接 13
1.6.1 TCP/IP 13
1.6.2 连接、IP 地址及端口号 14
1.6.3 使用Telnet 实例 16
1.7 协议版本 18
前言
HTTP(Hypertext Transfer Protocol,超文本传输协议①)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
HTTP起初是一个简单的协议,因此你可能会认为关于这个协议没有太多好说的。但现在,你手上拿着的却是一本将近两斤重的书。如果你想知道我们怎么会写出一本700多页的关于HTTP的书,就去看看目录吧。本书不仅仅是一本HTTP首部参考手册,它还是一本名副其实的Web架构“圣经”。
本书中,我们会将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,我们对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。而且,为了节省大家寻找参考文献的时间,我们还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。在条理清晰的附录中,可以找到按照字母排序的首部参考(这些首部构成了最常见的HTTP文本的基础)。我们希望这种概念性的设计有助于读者更好地使用HTTP。
本书是为所有希望理解HTTP和Web底层结构的人编写的。软硬件工程师也可以将本书作为HTTP及相关Web技术参考书使用。系统架构师和网络管理员可以通过本书更好地了解如何设计、实现并管理复杂的网络架构。性能工程师和分析人员可以从缓存和性能优化的相关章节中获益。市场营销和咨询专家还可以通过概念介绍更好地理解Web技术的前景。
① HTTP译为“超文本传输协议”,其中“transfer”使用了“传输”的含义,但依据HTTP制定者之一Roy Fielding博士的论文,“transfer”表示的是“(状态的)转移”,而不是“传输”。怎样翻译才更符合HTTP的原意,其讨论可参见图灵社区的文章,地址是ituring.com.cn/article/details/1817。
本书澄清了一些常见的误解,推荐了“各种业内诀窍”,提供了便捷的参考资料,并且用通俗易懂的语言阐述了枯燥且令人费解的标准规范,还详细探讨了Web正常工作所必需且互相关联的技术。
本书创作历时良久,是由很多热衷于因特网技术的人共同完成的,希望它能对你有所帮助。
运行实例:Joe的五金商店
本书的很多章节都涉及了一个假想的在线五金与家装商店示例,通过这个“Joe的五金商店”来说明一些技术概念。我们为这个商店构建了一个真实的Web站点(http://www.joes-hardware.com),以便大家能够测试书中的部分实例。只要本书仍在销售,我们就会一直维护好这个Web站点。
本书内容
本书包含21章,分为5个逻辑部分(每部分都是一个技术专题),以及8个很有用的附录,这些附录包含了参考资料,以及对相关技术的介绍。
第一部分HTTP:Web的基础
第二部分HTTP结构
第三部分识别、认证与安全
第四部分实体、编码和国际化
第五部分内容发布与分发
第六部分附录
第一部分用4章的篇幅描述了Web的基础构件与HTTP的核心技术。
第1章简要介绍了HTTP。
媒体评论
有些网络结构会构建复杂的网状缓存(cache mesh),而不是简单的缓存层次结构。网状缓存中的代理缓存之间会以更加复杂的方式进行对话,做出动态的缓存通信决策,决定与哪个父缓存进行对话,或者决定彻底绕开缓存,直接连接原始服务器。这种代理缓存会决定选择何种路由对内容进行访问、管理和传送,因此可将其称为内容路由器(content router)。
网状缓存中为内容路由设计的缓存(除了其他任务之外)要完成下列所有功能。
根据URL在父缓存或原始服务器之间进行动态选择。
根据URL动态地选择一个特定的父缓存。
前往父缓存之前,在本地缓存中搜索已缓存的副本。
允许其他缓存对其缓存的部分内容进行访问,但不允许因特网流量通过它们的缓存。
缓存之间这些更为复杂的关系允许不同的组织互为对等(peer)实体,将它们的缓存连接起来以实现共赢。提供可选的对等支持的缓存被称为兄弟缓存(siblingcache)(参见图7—10)。HTTP并不支持兄弟缓存,所以人们通过一些协议对HTTP进行了扩展,比如因特网缓存协议(Internet Cache Protocol,ICP)和超文本缓存协议(HyperText Caching Protocol,HTCP)。我们将在第20章讨论这些协议。
7.7缓存的处理步骤
现代的商业化代理缓存相当地复杂。这些缓存构建得非常高效,可以支持HTTP和其他一些技术的各种高级特性。但除了一些微妙的细节之外,Web缓存的基本工作原理大多很简单。对一条HTTP GET报文的基本缓存处理过程包括7个步骤(参见图7—11)。
(1)接收——缓存从网络中读取抵达的请求报文。
(2)解析——缓存对报文进行解析,提取出URL和各种首部。
(3)查询——缓存查看是否有本地副本可用,如果没有,就获取一份副本(并将其保存在本地)。
(4)新鲜度检测——缓存查看已缓存副本是否足够新鲜,如果不是,就询问服务器是否有任何更新。
(5)创建响应——缓存会用新的首部和已缓存的主体来构建一条响应报文。
(6)发送——缓存通过网络将响应发回给客户端。
(7)日志——缓存可选地创建一个日志文件条目来描述这个事务。
书摘
有些网络结构会构建复杂的网状缓存(cache mesh),而不是简单的缓存层次结构。网状缓存中的代理缓存之间会以更加复杂的方式进行对话,做出动态的缓存通信决策,决定与哪个父缓存进行对话,或者决定彻底绕开缓存,直接连接原始服务器。这种代理缓存会决定选择何种路由对内容进行访问、管理和传送,因此可将其称为内容路由器(content router)。
网状缓存中为内容路由设计的缓存(除了其他任务之外)要完成下列所有功能。
根据URL在父缓存或原始服务器之间进行动态选择。
根据URL动态地选择一个特定的父缓存。
前往父缓存之前,在本地缓存中搜索已缓存的副本。
允许其他缓存对其缓存的部分内容进行访问,但不允许因特网流量通过它们的缓存。
缓存之间这些更为复杂的关系允许不同的组织互为对等(peer)实体,将它们的缓存连接起来以实现共赢。提供可选的对等支持的缓存被称为兄弟缓存(siblingcache)(参见图7—10)。HTTP并不支持兄弟缓存,所以人们通过一些协议对HTTP进行了扩展,比如因特网缓存协议(Internet Cache Protocol,ICP)和超文本缓存协议(HyperText Caching Protocol,HTCP)。我们将在第20章讨论这些协议。
7.7缓存的处理步骤
现代的商业化代理缓存相当地复杂。这些缓存构建得非常高效,可以支持HTTP和其他一些技术的各种高级特性。但除了一些微妙的细节之外,Web缓存的基本工作原理大多很简单。对一条HTTP GET报文的基本缓存处理过程包括7个步骤(参见图7—11)。
(1)接收——缓存从网络中读取抵达的请求报文。
(2)解析——缓存对报文进行解析,提取出URL和各种首部。
(3)查询——缓存查看是否有本地副本可用,如果没有,就获取一份副本(并将其保存在本地)。
(4)新鲜度检测——缓存查看已缓存副本是否足够新鲜,如果不是,就询问服务器是否有任何更新。
(5)创建响应——缓存会用新的首部和已缓存的主体来构建一条响应报文。
(6)发送——缓存通过网络将响应发回给客户端。
(7)日志——缓存可选地创建一个日志文件条目来描述这个事务。