Web 浏览器、服务器和相关的 Web 应用程序都是通过 HTTP 相互通讯的。HTTP 是现代全球因特网中使用的公共语言。本章特别介绍以下内容:
- Web 客户端与服务器是如何通讯的
- 资源来自何方
- Web 事务是怎样工作的
- HTTP 通讯所用的报文格式
- 底层 TCP 网络传输
- 不同 HTTP 协议变体
- 因特网上安装大量 HTTP 架构组件中的一部分
Web 客户端和服务器
Web 内容是存储在 Web 服务器上的,Web 服务器所使用的是 HTTP 协议,因此经常会被称为 HTTP 服务器。客户端向服务器发送 HTTP 请求,服务器会在 HTTP 响应中会送所有请求数据。最常见的客户端就是 Web 浏览器。
资源
Web 服务器是 Web 资源的宿主。Web 资源是 Web 内容的源头。最简单的资源就是 Web 服务器里的静态文件。但资源不一定非得是静态文件,资源还可以是根据需要生成内容的软件程序。这些动态内容资源可以根据你的身份、所请求的信息或时段来产生内容。
媒体类型
因特网上有数千种不同的数据类型,HTTP 给每种要通过 Web 传输的对象打上了名为 MIME 类型的数据格式标签。Web 服务器会为所有的 HTTP 对象附加一个 MIME 类型,当 Web 浏览器从服务器中取回一个对象时,会去查看相关的 MIME 类型,看看它是否知道要如何处理这个对象。
MIME 类型是一种文本标记,表示一种主要对象类型和一个特定的子类型,中间由一条斜杠来分隔。
- Html 的文本文档由 text/heml 类型来标记
- GIF 格式的图片为 image/gif 类型
URI
每个 Web 服务器资源都有一个名字,这样客户端就可以说明它们感兴趣的资源是什么了。服务器资源名被称为***统一资源标识符(Uniform Resource Identifier)。***
URI 有两种形式,分别称为 URL 和 URN。
URL
***统一资源定位符***是资源标识符中最常见的形式。URL 描述了一台特定服务器上某资源的特定位置
大部分 URL 都遵循一种标准格式,这种格式包含三个部分:
- URL 的第一部分被称为方案,说明了访问资源所使用的协议类型。这部分通常就是 HTTP 协议(http://)。
- 第二部分给出了服务器的因特网地址
- 其余部分指定了因特网上的某个资源
事务
一个 HTTP 事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信是通过名为 HTTP 报文的格式化数据块进行的。
方法
HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法。每条 HTTP 请求报文都包含一个方法,这个方法回告诉服务器要执行什么动作(获取一个 Web 也面、运行一个网管程序、删除一个文件等)
HTTP 方法 | 描述 |
---|---|
GET | 从服务器向客户端发送命名资源 |
PUT | 将来自客户端的数据存储到一个命名的服务器资源中 |
DELETE | 从服务器中产出命名资源 |
POST | 将客户端数据发送到一个服务器网关应用程序 |
HEAD | 仅发送命名资源响应中的 HTTP 首部 |
状态码
每条 HTTP 响应报文返回时都会携带一个状态码。状态吗是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。
HTTP 状态码 | 描述 |
---|---|
200 | OK,文档正确返回 |
302 | Redirct(重定向),到其他地方去获取资源 |
404 | Not Foud,无法找到这个资源 |