是否可以将用户的HTTP请求修改为
www.example.com/options
而不是
www.example.com/options_and_params
我的情况是大约有30000个用户连接到我公司的网络骨干网,我想在骨干交换机和Radware LoadProof之间添加一个或多个服务器(我目前正在处理的代码)来实现这项工作。
在谷歌搜索过夜之后,我没有领导,只有一些问题:
这是我第一次进行网络编程或数据包处理开发。任何建议都表示赞赏。
答案 0 :(得分:1)
这取决于您是在执行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数据包(实际上,两个TCP数据包的大小)。
答案 1 :(得分:0)
如果我的问题是正确的,那么这可能是通过像nginx这样的快速反向代理完成的。