基本的な HTTP 処理のデモンストレーションを行うために、私は本当に最小限の HTTP サーバーのデモンストレーションを定義しようとしています。私は、もう少し「ダム」しようとしている優れたwerkzeugライブラリを使用しています。私の現在のサーバーはやりすぎです:)
#!/usr/bin/env python2.7
# encoding: utf-8
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('127.0.0.1', 6969, application=None)
run_simple
すでにあまりにも多くのことを処理しています。このサーバーにリクエストを行うと、
→ http GET http://127.0.0.1:6969/
我々が得る:
HTTP/1.0 500 INTERNAL SERVER ERROR
Content-Type: text/html
Content-Length: 291
Server: Werkzeug/0.8.3 Python/2.7.1
Date: Tue, 08 Jan 2013 07:45:46 GMT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was
unable to complete your request. Either the server
is overloaded or there is an error in the application.</p>
最小限に抑えたいと思っています。そして、キャッチオールとして 500 Internal Server Error を使用してください。理想的には、サーバーからの応答は、すべての HTTP 要求に対して 500 である必要があります。サーバーは要求について何も知らないためです。
HTTP/1.0 500 INTERNAL SERVER ERROR
次に、第2段階で、おそらく追加します
HTTP/1.0 500 INTERNAL SERVER ERROR
Content-Type: text/plain
Internal Server Error
次に、リクエストを理解して処理を開始します。目標は、その過程で教育的であることです。デフォルトの回答を引き継ぐための提案は大歓迎です。
更新 001
と:
#!/usr/bin/env python2.7
# encoding: utf-8
from werkzeug.wrappers import BaseResponse as Response
def application(environ, start_response):
response = Response('Internal Server Error', status=500)
return response(environ, start_response)
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('127.0.0.1', 6969, application)
戻ってきます
HTTP/1.0 500 INTERNAL SERVER ERROR
Content-Type: text/plain; charset=utf-8
Content-Length: 21
Server: Werkzeug/0.8.3 Python/2.7.1
Date: Tue, 08 Jan 2013 07:55:10 GMT
Internal Server Error
オプションのサーバーと日付を少なくとも削除したい。