HTTP是应用级协议,它适应了分布式超媒体协作系统对灵活性及速度的要求。它是一个一般的、无状态的、基于对象的协议,通过对其请求方法(request methods)进行扩展,可以被用于多种用途,比如命名服务器(name server)及分布式对象管理系统。 HTTP 的一个特性是其数据表现类型允许系统的构建不再依赖于要传输的数据。 HTTP 自从 1990 年就在 WWW 上被广泛使用。该规范反映了“HTTP/1.0”的普通用
x-compress文件压缩程序"compress"的编码格式,该格式适用于LZW(Lempel-Ziv-Welch)译码。
注意:用程序名来标识编码格式的做法不是很理想,在将来可能不会继续这样做。现在 之所以这样做是出于历史的原因,并非良好的设计。
3.6 介质类型(Media Types)
HTTP在Content-Type header域(10.5节)中使用Internet介质类型[13],用以提供开放的可扩展的数据类型。
media-type = type "/" subtype *( ";" parameter )
type = token
subtype = token
参数可参照属性/值对的方式,用类型/子类型的格式来写。
Parameter = attribute "=" value
Attribute = token
Value = token | quoted-string
其中,类型、子类型、参数属性名是大小写敏感的。而参数值不一定是大小写敏感的,这得看参数名的语法而定。在类型和子类型、属性名和属性值之间不能有LWS(空格)。当接收到不能识别的介质类型的参数时,用户代理应当忽略它们。
一些老的HTTP应用不能识别介质类型参数,所以HTTP/1.0的应用程序只能在定义消息内容时使用介质参数。
介质参数(Media-type)值用Internet授权分配数字(Internet Assigned Number Authority ,IANA [15])注册。介质类型注册过程请参见RFC1590[13]。不鼓励使用未注册的介质类型。
3.6.1标准及文本缺省(Canonicalization and Text Defaults) Internet介质类型是用规范形式注册的。一般来说,在通过HTTP协议传输实体主体(Entity-Body)之前,必须先将其表示成适当的规范格式。如果主体用使用了一种Content-Encoding进行编码,下面的数据在编码前必须转换成规范形式:
"text"类型的介质子类型在规范形式中使用CRLF做为文本行中断。实际上,为和实体主体(Entity body)内的使用方式保持一致,HTTP允许传输纯以CR或LF单独表示行中断的文本介质。HTTP应用程序必须将其通过HTTP方式接收到的文本介质中的CRLF、CR、LF看做是行中断符。
另外,如果文本介质的字符集没有使用字节13和10做为CR和LF,象一些多字节字符集,HTTP允许使用该字符集指定的任何顺序的字节替代CR和LF做为行中断,这种行中断的灵活运用方式仅可于实体主体(Entity-Body)中。一个纯CR或LF不应在任何HTTP控制结构(如标题域-header field和多块分界线-multipart boundaries)中替代CRLF。
参数"charset"在定义数据的字符集(3.4节)时,与一些介质类型一起使用。当发送方没有显式给出字符参数时,HTTP在接收时将"text"的介质子类型定义为缺省值"ISO-8859-1"。"ISO-8859-1"字符集或其子集以外的数据必须要标记其相应的字符集值,这