一些中介包括了转换消息和他们的负载的特性。例如,代理可能转换图像格式以减少存储空间或者在一个慢的连接上减少流量。但是,如果将这些转换应用于关键应用(如医疗成像或科学数据分析)的有效载荷,特别是在使用完整性检查或数字签名确保接收到的有效载荷与原始数据相同时,可能会出现操作问题。

如果一个HTTP到HTTP的代理如果被设计或配置去以一个有语义的方式修改消息(即,突破通常的HTTP处理要求,以一种可能对源发送者或下游接收者重要的方式改变消息的修改),那么它被称为“转换代理”。例如,一个转换代理可能扮演一个共享注释服务器(修改响应以包含一个本地注释数据库的引用),一个恶意软件过滤器,一个格式转码器,或者一个隐私过滤器。无论客户(或客户组织)选择代理,这种转换都被认为是需要的。

如果代理接受一个请求目标带有一个主机名,那个主机名不是一个完全合格的域名,它可能在转发请求时添加它字节的域名到它接受到的主机名。如果请求目标包含完全合格的域名,代理不得改变主机名。

当代理转发消息到下一个入站服务器的时候,代理不得修改接收到的请求目标的“绝对路径”和“查询”部分,除了上面个提到的用“/”和“*”代替空路径。

代理可能通过应用修改消息体或者移除转换编码。

代理不得转换一个包含无转换缓存控制指令(RFC7234的5.2节)的消息的负载(RFC7231的3.3节)。

代理可以转换一个不包含无转换缓存控制指令的消息的负载。如果转换负载的代理必须以告警编码214(转换已应用)添加一个告警头字段,如果一个不在消息中(查看RFC7234的5.5节)。转换响应为200的负载的代理可以进一步的通知下游接收者转换已经被应用,通过改变响应码为203(非权威信息)(RFC7231的6.3.4节)。

代理不应该修改提供关于通讯链的端点的头字段,资源状态,或者被选择的表示(除了负载之外),除非字段的定义特别允许这种修改或者处于隐私和安全考虑修改被认为是必要的。

results matching ""

    No results matching ""