Network programming 动态修改HTTP url
是否可以将用户的HTTP请求修改为Network programming 动态修改HTTP url,network-programming,packet-injection,Network Programming,Packet Injection,是否可以将用户的HTTP请求修改为 www.example.com/options 而不是 www.example.com/options_and_params 我的设想是,大约30000名用户连接到我公司的网络主干,我想在主干交换机和Radware LoadProof之间添加一个或多个服务器(使用我目前正在处理的代码),以实现这项工作 在谷歌搜索了一整夜后,我没有线索,但还有一些问题: 我不需要通过网络截获每个数据包。有了iptables之类的帮助,我可以过滤出我想要的包。我在使用ipta
www.example.com/options
而不是
www.example.com/options_and_params
我的设想是,大约30000名用户连接到我公司的网络主干,我想在主干交换机和Radware LoadProof之间添加一个或多个服务器(使用我目前正在处理的代码),以实现这项工作
在谷歌搜索了一整夜后,我没有线索,但还有一些问题:
这是我第一次做网络编程或数据包处理开发。任何建议都将不胜感激。如果我没有弄错您的问题,那么这可能可以通过像nginx这样的快速反向代理来实现。这取决于您是在执行HTTP/1.0还是HTTP/1.1,以及您是需要修改初始请求还是在单个HTTP 1.1会话中修改所有请求 如果您拥有数据包,并且可以在发送之前对其进行修改,并且您正试图仅修改请求,那么给定一个典型数据包的长度以及HTTP请求流中URL的位置(非常接近开始处)事实上,它将是TCP流中发送的第一个内容,我认为您可以相当安全地假设它将出现在发送的第一个数据包的前N个字节中,因此不会被拆分为多个数据包 但是,如果这是一个HTTP/1.1流,那么将通过同一个TCP连接发送多个请求,在这种情况下,在将来的请求中,URL很可能被拆分为两个TCP数据包 如果您可以强制HTTP/1.0,或者如果您将初始或所有请求修改为HTTP/1.0,那么您可以非常确定第一个数据包将对应于TCP流的第一个数据包,并且您不太可能看到URL在多个数据包上被拆分,意味着没有重建和能力,只是做一个替换 然而,这将以新的TCP连接为代价,这是非常低效的
如果您不这样做,并将其保留为HTTP/1.1,则URL可能在将来的任何请求中处于任意点,因此会拆分为多个TCP数据包(根据URL的大小,实际上是两个数据包)。在服务器级别上不可能使用简单的重写规则吗?它们应该适合添加参数。请参阅的
自动应答器
。抱歉,你可以使用它的c#库。@arkascha重写规则不能满足我的需要。该网站不在我的公司内运行,我无法控制它。请注意不要提出任何法律问题。拦截和修改他人的通讯可以很快被视为严重犯罪……呼吁透明。不要无形中扮演中间人。返回HTTP 302重定向。这也让你的工作更轻松。