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

Go言語でPOSTリクエストを処理する方法とポイント

Go言語でPOSTリクエストを処理する方法とポイント
Go言語でPOSTリクエストを処理する方法とポイント

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

生徒

「先生、Go言語でフォームから送信されたPOSTリクエストはどうやって処理するんですか?」

先生

「POSTリクエストは、ユーザーがフォームに入力したデータをサーバーに送るときによく使われます。Goではhttp.Requestのメソッドを使って簡単にデータを取得できます。」

生徒

「GETリクエストとどう違うんですか?」

先生

「GETリクエストはURLにデータが付加されて送られるのに対して、POSTリクエストはHTTPの本文にデータが含まれます。つまりURLには表示されず、より安全に情報を送ることができます。」

生徒

「なるほど、パスワードのような情報もPOSTで送った方が安全なんですね!」

先生

「その通りです。では、実際にGoでPOSTリクエストを処理する基本を見ていきましょう。」

1. POSTリクエストの基本処理

1. POSTリクエストの基本処理
1. POSTリクエストの基本処理

Goでは、r.Methodを使ってリクエストの種類を確認し、POSTの場合に処理を行うことができます。フォームデータはr.FormValuer.ParseForm()を使って取得します。


package main

import (
    "fmt"
    "net/http"
)

func postHandler(w http.ResponseWriter, r *http.Request) {
    if r.Method == "POST" {
        r.ParseForm()
        username := r.FormValue("username")
        password := r.FormValue("password")
        fmt.Fprintf(w, "ユーザー名: %s, パスワード: %s", username, password)
    } else {
        w.WriteHeader(http.StatusMethodNotAllowed)
        fmt.Fprintf(w, "POSTメソッドのみ対応しています")
    }
}

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

この例では、ユーザー名とパスワードをフォームから受け取り、サーバー上で表示しています。POST以外のリクエストは拒否しています。

2. HTMLフォームとの連携

2. HTMLフォームとの連携
2. HTMLフォームとの連携

以下のHTMLフォームからデータを送信することで、先ほどのGoコードで受け取ることができます。


<form action="/login" method="post">
    <label for="username">ユーザー名:</label>
    <input type="text" id="username" name="username"><br>
    <label for="password">パスワード:</label>
    <input type="password" id="password" name="password"><br>
    <input type="submit" value="送信">
</form>

フォームのmethod="post"を指定することで、データがPOSTリクエストとしてサーバーに送信されます。

3. POSTリクエストを扱うポイント

3. POSTリクエストを扱うポイント
3. POSTリクエストを扱うポイント
  • POSTリクエストではr.ParseForm()を呼んでフォームデータを解析します。
  • ユーザーが入力するデータは信頼できないため、必ず入力チェックやサニタイズを行います。
  • 機密情報はHTTPS通信を使って送信することで安全性を高めます。
  • GETとPOSTを混同せず、用途に応じて使い分けることが重要です。
  • GoではFormValueを使うだけで、シンプルにフォームの値を取得できるため初心者でも扱いやすいです。

これらのポイントを押さえることで、Go言語で安全にPOSTリクエストを処理し、Webアプリケーションを構築できるようになります。

カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.3
Kotlin・Go・Swift記事の人気No3
Swift入門ガイド|基本構文と書き方をマスターしよう
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のオプショナル型とは?初心者でもわかる使い方とアンラップの基礎