サーバーのセットアップとブラウザのチェック
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
class customHTTPServer(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write('<HTML><body>Get!</body></HTML>')
        return
server = HTTPServer(('',8080),customHTTPServer)
print 'server started at port 8080'
server.serve_forever()
ブラウザでに移動するhttp://localhost:8080と、予想されるGet!.
予期しない観測
テスト 1 :
サーバーでさまざまなステータスコードを使用してテストしました。次のステータス コードを試しました: 301、302、400、402、403、404、405、406、407、408、418、500および。501502504505511
(Q1) 奇妙なことに、異なるステータス コード ( を除く407) を使用すると、ステータス コード を使用していたときと同じ動作になります200。何故ですか?
テスト 2
次に、最初のテストでテストしたすべての異なるステータス コードをに置き換えましself.wfile.write('<HTML><body>Get!</body></HTML>')
た。self.wfile.write('')ステータス コードを使用すると、、、、、403またはブラウザに特定404のブラウザメッセージが表示されるようになりました (、、... )。500501502504505403 Forbidden404 not found
(Q2) これらのステータス コードを使用する特定のブラウザ メッセージのみを受け取り、他のステータス コードを使用しないのはなぜですか?
概要
私は 3 種類の行動を区別できます。
- ステータス コード
301,302,400,402,405,406,またはを使用しても408、空の文字列を送信するか空でない文字列を送信するかに関係なく、ステータス コードを使用する場合と違いはありません。418511200 - ステータス コード、、、、、またはを使用すると
403、ブラウザに特定のブラウザ メッセージが作成されますが、空の文字列が送信された場合のみです。404500501502504505 - ステータス コードを使用すると、空の文字列または空でない文字列を送信しているかどうかに関係なく
407、特定のブラウザ メッセージ (エラーを表示) が返されます。323