HTTP 概述
HTTP - 因特网的多媒体信使
HTTP 使用的是可靠的数据传输协议,能够保证数据在传输过程中不会被损坏或产生混乱。
Web客户端和服务器
Web 内容都是存在 Web 服务器上,Web 服务器使用的是 HTTP 协议,因此也称为 HTTP 服务器。
HTTP 客户端,例如浏览器向 HTTP 服务器发送请求,服务器在 HTTP 响应中会送所请求的数据。
资源
Web 服务器是 Web 资源的宿主。Web 资源是 Web 内容的源头。
资源可以是静态文件,如:文本文件、HTML文件、word文件、JPEG文件、AVI文件等等。也可以是根据需要生成内容的软件程序。
媒体类型
HTTP 为因特网上数千种不同的数据类型都打上了名为 MIME 类型(MIME type)的数据格式标签。
Web 服务器会为所有 HTTP 对象数据附加一个 MIME 类型。Web 客户端从服务器取回一个对象时会查看相关的 MIME 类型以决定如何处理这个对象。
MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一个斜杠分割。
text/html
:HTML 格式的文本文档text/plain
:普通的 ASCII 文本文档image/jpeg
:JPEG 格式的图片image/gif
:GIF 格式的图片video/quicktime
:Apple 的 QuickTime 电影application/vnd.ms-powerpoint
:微软的 PowerPoint 演示文件- ….
URI
每个 Web 服务器资源都有一个名字,称为 统一资源标识符。 URI 有两种形式:URL 和 URN。
URL
统一资源定位符,即 URL,是资源标识符最常见的形式,描述了一台特定服务器上某资源的特定位置。
URL 基本都遵循一种标准格式,即由三部分组成:
- 第一部分:方案,说明了资源使用的协议类型,通常是 HTTP 协议(http://)。
- 第二部分:服务器的因特网地址,比如:www.joes.com 。
- 第三部分:其余部分指定了 Web 服务器上的某个资源,比如:/pictures/image.gif 。
现在几乎所有的 URI 都是 URL。
URN
URI 的第二种形式是统一资源名,即 URN。作为特定内容的唯一名称使用,与目前的资源所在地无关。无论这个资源位于何处,都可以使用多种协议,仅通过名字就能访问该资源。
事务
一个 HTTP 事务由一条请求命令和一个响应结果组成。这种通信是通过名为 HTTP 报文的格式化数据块进行的。
方法
HTTP 支持集中不同的请求命令,这些命令被称为 HTTP 方法,该方法告诉服务器要执行什么动作。
HTTP方法 | 描述 |
---|---|
GET | 从服务器向客户端发送命名资源 |
PUT | 将来自客户端的数据存储到一个命名的服务器资源中去 |
DELETE | 从服务器中删除命名资源 |
POST | 将客户端数据发送到一个服务器网关应用程序 |
HEAD | 仅发送命名资源响应中的HTTP首部 |
状态码
每条 HTTP 响应报文都会携带一个状态码。是一个三位数字,以告诉客户端请求是否成功,或者是否要采取其他动作。
伴随每个状态码,还会有一条原因短语,对状态码进行描述。
报文
HTTP 报文有多行简单的字符串组成。都是纯文本。对应请求和响应分为请求报文和响应报文。
HTTP 报文的三个部分:
- 起始行:即报文第一行,在请求报文中说明要做什么,在响应报文中说明出现了什么情况;
- 首部字段:起始行后面有零个或多个首部字段。每个首部字段包含一个名字和一个值,使用冒号分割。以一个空行结束;
- 主体:空行之后就是可选的报文主体,包含了所有类型的数据。起始行与首部字段都是结构化的文本,而主体中可以包含任意的二进制数据,或者文本。
连接
TCP/IP
HTTP 是一个应用层协议,无需操心网络通信的具体细节,它把联网的细节都交给了因特网传输协议 TCP/IP。
TCP提供了:
- 无差错的数据传输;
- 按序传输,数据总是按照顺序到达;
- 为分段的数据流,可以在任意时刻以任意尺寸将数据发送出去。
连接、IP地址及端口号
HTTP 客户端需要使用**网际协议(Internet Protocol, IP)**地址和端口号在客户端和服务器之间建立一条TCP连接。
Web的结构组件
- 代理:位于客户端和服务器之间的 HTTP 中间实体;
- 缓存:HTTP 的仓库,使常用页面的副本能够保存在离客户端更近的地方;
- 网关:连接其他应用程序的特殊 Web 服务器;
- 隧道:对 HTTP 通信报文进行盲转发的特殊代理;
- Agent 代理:发起自动 HTTP 请求的半智能 Web 客户端。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.