サーバーのセットアップとブラウザのチェック
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
および。501
502
504
505
511
(Q1) 奇妙なことに、異なるステータス コード ( を除く407
) を使用すると、ステータス コード を使用していたときと同じ動作になります200
。何故ですか?
テスト 2
次に、最初のテストでテストしたすべての異なるステータス コードをに置き換えましself.wfile.write('<HTML><body>Get!</body></HTML>')
た。self.wfile.write('')
ステータス コードを使用すると、、、、、403
またはブラウザに特定404
のブラウザメッセージが表示されるようになりました (、、... )。500
501
502
504
505
403 Forbidden
404 not found
(Q2) これらのステータス コードを使用する特定のブラウザ メッセージのみを受け取り、他のステータス コードを使用しないのはなぜですか?
概要
私は 3 種類の行動を区別できます。
- ステータス コード
301
,302
,400
,402
,405
,406
,またはを使用しても408
、空の文字列を送信するか空でない文字列を送信するかに関係なく、ステータス コードを使用する場合と違いはありません。418
511
200
- ステータス コード、、、、、またはを使用すると
403
、ブラウザに特定のブラウザ メッセージが作成されますが、空の文字列が送信された場合のみです。404
500
501
502
504
505
- ステータス コードを使用すると、空の文字列または空でない文字列を送信しているかどうかに関係なく
407
、特定のブラウザ メッセージ (エラーを表示) が返されます。323