Go言語でWebアプリを始めよう!標準パッケージnet/httpの基本
生徒
「Go言語でWebアプリって簡単に作れるんですか?」
先生
「はい、Go言語には標準でnet/httpというWebサーバーを扱うパッケージが用意されています。」
生徒
「パッケージって何ですか?」
先生
「パッケージとは、便利な機能をまとめた箱のようなものです。net/httpを使えば、HTTP通信やWebページの表示が簡単に行えます。」
生徒
「具体的にはどんなコードでWebアプリを作れるんですか?」
先生
「それでは、基本的な使い方を順番に見ていきましょう!」
1. HTTPサーバーを立ち上げる基本
Go言語では、http.ListenAndServe関数を使ってWebサーバーを立ち上げます。これは、指定したポート番号でHTTPリクエストを待ち受ける処理です。
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, Go Web!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
2. ハンドラー関数とは?
ハンドラー関数とは、HTTPリクエストを受け取ったときに実行される関数です。引数としてhttp.ResponseWriterと*http.Requestを受け取り、ブラウザに表示する内容を返す役割があります。
この関数をhttp.HandleFuncでルートに紐付けることで、特定のURLにアクセスしたときに指定した処理が実行されます。
3. ポート番号とListenAndServe
Webサーバーは、コンピュータ上の特定の番号(ポート番号)で通信を待ち受けます。上の例では8080番ポートを使っています。http.ListenAndServe(":8080", nil)でサーバーを起動すると、ブラウザからこのポートにアクセスしてページを見ることができます。
ポート番号は他のアプリケーションと被らない番号を選ぶ必要があります。初心者は8080や3000番などがよく使われます。
4. 複数のルートを作る
Go言語では、複数のURLに対して異なる処理を割り当てることも簡単です。例えば、「/」と「/about」で表示を変えることができます。
package main
import (
"fmt"
"net/http"
)
func homeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "ホームページ")
}
func aboutHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "このサイトについて")
}
func main() {
http.HandleFunc("/", homeHandler)
http.HandleFunc("/about", aboutHandler)
http.ListenAndServe(":8080", nil)
}
5. HTTPリクエストの種類
HTTPリクエストには主にGETとPOSTがあります。GETは情報を取得するリクエスト、POSTは情報を送信するリクエストです。ハンドラー関数内でr.Methodを使うことで、リクエストの種類を判別できます。
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
fmt.Fprintln(w, "GETリクエストです")
} else if r.Method == "POST" {
fmt.Fprintln(w, "POSTリクエストです")
}
}
6. Go言語Webアプリのポイント
- 標準パッケージ
net/httpだけで簡単にWebサーバーを作れる - ハンドラー関数でURLごとの処理を分ける
- HTTPリクエストの種類を判別して処理を分岐できる
- ポート番号に注意してサーバーを起動する
これらの基本を押さえれば、Go言語でWebアプリケーションを作り始めることができます。まずはシンプルなWebページから試して、徐々に機能を増やしていくと理解しやすいです。
まとめ
Go言語とnet/httpで学ぶWebアプリ開発の基礎
今回の記事では、Go言語を使ってWebアプリケーションを作るための第一歩として、標準パッケージであるnet/httpの基本的な使い方を学びました。
Go言語はシンプルで読みやすい構文が特徴で、Webサーバー機能も標準パッケージとして最初から用意されています。
そのため、外部ライブラリを追加しなくても、HTTP通信を扱うWebアプリをすぐに作り始めることができます。
プログラミング初心者にとって、環境構築や設定が複雑になりにくい点は大きな魅力と言えるでしょう。
特にhttp.ListenAndServeを使ったHTTPサーバーの起動は、Go言語でのWebアプリ開発を理解する上で欠かせない基本です。
ポート番号を指定してサーバーを立ち上げ、ブラウザからアクセスすることで、自分が書いたコードがWebページとして表示される体験は、学習のモチベーションを大きく高めてくれます。
この仕組みを理解することで、Go言語によるWebアプリの全体像が見えてきます。
ハンドラー関数とルーティングの考え方
Go言語のWebアプリでは、ハンドラー関数が非常に重要な役割を果たします。
ハンドラー関数は、HTTPリクエストを受け取ったときに実行される処理であり、ブラウザに返すレスポンス内容を決定します。
http.ResponseWriterと*http.Requestを引数に取ることで、表示内容の制御やリクエスト情報の取得が可能になります。
また、http.HandleFuncを使ってURLとハンドラー関数を紐付けることで、複数のページを持つWebアプリを簡単に作成できます。
ルートごとに処理を分ける設計は、Webアプリ開発における基本的な考え方であり、後から機能を追加するときにも理解しやすくなります。
小規模なアプリであっても、この段階からルーティングを意識しておくことは、今後の学習に役立ちます。
func contactHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "お問い合わせページ")
}
func main() {
http.HandleFunc("/contact", contactHandler)
http.ListenAndServe(":8080", nil)
}
このように、URLごとに役割を分けたハンドラー関数を用意することで、Webアプリの構造が整理され、読みやすく保守しやすいコードになります。 Go言語でWebアプリを開発する際は、処理の流れを意識しながら関数を分けることが大切です。
HTTPリクエストとWebアプリの基本動作
Webアプリケーションは、HTTPリクエストとHTTPレスポンスのやり取りによって成り立っています。
記事で紹介したGETやPOSTといったリクエストの種類を理解することで、Webアプリがどのように動作しているのかが分かるようになります。
Go言語では、r.Methodを使ってリクエストの種類を判別できるため、フォーム送信やデータ処理の基礎も自然に学べます。
こうした基礎知識は、今後テンプレートエンジンやデータベース連携、API開発へと進む際の土台となります。 net/httpの基本をしっかり理解しておくことで、より実践的なGo言語のWebアプリ開発にもスムーズに取り組めるようになります。
小さく作って理解を深めることが大切
Go言語でWebアプリを学ぶ際は、最初から複雑な機能を作ろうとせず、シンプルなサーバーや簡単なページ表示から始めるのがおすすめです。 小さな成功体験を積み重ねることで、HTTPの仕組みやGo言語の書き方が自然と身についていきます。 今回学んだnet/httpの基本は、Go言語でWebアプリを開発する上での大切な第一歩です。
生徒
「Go言語って難しそうなイメージがありましたけど、net/httpを使うと意外と簡単にWebアプリが作れるんですね。」
先生
「そうですね。Go言語は標準パッケージが充実しているので、Webサーバーもシンプルなコードで書けます。」
生徒
「ハンドラー関数とURLの関係が分かってきて、Webページの仕組みが少し理解できました。」
先生
「その理解はとても大切です。URLと処理を結びつける考え方は、どんなWebアプリでも基本になります。」
生徒
「これからフォームやデータの送信も試してみたいです。」
先生
「ぜひ挑戦してみてください。今回のnet/httpの基礎が、次のステップへの土台になりますよ。」
【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導
「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。
本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。
具体的な開発内容と環境
【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。
【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。
この60分で得られる3つの理解
「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。
データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。
ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。
※本講座は、将来的にバックエンドエンジニアやクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。
初めてのGo言語を一緒に学びましょう!