HTTP权威指南 一二章

2018 6月记

《HTTP权威指南》 阅读总结

前言

--

HTTP(Hypertext Transfer Protocol,超文本传输协议 ① )是在万维网上进行通信时

所使用的协议方案。HTTP 有很多应用,但最著名的是用于 Web 浏览器和 Web 服

务器之间的**双工通信**。

(**双工通信**是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。这种发射机和接收机分别在两个不同的频率上(两个频率差有一定要求)能同时进行工作的双工机也称为异频双工机。)


HTTP:Web的基础

HTTP权威指南 一二章_第1张图片
HTTP权威指南 一二章_第2张图片

第 1 章简要概述 HTTP。 

第 2 章详细介绍了 URL 的格式,以及 URL 在因特网上命名的各种类型的资源,


Web 浏览器、服务器和相关的 Web 应用程序都是通过 HTTP 相互通信的。HTTP 是现代全球因特网中使用的公共语言。


HTTP——因特网的多媒体信使

每天,都有数以亿万计的 JPEG 图片、HTML 页面、文本文件、MPEG 电影、WAV

音频文件、Java 小程序和其他资源在因特网上游弋。HTTP 可以从遍布全世界的

Web 服务器上将这些信息块迅速、便捷、可靠地搬移到人们桌面上的 Web 浏览器

上去。

HTTP 使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够

确保数据在传输的过程中不会被损坏或产生混乱。这样,用户在访问信息时就不用

担心其完整性了,因此对用户来说,这是件好事。而对因特网应用程序开发人员来

说也同样如此,因为这样就无需担心 HTTP 通信会在传输过程中被破坏、复制或产

生畸变了。开发人员可以专注于应用程序特有细节的编写,而不用考虑因特网中存

在的一些缺陷和问题。

HTTP权威指南 一二章_第3张图片

资源

Web 服务器是 Web 资源(Web resource)的宿主。Web 资源是 Web 内容的源头。

最简单的 Web 资源就是 Web 服务器文件系统中的静态文件。这些文件可以包含

任意内容:文本文件、HTML 文件、微软的 Word 文件、Adobe 的 Acrobat 文件、

JPEG 图片文件、AVI 电影文件,或所有其他你能够想到的格式。

但资源不一定非得是静态文件。资源还可以是根据需要生成内容的软件程序。这些

动态内容资源可以根据你的身份、所请求的信息或每天的不同时段来产生内容。它

们可以为你显示照相机中活生生的照片,也可以帮你进行股票交易,搜索房产数据

库,或者从在线商店中购买礼物

HTTP权威指南 一二章_第4张图片

URI


每个 Web 服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是

什么了。服务器资源名被称为统一资源标识符(Uniform Resource Identifier,URI)。

URI 就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。统一资源定位符(URL)是资源标识符最常见的形式。URL 描述了一台特定服务器上某资源的特定位置。它们可以明确说明如何从一个精确、固定的位置获取资源。


HTTP权威指南 一二章_第5张图片

大部分 URL 都遵循一种标准格式,这种格式包含三个部分。

URL 的第一部分被称为 •  方案(scheme),说明了访问资源所使用的协议类型。这

部分通常就是 HTTP 协议(http://)。

第二部分给出了服务器的因特网地址(比如,www.uniyo.club)

其余部分指定了 Web 服务器上的某个资源(比如,/specials/saw-blade.gif)。 •

现在,几乎所有的 URI 都是 URL。


(URN :URN 仍然处于试验阶段,还未大范围使用。为了更有效地工作,URN 需要一个支撑架构来解析资源的位置。而此类架的缺乏也延缓了其被采用的进度。但 URN确实为未来发展作出了一些令人兴奋的承诺。)



我们来更仔细地看看客户端是怎样通过 HTTP 与 Web 服务器及其资源进行事务处理

的。一个 HTTP 事务由一条(从客户端发往服务器的)请求命令和一个(从服务器

发回客户端的)响应结果组成。这种通信是通过名为 HTTP 报文(HTTP message)

的格式化数据块进行的,如图 1-5 所示


HTTP权威指南 一二章_第6张图片


HTTP常见的 请求命令

HTTP权威指南 一二章_第7张图片


状态码

每条 HTTP 响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,

告知客户端请求是否成功,或者是否需要采取其他动作。表 1-3 显示了几种常见的

状态码。

HTTP权威指南 一二章_第8张图片

报文

HTTP权威指南 一二章_第9张图片

从 Web 客户端发往 Web 服务器的 HTTP 报文称为请求报文(request message)。从服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的HTTP 报文。HTTP 请求和响应报文的格式很类似。


HTTP 报文包括以下三个部分。

起始行 •

报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说

明出现了什么情况。

首部字段 •

起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为

了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首

部字段和添加新行一样简单。

主体 •

空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括

了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起

始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意

的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含

文本

HTTP权威指南 一二章_第10张图片



TCP/IP


HTTP 是个应用层协议。HTTP 无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议 TCP/IP。


无差错的数据传输; •

按序传输(数据总是会按照发送的顺序到达); •

未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)。

因特网自身就是基于 TCP/IP 的,TCP/IP 是全世界的计算机和网络设备常用的层次

化分组交换网络协议集。TCP/IP 隐藏了各种网络和硬件的特点及弱点,使各种类型

的计算机和网络都能够进行可靠地通信。

只要建立了 TCP 连接,客户端和服务器之间的报文交换就不会丢失、不会被破坏,

也不会在接收时出现错序了。

用网络术语来说,HTTP 协议位于 TCP 的上层。HTTP 使用 TCP 来传输其报文数

据。与之类似,TCP 则位于 IP 的上层(参见图 1-9)。

HTTP权威指南 一二章_第11张图片




Web的结构组件


代理 •

位于客户端和服务器之间的 HTTP 中间实体。

缓存 •

HTTP 的仓库,使常用页面的副本可以保存在离客户端更近的地方。可以将经过代理传送的常用文档复制保存起来。下一个请求同一文档的客户端

就可以享受缓存的私有副本所提供的服务了

网关 •

连接其他应用程序的特殊 Web 服务器。

网关(gateway)是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于

将 HTTP 流量转换成其他的协议。网关接受请求时就好像自己是资源的源端服务器

一样。客户端可能并不知道自己正在与一个网关进行通信。

隧道 •

HTTP 隧道的一种常见用途是通过 HTTP 连接承载加密的安全套接字层(SSL,Secure Sockets Layer)流量,这样 SSL 流量就可以穿过只允许 Web 流量通过的防火墙了。

对 HTTP 通信报文进行盲转发的特殊代理。

Agent 代理 •

发起自动 HTTP 请求的半智能 Web 客户端。




第二章 URL与资源

我们可以把因特网当作一个巨大的正在扩张的城市,里面充满了各种东西

url就是因特网资源的标准化名称

URI是一类通用的资源标识符,url是她的一个子集。URI是一个概念,由rul和urn组成

但多数情况下,都是 讲的是 URL


HTTP权威指南 一二章_第12张图片


ULR的语法

HTTP权威指南 一二章_第13张图片

主机与端口

用户名和密码

路径

参数

查询字符串

片段

URL的快捷方式

相对URL

自动拓展URL


 未来展望

URL是一种强有力的工具。可以用来命名所有现存对象,而且可以很方便地包含一些新格式。

但URL也有缺陷,它表示的是实际地址,而不是准确的名字。意味着url会告诉你资源此时的位置。缺点在于如果资源被移走了,url也就无效了。

URN是一种通过名字对资源进行定位的方法。这样子不管资源位置是否移走了。通过URN命名直接找到资源。

你可能感兴趣的:(HTTP权威指南 一二章)