* HTTP 请求消息*
1.总体结构:
- 起始行 // GET / HTTP/1.1
- 头部字段(一个或者多个)
- 空白行 //空白行的作用是来通知服务器,它已经结束了该头信息的发送。
- 消息主题(可选)
起始行:有3个部分组成,并且每个部分用空格来隔开相邻部分:
1. 请求方法
2. web 地址的请求 URI 部分
3. HTTP 版本
将字符串 http:// , Host 头部的值(如图上的 / ),以及请求 URI 连接起来形成了一个字符串,
http://www.baidu.com/, 称为 URI 。URI 包括 2 部分:第一部分是模式(scheme),
它出现在 冒号(:) 前面;另外一个部分依赖于模式。
web地址主要使用 http 模式(URI 中的模式不区分大小写,但一般用小写)。在这个模式中,
URI表示web上的资源地址,这种类型的URI 也称为URL。
URN 资源的唯一名称,而不是指查找资源的位置。
urn:ISBN:0-1404-4417-3
一个URN的URI总是包含三个用冒号(:)分开的部分,如上。
第一部分是模式名称,它总是 urn ,用于URN类型的URI。
第二部分是命名空间标示符(namespace identifier),如ISBN。[IANA-RUNS]中列出了
其他当前注册的URN命名空间标示符,以及指向每个命名空间标示符的文档的指示器。
第三部分是命名空间特定的字符串(namespace-specific string)
这个字符串的准确格式和含义因命名空间而异。
2.请求方法:
3.头部字段和 MIME 类型
我们知道,当构成与 HTTP 请求相关联的 URI 时,还会使用 Host 头部字段。
在每个 HTTP/1.1 请求消息中还定义了很多其他的头部字段。每个头部字段都会开始与一个字符名称(filed name),
如 Host ,然后接着一个冒号(:),然后接着是一个字段值(field value)。允许在这个字段值前后使用空白,
但是这样的空白不会被看作字段值本身的一部分。
1. 头部字段名称不区分大小写;
2. 头部字段值可能会换行,这是通过在每个连续行中前置一个或者多个空格或制表符来实现的,
这还意味着头部字段名称必须开始于第一行的第一个字符,而不是开始于前置的空白。
3. 第三个共性是在多个头部字段值中使用 MIME 类型。 MIME 是 (Multipurpose Internet Mail Extensions,
多用途互联网邮件扩展),指一个可用于传递多种信息类型(包含图形和应用程序)的标准,
其传递方式包括通过电子邮件以及通过其他的
Internet 消息协议。特别是,如 MIME Internet 草案标准[RFC-2045]中所定义的那样,
MIME 消息的内容是使用一个由 2 部分组成,
不区分大小写的字符串指定的,在 web 应用程序中,该字符串被称为消息的 内容类型(content type)。
标准的 MIME 内容类型字符串的两个示例是 text/html,image/jpeg。在这些字符串中,斜杠前面的字串是顶级类型(top-level type),
它们通常是表1-3中所示的少数标准类型之一。斜杠后面的子串(称为子类型(subtype)),指定相对于顶级类型的内容类型。
可以在[IANA-MIME]中找到当前注册的顶级类型和子类型的完整列表。
此外,还可以使用私有(private)(未注册)的MIME 顶级类型和子类型。通过"x-"(或"X-")前缀来指示私有类型或者子类型。
4.头部字段还有一个特性,这就是许多头部字段值使用的所谓的 质量值(quality value)来指示优先级。
如,q = num,的字符串来指定质量值,其中 num 是一个 0~1 之间的十进制数字,这个数字越大表示优先级越高。
每个质量值都应用于它前面的所有逗号分隔符的字段值,直到下一个早先的质量值为止。
HTTP内容协商(content negotiation,12节介绍)运用短“浮点”数字(short floating point number)
来表针不同协商参数的相对重要性。重要性的权值被规范化成一个从0到1的实数。0是最小值,1是最大值。
如果一个参数的质量值(quanlity value)为0,那么这个参数的内容不被客户端接受。HTTP/1.1应用程序不能产生多于三位小数的实数
。下面规则限定了这些值。
qvalue = ( "0" [ "." 0*3DIGIT ] )
| ( "1" [ "." 0*3("0") ] )
"质量值" 是一个不当的用词,因为这些值仅仅表现一中相对的降级。
5.最后一个头部特性是在头部字段值中使用 * 作为通配符,如,*/* 表示所有可能的MIME类型
http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html
http://www.w3school.com.cn/media/media_mimeref.asp
http://www.cnblogs.com/ansyxpf/p/5422840.html
http://www.cnblogs.com/hackpig/archive/2010/02/14/1668282.html