net/httpパッケージを使ったWebサーバー

こんにちは、daihaseです。

今日はGoを使った最も簡単なWebサーバーの構築を説明したいと思います。PHP, Java, Ruby… サーバーサイドを実装する言語は多くありますが、このGoを使ったWebサーバーの実装はその中でも最も簡単と言えるくらいです。

Goは非常に強力な言語で、標準パッケージだけでも十分Webサービスを作れてしまいます。今回はWebサーバーとして動かすためにその中の1つ、net/httpについて紹介したいと思います。

※Macなど、クライアント側に予めGoの実行環境が整っている前提です。

net/httpパッケージ

HTTPサーバーとHTTPクライアントを実装するための必要な機能をパッケージ化したものです。この標準パッケージを実装するコード上でインポートしてやるだけで、後は決まった書き方をしてやるだけで簡単にWebサーバーを立てることが出来るのです。

それでは早速実際のコードを見てみましょう。(httpSample.goとファイル名をつけています)

はい、たったこれだけでWebサーバーとして動いちゃいます。
コードとしては以下のようなことを行なっています。

  1. /hello というルートを生成します。
  2. MyHandleFuncというハンドラーを生成します。
  3. リクエストがルート(/hello)に来るたびにハンドラ関数が実装されます。
  4. Hello, World! という文字列を表示するレスポンスが返ってきます。
  5. ポート8000でWebサーバーを立ち上げます。その際エラーがあればListenAndServeがそのログを返します。

パッとこんな感じで処理が行われます。

実際にこちらを実行してみましょう。

特にターミナル上ではメッセージを出すようにもしてないので、何も動いてないようですが実際はサーバーが立ち上がっています。ブラウザで以下のURLを入力してみましょう。

ブラウザの画面に「hello, World!」と文字が表示されたはずです。

どうでしょう、呆気にとられるくらい簡単にWebサーバーが立ち上がったかと思います。

次回、もう少しこのHTTPサーバーを構成する部分を掘り下げていけたらと思います。

それでは良い開発ライフを〜

スポンサーリンク
336 x 280 レクタングル(大)
336 x 280 レクタングル(大)