[Dart]HTTPサーバーの作り方
HTTPサーバーは、WebクライアントとHTTP(Hyper Text Transfer Protocol)によって情報通信をするプログラムのことで、Webサーバーとも言われます。
HTTPの定義は、以下となります。
Apache HTTPサーバーなど、オープンソースのソフトウェアをダウンロードしてHTTPサーバーを導入することはできますが、今回はDart言語を使ったHTTPサーバーの作り方をご紹介します。
コード例
DartでHTTPサーバーを作るためには、dart:ioライブラリが使えます。
このライブラリは、ファイル、ソケット、HTTPなどのI/O機能を提供しています。
HTTPサーバーを作るファイルに以下を追加
import 'dart:io';
コード全体はこちら
/// /project/lib/test.dart
import 'dart:io';
void main() async {
await httpServer();
}
Future<void> httpServer() async {
var server = await HttpServer.bind(
'127.0.0.1',
8080,
);
await for (HttpRequest request in server) {
request.response
..write('Hello!')
..close();
}
}
main()
HTTPサーバーを起動するhttpServer()を実行します。
httpServer()
serverという変数にHttpServer.bind( '127.0.0.1', 8080)を渡しています。
HttpServer.bind()
HttpServer.bind('指定したアドレス', 'ポート番号')を表しており、指定されたIPアドレス(ここでは127.0.0.1)とポート番号(ここでは8080)でHTTPサーバーを起動します。
await for (HttpRequest request in server){}
HTTPサーバーに新しいHTTPリクエストが来るたびに{}内を実行
await for (HttpRequest request in server) {
request.response
..write('Hello!')
..close();
}
request.response..write('Hello!')..close();
HttpResponseクラスのrequest.responseでHello!というHTTPレスポンスを返します。
ここまで書けた状態で、このtest.dartファイルがあるディレクトリ(例:cd lib)まで移動し、以下を実行するとHTTPサーバーが起動します。
$ cd lib
$ dart run test.dart
そしてPCのブラウザでhttp://127.0.0.1:8080/に接続し、アクセスすると「Hello!」というメッセージが表示されています。これでサーバー作成が成功しました。