SimpleHTTPRequestHandler で HTTP/1.1 を使用すると、他のリソースを取り込むページをロードすると、2 番目のリソースの後でハングします。
ここに小さな再現機があります:
from SimpleHTTPServer import SimpleHTTPRequestHandler
from BaseHTTPServer import HTTPServer
class MyRequestHandler(SimpleHTTPRequestHandler):
#protocol_version = "HTTP/1.0" # works
protocol_version = "HTTP/1.1" # hangs
server = HTTPServer(("localhost", 7080), MyRequestHandler)
server.serve_forever()
上記のサーバーでは、ブラウザがロードしようとすると、次の HTML がハングしますb.png
。
<html>
<body>
<img src="a.png">
<img src="b.png">
</body>
</html>
SimpleHTTPServer モジュールで HTTP/1.1 を使用できますか? ForkingMixIn または ThreadingMixIn をサーバーに追加すると処理が進むようになりますが、これらの mixin がなくても可能であるように思われます。