2.HTTP 请求

* 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)
来表针不同协商参数的相对重要性。重要性的权值被规范化成一个从01的实数。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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值