RFC2935——InternetOpenTradingProtocol(IOTP)HTTPSupplementInternet开放贸易协议(IOTP)HTTP补充RFC文档中文翻译计划1组织:中国互动出版网()RFC文档中文翻译计划()E-mail:ouyang@china-pub.com译者:陈贵敏(efoxxxefoxxx@263.net)译文发布时间:2001-11-4版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。NetworkWorkingGroupD.EastlakeRequestforComments:2935MotorolaCategory:StandardsTrackC.SmithRoyalBankofCanadaSeptember2000Internet开放贸易协议(IOTP)HTTP补充(RFC2935——InternetOpenTradingProtocol(IOTP)HTTPSupplement)本备忘录的状态本文档定义了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。请参考最新版的“Internet正式协议标准”(STD1)来获得本协议的标准化程度和状态。本备忘录的发布不受任何限制。版权声明:Copyright(C)TheInternetSociety(2000).AllRightsReserved.摘要Internet开放贸易协议(IOTP)消息将以可扩展标记语言(XML)文档作为传输载体。就其本身而论,映象至传输层的目的是为了保证底层的XML文档在不同的层间正确地传输。此文档描述了超文本传输协议(HTTP),Versions1.0and1.1.的映象。RFC2935——InternetOpenTradingProtocol(IOTP)HTTPSupplementInternet开放贸易协议(IOTP)HTTP补充RFC文档中文翻译计划2目录1.介绍.........................................................................................................................................32.HTTP服务器和客户端..........................................................................................................33.HTTP网络位置......................................................................................................................34.客户.........................................................................................................................................34.1开启IOTP客户端和商业IOTP服务器34.2传送中的IOTP消息34.3中断一个IOTP交易45.开始交付处理器和递交器IOTP服务器...............................................................................56.安全考虑.................................................................................................................................67.IANA的考虑..........................................................................................................................68.参考.........................................................................................................................................79.作者地址.................................................................................................................................810.完整的版权声明...................................................................................................................8鸣谢...............................................................................................................................................9RFC2935——InternetOpenTradingProtocol(IOTP)HTTPSupplementInternet开放贸易协议(IOTP)HTTP补充RFC文档中文翻译计划31.介绍Internet开放贸易协议(IOTP)消息将以可扩展标记语言[XML]文档作为传输载体。就其本身而论,,映象至传输层的目的是为了保证底层的XML文档在不同的层间正确地传输。此文档描述了超文本传输协议(HTTP),Versions1.0and1.1的映象[RFCs1945,2616]。将来可能会有描述关于email(SMTP)、TCP、cableTV或者其它传输方面的IOTP文档。在本文档中的关键字“必须”,“决不要”,“必须的”,“将要”,“不会”,“应当”,“不应当”,“建议”,“可以”,和“可选的”将会在[RFC2119]文档中给予说明。2.HTTP服务器和客户端IOTP的结构以如下方式映象到HTTP的结构:商家、付款处理器、交货处理器,以及客户相关的交易方都由HTTP服务器代表。每一方都可以是由一台独立的服务器代表,也可以是以某种联接方式结合。客户角色由HTTP客户端代表。注意:一个商人也会充当消费者的职能,比如说他要储存电子货币。在这种情况下,商人作为一个组织而非单一的职能,需要一个HTTP客户端支持。3.HTTP网络位置包含在IOTP规格书中的网络位置皆为URIs(UniformResourceIdentifiers)[RFC2396]。如果必须要或者是要求使用安全连接的话,就必须用一个对HTTP服务器以及客户端都支持的安全通道。像SSLversion3或者TLS[RFC2246]都可以用作这种通道。4.客户在大多数环境中,客户的最初的媒介总是一个HTML浏览器。可是呢,现有的浏览器都没有提供足够的功能,来为客户充当媒介完成一次IOTP交易。这就带来了俩个必须满足的条件:RFC2935——InternetOpenTradingProtocol(IOTP)HTTPSupplementInternet开放贸易协议(IOTP)HTTP补充RFC文档中文翻译计划4一个开启IOTP客户端并控制权转交给IOTP客户端的方法,以及一个在IOTP交易结束后安全停止IOTP客户端并将控制权转交给HTML浏览器的方法。4.1开始IOTP客户端以及商业IOTP服务器在某些情况下,用户方的HTTP客户端会发送一个HTTP请求,这个请求被商业HTTP服务器解释为一个“IOTP启动请求”。比如说当你单击“付款”按钮时,就会达到这样的效果。这个消息就是某种形式的请求消息的“替身”,并且,商业服务器会以XML文档的形式对这个第一个IOTP消息作出响应。对所有IOTP消息的MIME协议格式为:“APPLICATION/IOTP”;然而,“APPLICATION/X-IOT”已经被应用于实验室和开发中了,这一点应该得到认可。要得到APPLICATION/IOTP的MIME协议格式的注册模板,请参见下面第7部分的内容。因为HTTP完全是二进制编码,所以不需要对要传输的内容进行传输编码。(参见[RFC2376]修订版,application/xml格式,它也有一些类似的考虑。)HTML浏览器会将这个HTTP响应解释为开启与MIME协议类型“APPLICATION/IOTP”相关的应用程序的一个响应,并把这个消息的内容发送给应用程序。就在这一时刻,IOTP客户端就会被启动,并获得第一个消息。IOTP消息的生存期是短暂的,因此,HTTP服务器应当避免将其响应放到缓存区中。在HTTPV1.0当中,我们可以使用“nocache”注记符来使响应不被放到缓存区中。而当我们使用的是SSL/TLS安全连接时,就可以不考虑这个问题,因为它不带有缓冲区;还有,在HTTPv1.1中HTTP发送请求也一样不用考虑缓冲区问题,因为在HTTPv1.1中发送请求是不会被放到缓冲区中的。4.2传送中的IOTP消息在一次交易中,先发送出去的IOTP消息中的数据必须要由IOTP客户端保留下来,这样做的目的是:(1)拷贝下来的数据作为后续IOTP消息的组成部分;(2)用于在后续IOTP消息中验证签名的计算;(3)在某些情况下,当请求没有得到响应而超时时需要重新发送;(4)在最新的IOTP版本中用作客户相关交易方的输入,等等……拷贝的具体方式由特定的IOTP交易决定。不管交易最终是失败、成功还是被取消,这些数据都必须保留到IOTP交易的最后,并且在交易之后,还要保留,直到交易的任何一方都不想再去查询它为止。IOTP消息包含了网络位置信息(比如说PayReqNetLocn),HTTP的网络位置包含有IOTP客户端要发送IOTP消息的目的地址的URIs。后面的IOTP消息(皆是XML文档)是通过使用HTTP的POST函数发送的。HTTP客户端必须要执行所有的HTTP的POST请求。XML文档必须通过一种与外部编码所兼容的方式来发送,当然,这种外部编码是符合XML[XML]规格的。4.3中止一个IOTP交易下面所讲述的内容,读者可以结合[RFC2801]文档来阅读。RFC2935——InternetOpenTradingProtocol(IOTP)HTTPSupplementInternet开放贸易协议(IOTP)HTTP补充RFC文档中文翻译计划5当出现以下情形时,一笔IOTP交易就算完成了:--当IOTP客户端由于某些原因决定放弃这笔IOTP交易,也可能是由于客户要撤销这笔交易,或者是在接收IOTP消息过程中出现错误的结果。或者当:--出现“超时”错误或者是连接失败,比如说,在用户定义的响应时间范围内,接收方没有收到对一个特定IOTP消息的响应(包括重发信息)。一个执行IOTP交易的IOTP客户端,此交易:--若成功完成(也就是说,没有接收到有HardError的错误块或者是取消块),它必须指示浏览器连向在协议选项组件中定义在SuccessNetLocn里面的网络位置,也就是说,让浏览器去对这个URL做一个HTTPGET请求。--若是因为收到一些错误交易块而使交易没有成功的话,它必须要将这些信息显示在错误消息中,