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

Go言語でCookieを操作する方法とサンプル例を初心者向けに解説

Go言語でCookieを操作する方法とサンプル例
Go言語でCookieを操作する方法とサンプル例

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

生徒

「先生、Go言語でWebアプリを作るときに、ユーザーの情報をブラウザに保存したいんですがどうすればいいですか?」

先生

「その場合はCookieを使うと便利です。Cookieはブラウザに小さな情報を保存する仕組みです。」

生徒

「具体的にはどのように設定したり読み込んだりするんですか?」

先生

「それでは、基本的な使い方とサンプルコードを見ていきましょう!」

1. Cookieとは?

1. Cookieとは?
1. Cookieとは?

Cookieは、Webブラウザに保存される小さな情報のことです。例えばログイン状態の保持やユーザー設定の保存に使われます。サーバーから送られた情報をブラウザが記憶し、次回のアクセス時に同じ情報を送信します。

2. Go言語でCookieを設定する方法

2. Go言語でCookieを設定する方法
2. Go言語でCookieを設定する方法

Go言語では、http.SetCookie関数を使ってCookieを設定します。Cookieはhttp.Cookie構造体で作成し、レスポンスに追加します。


cookie := &http.Cookie{
    Name:  "username",
    Value: "gopher",
    Path:  "/",
    MaxAge: 3600, // 1時間で有効期限切れ
}
http.SetCookie(w, cookie)

この例では、「username」という名前のCookieを作成し、値を「gopher」に設定しています。MaxAgeはCookieの有効期限を秒単位で指定しています。

3. Cookieを読み取る方法

3. Cookieを読み取る方法
3. Cookieを読み取る方法

Cookieはr.Cookie("名前")で取得できます。取得できない場合はエラーが返るので注意が必要です。


cookie, err := r.Cookie("username")
if err != nil {
    fmt.Fprintln(w, "Cookieが見つかりません")
    return
}
fmt.Fprintf(w, "Cookieの値は: %s", cookie.Value)

このコードでは、「username」という名前のCookieを読み込み、値を表示しています。もしCookieが存在しなければ「Cookieが見つかりません」と表示されます。

4. Cookieを削除する方法

4. Cookieを削除する方法
4. Cookieを削除する方法

Cookieを削除するには、同じ名前でMaxAgeを負の値にして再設定します。これによりブラウザはCookieを破棄します。


cookie := &http.Cookie{
    Name:   "username",
    Value:  "",
    Path:   "/",
    MaxAge: -1,
}
http.SetCookie(w, cookie)

削除したいCookieの名前を指定し、値は空、MaxAgeを-1にすることでブラウザから消去されます。

5. 実際にCookieを操作するサンプルWebアプリ

5. 実際にCookieを操作するサンプルWebアプリ
5. 実際にCookieを操作するサンプルWebアプリ

package main

import (
    "fmt"
    "net/http"
)

func setCookieHandler(w http.ResponseWriter, r *http.Request) {
    cookie := &http.Cookie{
        Name:  "username",
        Value: "gopher",
        Path:  "/",
        MaxAge: 3600,
    }
    http.SetCookie(w, cookie)
    fmt.Fprintln(w, "Cookieを設定しました!")
}

func readCookieHandler(w http.ResponseWriter, r *http.Request) {
    cookie, err := r.Cookie("username")
    if err != nil {
        fmt.Fprintln(w, "Cookieが見つかりません")
        return
    }
    fmt.Fprintf(w, "Cookieの値は: %s", cookie.Value)
}

func deleteCookieHandler(w http.ResponseWriter, r *http.Request) {
    cookie := &http.Cookie{
        Name:   "username",
        Value:  "",
        Path:   "/",
        MaxAge: -1,
    }
    http.SetCookie(w, cookie)
    fmt.Fprintln(w, "Cookieを削除しました")
}

func main() {
    http.HandleFunc("/set", setCookieHandler)
    http.HandleFunc("/read", readCookieHandler)
    http.HandleFunc("/delete", deleteCookieHandler)
    http.ListenAndServe(":8080", nil)
}

このアプリでは、/setでCookieを設定し、/readで読み込み、/deleteで削除できます。ブラウザでアクセスして動作を確認することが可能です。

6. Cookieを使う際の注意点

6. Cookieを使う際の注意点
6. Cookieを使う際の注意点
  • Cookieにはサイズ制限があるため大量データの保存には向かない
  • セキュリティ上、パスワードなど機密情報はCookieに直接保存しない
  • 必ずPathや有効期限を適切に設定する
  • ユーザーのブラウザがCookieを無効にしている場合は使えないことがある

これらを理解して安全にCookieを使うことで、ユーザー体験を向上させることができます。

カテゴリの一覧へ
新着記事
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のコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.8
Kotlin・Go・Swift記事の人気No8
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎