私はPythonで自分のプロキシサーバーのコードを書いています。クライアントとターゲット サーバーからパケットを転送するコードは次のとおりです。
def _read_write(self):
if self.target:
pass
else:
domain, port = self.get_target_host()
self._connect_target(domain, port)
self.target.send(self.headers)
maxtimeout = self.timeout / 3
inputs = [self.client, self.target]
count = 0
try:
while 1:
count += 1
(recv, send, err) = select.select(inputs, [], inputs)
if err:
break
if recv:
for in_ in recv:
data = in_.recv(BUFFLEN)
if in_ is self.client:
out = self.target
else:
out = self.client
if data:
out.send(data)
count = 0
if count == maxtimeout:
break
except select.error:
print >> sys.stderr, "Error : Internal queue error\n", "Reason : Unknown"
各パケットはクライアントからサーバーに個別に転送されるため、転送されるデータを傍受し、画像、css などのリソースの URL をクライアントから最も近いサーバーの新しい URL に置き換えたいと考えています。これは正しい方法ですか?URLがパケットで区切られていると問題が発生すると思います。