HTTP 概述
HTTP超文本传输协议
HTTP 使用的是可靠的数据传输协议
-
资源
1.1 媒体类型
因特网上有数千种不同的数据类型,HTTP 仔细地给每种要通过 Web 传输的对
象都打上了名为 MIME 类型(MIME type)的数据格式标签MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间
由一条斜杠来分隔。
• HTML 格式的文本文档由 text/html 类型来标记。
• 普通的 ASCII 文本文档由 text/plain 类型来标记。
• JPEG 版本的图片为 image/jpeg 类型。
• GIF 格式的图片为 image/gif 类型。
• Apple 的 QuickTime 电影为 video/quicktime 类型。
• 微软的 PowerPoint 演示文件为 application/vnd.ms-powerpoint 类型-
1.2 URI
统一资源标识符(Uniform Resource Identifier,URI)
URI 就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。这是 Joe 的五金商店的 Web 服务器上一个图片资源的 URI:
http://www.joes-hardware.com/specials/saw-blade.gif
-
-
1.3 URL
统一资源定位符(Uniform Resource locator,URL) URL 描述了一台特定服务器上某资源的特定位置- URL 的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。这 部分通常就是 HTTP 协议(http://)。
- 第二部分给出了服务器的因特网地址(比如,www.joes-hardware.com)。
- 其余部分指定了 Web 服务器上的某个资源(比如,/specials/saw-blade.gif)。
-
事务
一个 HTTP 事务由一条(从客户端发往服务器的)请求命令和一个(从服务器 发回客户端的)响应结果组成。这种通信是通过名为 HTTP 报文(HTTP message) 的格式化数据块进行的
-
2.1 方法
HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method)- GET 从服务器向客户端发送命名资源
- PUT 将来自客户端的数据存储到一个命名的服务器资源中去 DELETE 从服务器中删除命名资源
- POST 将客户端数据发送到一个服务器网关应用程序
- HEAD 仅发送命名资源响应中的 HTTP 首部
2.2 状态码
每条 HTTP 响应报文返回时都会携带一个状态码(比如404)
-
-
报文
从 Web 客户端发往 Web 服务器的 HTTP 报文称为请求报文(request message)。从 服务器发往客户端的报文称为响应报文(response message),HTTP 报文包括以下三个部分。
1)起始行 报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说 明出现了什么情况。
2)首部字段 起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为 了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首 部字段和添加新行一样简单。
•3)主体 空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括 了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起 始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意 的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含 文本。 -
连接
-
4.1 TCP/IP
只要建立了 TCP 连接,客户端和服务器之间的报文交换就不会丢失、不会被破坏, 也不会在接收时出现错序了。【三次握手】HTTP 协议位于 TCP 的上层。HTTP 使用 TCP 来传输其报文 据
4.2 连接、IP地址及端口号
在 HTTP 客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP) 地址和端口号在客户端和服务器之间建立一条 TCP/IP 连接。
怎么获得 HTTP 服务器的 IP 地址和端口号呢?当然是通过 URL 了!
-
http://207.200.83.29:80/index.html
http://www.netscape.com:80/index.html
http://www.netscape.com/index.html
第一个 URL 使用了机器的 IP 地址,207.200.83.29 以及端口号 80。
第二个 URL 没有使用数字形式的 IP 地址,它使用的是文本形式的域名,或者称为 主机名(www.netscape.com)。主机名就是 IP 地址比较人性化的别称。可以通过一 种称为域名服务(Domain Name Service,DNS)的机制方便地将主机名转换为 IP 地址,这样所有问题就都解决了。第 2 章会介绍更多有关 DNS 和 URL 的内容。
最后一个 URL 没有端口号。HTTP 的 URL 中没有端口号时,可以假设默认端口号是 80。