1

私の問題...

  1. ローカルネットワークがあります。
  2. Ubuntu Server(12.04.2)を使用して仮想マシンでpython basehttpserverを実行します。

ブラウザー リンク 192.168.101.3:8081/index.html で開くと、要求が 10 秒間処理されるのはなぜですか??

例 basehttpserver

class ReqHandler( BaseHTTPServer.BaseHTTPRequestHandler):
    def __init__(self, request, client_address, server):
        BaseHTTPServer.BaseHTTPRequestHandler.__init__( self, request, client_address, server )

    def do_GET(self ):
        self.performReq(self.path.decode('utf-8'))  

    def performReq (self, req ):
        curDir = os.getcwd()
        """ Performing http request """
        if req == '/' :
            self.path = '/index.html'
        fname  = curDir + '/' + self.path[1:]   
        fname = unquote(fname).decode('utf8')
        try:
            self.send_response(200,"Ok!")
            self.send_header('Content', 'text/xml; charset=UTF-8' )
            self.end_headers()
            f = open(fname, 'rb')
            self.wfile.write(f.read())  
            f.close()
            print 'file '+fname+" Ok"   

        except IOError:
            print 'no file '+fname  
            self.send_error(404)

def run(server_class=BaseHTTPServer.HTTPServer):
    server_address = ('', 8081)
    server = server_class(server_address, ReqHandler)
    print('server ok!')
    server.serve_forever()

サーバーからのスクリーンショット ログサーバー

ubuntuサーバー192.168.101.3を備えたIPマシン

私の英語でごめんなさい。

私の解決策 - ReqHandler に次のメソッドを追加しました

def log_message(self,fmt, *args):
    print fmt%args
4

1 に答える 1

3

インターネットに接続されていないローカル ネットワークで Web アプリケーションをテストすると、これらの遅延が発生する可能性があります。これは、BaseHTTPServer がデフォルトでクライアント IP のルックアップを実行しているためです (ログの目的で)。このハックを確認してください: http://bugs.python.org/issue6085

于 2014-01-27T15:21:14.910 に答える