カテゴリ: Go言語 更新日: 2025/11/08

Go言語のWebサーバーを簡単に作成するサンプルコード解説

Go言語のWebサーバーを簡単に作成するサンプルコード解説
Go言語のWebサーバーを簡単に作成するサンプルコード解説

先生と生徒の会話形式で理解しよう

生徒

「先生、Go言語で簡単にWebサーバーを作ることはできますか?」

先生

「もちろんできます。Goは標準ライブラリにnet/httpが用意されているので、少ないコードでWebサーバーを立ち上げられます。」

生徒

「具体的にどんなコードになるんですか?」

先生

「それでは、基本的なサンプルを使って説明しますね。」

1. Go言語でWebサーバーを作る基本

1. Go言語でWebサーバーを作る基本
1. Go言語でWebサーバーを作る基本

GoでWebサーバーを作るためには、http.HandleFuncを使ってルートパスと処理を紐づけ、http.ListenAndServeでサーバーを起動します。これだけでブラウザからアクセスできるサーバーが完成します。


package main

import (
    "fmt"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "こんにちは、Go言語のWebサーバーです!")
}

func main() {
    http.HandleFunc("/", helloHandler)
    fmt.Println("サーバーを起動します。ポート:8080")
    http.ListenAndServe(":8080", nil)
}

このコードでは、ブラウザでhttp://localhost:8080にアクセスすると、「こんにちは、Go言語のWebサーバーです!」という文字が表示されます。非常にシンプルですが、基本のWebサーバーとして動作します。

2. ルート以外のページも作れる

2. ルート以外のページも作れる
2. ルート以外のページも作れる

Webサイトでは複数のページを持つことが多いですが、Goではルートごとに処理を簡単に追加できます。


func aboutHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "これはGo言語の紹介ページです。")
}

func main() {
    http.HandleFunc("/", helloHandler)
    http.HandleFunc("/about", aboutHandler)
    fmt.Println("サーバーを起動します。ポート:8080")
    http.ListenAndServe(":8080", nil)
}

このように/aboutのURLにアクセスすると、別のページ内容を表示できます。ルーティングを簡単に追加できるのがGoの特徴です。

3. POSTリクエストやフォームデータの処理

3. POSTリクエストやフォームデータの処理
3. POSTリクエストやフォームデータの処理

Webアプリケーションではユーザーがフォームを送信するケースが多いです。Goではr.Methodでリクエストの種類を確認し、r.FormValueでフォームデータを取得します。


func formHandler(w http.ResponseWriter, r *http.Request) {
    if r.Method == "POST" {
        r.ParseForm()
        name := r.FormValue("name")
        fmt.Fprintf(w, "送信された名前: %s", name)
    } else {
        fmt.Fprintf(w, "<form method='post'><input name='name'><input type='submit'></form>")
    }
}

func main() {
    http.HandleFunc("/form", formHandler)
    http.ListenAndServe(":8080", nil)
}

このコードでは、ブラウザで/formにアクセスするとフォームが表示され、入力後に送信するとサーバー側でデータを受け取れます。

4. Webサーバー作成のポイント

4. Webサーバー作成のポイント
4. Webサーバー作成のポイント
  • Goの標準ライブラリだけで簡単にWebサーバーを構築可能。
  • http.HandleFuncでURLごとに処理を紐づける。
  • http.ListenAndServeでサーバーを起動、ポート番号を指定する。
  • フォームやPOSTリクエストもr.FormValueで簡単に扱える。
  • 開発中はlocalhostで確認、公開する場合はサーバーやクラウド環境が必要。

これらのポイントを押さえることで、Go言語でシンプルなWebサーバーを作り、さらにページ追加やフォーム処理などを応用できるようになります。

カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Kotlin・Go・Swift記事の人気No3
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Kotlin・Go・Swift記事の人気No4
Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう
No.5
Kotlin・Go・Swift記事の人気No5
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinのコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.8
Kotlin・Go・Swift記事の人気No8
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎