ソケットで HTTP 応答をリッスンする Python アプリケーションを作成しようとしています。これにはhttp-parserを使用しています。これが私のコードです:
#!/usr/bin/env python
import socket
from http_parser.http import HttpStream
from http_parser.reader import SocketReader
from http_parser.util import b
def main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 7000))
s.listen(5)
try:
while True:
p = HttpStream(SocketReader(s))
finally:
s.close()
if __name__ == "__main__":
main()
2 つの質問があります。
- これはこれを行うための最良の方法ですか?リクエストを送信してからレスポンスをリッスンしたくないことに注意してください。このスクリプトを実行しているボックスにすべての応答をリダイレクトするリダイレクト メカニズムが必要です。
- これをどのようにテストすればよいですか?HTTP 応答をモックできるツールはありますか?
編集 私がやろうとしているのはこれです.3つのボックスがあり、Apacheを一度実行し、1つはこのスクリプトを実行し、もう1つはクライアントです。クライアントが Apache に接続して応答を返すと、このボックスに応答を転送しています。したがって、このスクリプトでは、HTTP 応答をリッスンしようとしています。
トポロジ ここに私のトポロジがあります: サーバー <----> スイッチ 1 <-----> スイッチ 2 <-----> ボックス 1 と 2 最初に、ボックス 1 がサーバーに接続し、要求を送信します。2 番目のスイッチがサーバーから応答を受信すると、それをボックス 1 とボックス 2 の両方にフォークします。