最近在看HTTP权威指南,这本书有点多的,具体的细节我们可以不用关心,但是大致的一些概念还是应该清楚的。这里我整理下:
- HTTP——因特网的多媒体信使
- Web客户端和服务器
可能你每天都在使用 HTTP 客户端。最常见的客户端就是 Web 浏览器,比如微软的Internet Explorer 或网景的 Navigator。Web 浏览器向服务器请求 HTTP 对象,并将这些对象显示在你的屏幕上。浏览一个页面时(比如 http://www.oreilly.com/index.html) ,浏览器会向服务器www.oreilly.com 发送一条 HTTP 请求 。服务器会去寻找所期望的对象(在这个例子中就是 /index.html) ,如果成功,就将对象、对象类型、对象长度以及其他一些信息放在 HTTP 响应中发送给客户端。
- 资源
总之,所有类型的内容来源都是资源。包含公司销售预测电子表格的文件是一种资源。扫描本地公共图书馆书架的 Web 网关是一种资源。因特网搜索引擎也是一种资源。
- 媒体类型
应该如何处理这个对象。大多数浏览器都可以处理数百种常见的对象类型:显示图片文件、解析并格式化 HTML 文件、通过计算机声卡播放音频文件,或者运行外部MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。
普通的 ASCII 文本文档由 text/plain 类型来标记。
JPEG 版本的图片为 image/jpeg 类型。
GIF 格式的图片为 image/gif 类型。
Apple 的 QuickTime 电影为 video/quicktime 类型。
微软的 PowerPoint 演示文件为 application/vnd.ms-powerpoint 类型。
在j2e中操作Excel,需要设置ContentType为application/msexcel,其实就是这里mime类型。
- 方法
一些常见的HTTP方法:
HTTP方法 描 述
GET 从服务器向客户端发送命名资源
PUT 将来自客户端的数据存储到一个命名的服务器资源中去
DELETE 从服务器中删除命名资源
POST 将客户端数据发送到一个服务器网关应用程序
HEAD 仅发送命名资源响应中的 HTTP 首部
- 状态码
每条 HTTP 响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。表 1-3 显示了几种常见的状态码。
HTTP状态码 描 述
200 OK。 文档正确返回
302 Redirect(重定向) 。 到其他地方去获取资源
404 Not Found(没找到) 。 无法找到这个资源
伴随着每个数字状态码,HTTP 还会发送一条解释性的“原因短语”文本 。包含文本短语主要是为了进行描述,所有的处理过程使用的都是数字码。
HTTP 软件处理下列状态码和原因短语的方式是一样的。
200 OK
200 Document attached
200 Success
200 All’s cool, dude
- 报文
从 Web 客户端发往 Web 服务器的 HTTP 报文称为请求报文(request message) 。从服务器发往客户端的报文称为响应报文(response message) ,此外没有其他类型的
HTTP 报文。HTTP 请求和响应报文的格式很类似。
HTTP 报文包括以下三个部分。
报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。
首部字段 :
起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单。
主体 :空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音轨、软件程序) 。当然,主体中也可以包含文本。
- 连接