非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Go言語でたったの12行でWebサーバーが立てられる!

   

Go言語で簡単にWebサーバーが立てられることを知ってちょっと試してみました。

結論から言うと思った以上に超簡単でした。ソースコードはたった12行で済みます。もうこれ、Apatchとかいらないんじゃないかって思うレベルです。

Go言語すげー。

ソースコード

こちらがソースコードです。ネットで普通に転がっているのでそれをコピペしただけです。9行目と10行目は同じ構文を2行に分けて書いただけなので実質は11行のソースコードです。たったこれだけ。

package main

import (
  "log"
  "net/http"
)

func main() {
  http.Handle("/", http.StripPrefix("/",
    http.FileServer(http.Dir("/Users/.../WebServer") )))
  log.Fatal(http.ListenAndServe(":8080", nil))
}
 

 

10行目の、http.Dir(“/Users/…/WebServer”) の部分は、後述するHTMLファイル(index.html)の置き場です。

広告

HTMLファイルも用意する

上のソースコードはあくまでサーバーを立ち上げるためのもので、ブラウザ上で表示させるページは別途必要です。

とりあえず、テスト用に以下の簡単なHTMLを用意しました。ファイル名はindex.htmlです。

<!DOCTYPE html>
<html>
<body>
  <h1>Hello World!</h1>
</body>
</html>
 

 

実行してみる

上記プログラム(ファイル名:WebServer.go)を以下のコマンドで実行します。

go run WebServer.go
 

 

すると、Windowsの場合、以下のメッセージが現れます。「アクセスを許可する」を押しましょう。

 

で、ブラウザで、http://localhost:8080/を開くと、以下の通りindex.htmlのページが開きました。

 

あまりにも簡単でびっくりしました。他の言語でここまで手軽にサーバー作れるのってあるんでしょうか。JavaとかC#とかだったら結構面倒くさそう。

今回はサーバーを立ち上げただけですが、Go言語ではページを動的に作ることもできるみたいですね。テンプレートを使うことも可能みたいです。いずれ紹介します。

広告

 - Go言語