HTTP代理服务器是否修改请求数据包?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP代理服务器是否修改请求数据包?相关的知识,希望对你有一定的参考价值。
是否在代理服务器转发到服务器之前,是否向HTTP请求添加或修改了任何请求标头?
如果是,是对相同的数据包进行了更改,还是用于创建带有修改的新请求数据包的内容?
答案
有几种不同类型的代理服务器。因为您已经提到了请求标头,我将假设您正在谈论HTTP代理服务器,它转发HTTP请求,而不是数据包。
注意:在HTTPS requests(通过CONNECT
的TLS / SSL)的特殊情况下,代理服务器将只转发TCP数据包的内容(并且除非充当man-in-the-middle代理,否则无法检查数据包)。
当然这取决于代理软件及其配置,但HTTP代理预计将遵循W3C Guidelines for Web Content Transformation Proxies,其中陈述了许多内容,但最相关的是:
- 除了在
HEAD
和GET
代理之间进行转换之外,代理人不得更改请求方法。 - 如果请求包含
Cache-Control: no-transform
指令,则代理不得更改请求,除了遵守RFC 2616 HTTP部分第14.9.5节和第13.5.2节中定义的透明HTTP行为,并添加4.1.6 Additional HTTP Header Fields中描述的头字段。 - 除了RFC 2616 HTTP代理所需的修改之外,不应修改除
User-Agent
,Accept
,Accept-Charset
,Accept-Encoding
和Accept-Language
头字段之外的头字段的值,并且不得删除头字段。 - 代理应将请求的发起者的IP地址添加到
X-Forwarded-For
HTTP头字段中逗号分隔列表的末尾。 - 代理必须(根据RFC 2616)包含
Via
HTTP头字段。
总之,您通常可以期望这些HTTP标头由符合标准的代理更改/添加:
User-Agent
Accept
Accept-Charset
Accept-Encoding
Accept-Language
X-Forwarded-For
Via
以上是关于HTTP代理服务器是否修改请求数据包?的主要内容,如果未能解决你的问题,请参考以下文章