私はGET
、ブラウザからHTTPリクエストを受け取り、正しいWebサイトにクエリを実行し、データ(html、css、photos)をクライアントに返すPythonの単純なプロキシに取り組んでいます。私はそれを機能させていますが、外部Webサーバーからデータを読み戻し、それをクライアントに送り返すのに途方もない時間がかかります。以下は(私が思うに)関連するコードです:
tempSocket.send(requestToWebpage)
tempList = []
while 1:
print "waiting for data from website..."
data = tempSocket.recv(bufferSize)
if not data:
break
else:
tempList.append(data)
tempResponse = ''.join(tempList)
print "closing temp socket..."
tempSocket.close()
splitResponse = tempResponse.partition("\r\n")
response = splitResponse[0] + "\r\n" + "Proxy-connection: close\r\n" + splitResponse[2]
print "sending results back..."
newConnection.send(response)
newConnection.close()
プロキシは、Windows 7 64ビットである自分のマシン(クライアントブラウザーと同様)で実行されています。私はインターネットへのまともな無線接続を持っています。現在、各GETリクエストの結果を受信してクライアントに送信するには、数分以上かかります。印刷ステートメントを見ると、ほとんどの時間がwhileループ(特に最後のループ)に費やされているように見えますが、他の印刷メッセージも表示されるまでに思ったよりも時間がかかります。
何が起こっているのかについてのアイデアや速度を改善するための提案はありますか?