HTTPサーバー

クラス関係図

HTTP デフォルトサーバークラス関係図

HttpRequest

HTTP要求のヘッダ情報を格納したクラス。
method
リクエストメソッド。"GET", "POST" などの文字列。
path
リクエストパス。URL符号の解析や QueryString の分離は行われていない。
version
リクエストバージョン。"HTTP/1.1" などの文字列。
uri
protocol, host, port, path, querystring, hash メンバを持つ HttpUri 型データ。
リクエストパスやリクエストホストを分解したもので url エンコードの復号はされていない。

HttpResponse

HTTP応答のヘッダ情報を格納したクラス。onHttpRequest() 時に受け取り、必要ならば内容を変更する。

status
HTTP 応答ステータスを十進数表現とみなした時の整数値。例えば "200" 正常応答の場合は 200 という数値になる。

HttpChannel

通信用のクラス。HTTP応答を送信する時に使う。

Buffer* beginResponse(size_t)
応答を始める。応答の本文は返り値の Buffer に書きこむ。
void endResponse()
応答の書き込みを完了したら呼ぶ。

HttpHandler

イベントハンドラクラス。HTTP受信時にこのクラスの各種ハンドル関数が呼ばれる。

void onHttpRequestHeader(HttpChannel*, const HttpRequest*)
リクエストヘッダの全体を受け取った後に呼ばれる。実装で必要な初期化や、ロングポーリングでのタイムアウト指定などを行う。
void onHttpRequest(HttpChannel*, const HttpRequest*, Buffer*, HttpResponse*)
HTTPリクエスト全体を受け取った後に呼ばれる。リクエストヘッダは HttpRequest に、リクエストボディは Buffer に入っている。
アプリケーションは HttpChannel を用いて応答する。詳しくは チュートリアルを参照。
void onHttpResponse(HttpChannel*, const HttpResponse*, bool succeed)
HTTP応答の完了時、または onHttpRequest()呼びだし後~onHttpResponse()呼びだし前の間に切断された時に呼ばれる。