Terokai cara golang mengendalikan permintaan sesi

PHPz
Lepaskan: 2023-04-25 15:46:11
asal
787 orang telah melayarinya

Dengan perkembangan Internet, aplikasi Web telah menjadi bahagian penting dalam kehidupan orang ramai. Dalam aplikasi web, sesi adalah mekanisme yang sangat penting yang membolehkan aplikasi web mempunyai keadaan. Sesi boleh digunakan untuk menyimpan data pengguna seperti status log masuk pengguna, maklumat troli beli-belah, dsb. Dalam artikel ini, kami akan meneroka cara golang mengendalikan permintaan sesi.

Golang ialah bahasa pengaturcaraan yang baru muncul Ia mempunyai ciri-ciri kecekapan, kesederhanaan, keselamatan dan keselarasan, dan telah menarik lebih banyak perhatian daripada pengaturcara. Golang juga menyediakan perpustakaan pengaturcaraan rangkaian yang sangat baik, menjadikannya pilihan yang sangat baik untuk pembangunan aplikasi web.

Di Golang, cara biasa untuk mengendalikan permintaan sesi ialah menggunakan teknologi kuki. Kuki ialah sekeping data yang disimpan dalam penyemak imbas pelanggan, yang boleh menyimpan beberapa maklumat peribadi pengguna, seperti nama pengguna, kata laluan, dsb. Oleh itu, maklumat ini boleh dipulihkan apabila pengguna melawat tapak web sekali lagi. Sangat mudah untuk menggunakan teknologi kuki untuk melaksanakan sesi di Golang Anda hanya perlu menggunakan medan Set-Cookie dan Cookie dalam pakej http.

Berikut ialah contoh program yang menggunakan teknologi kuki untuk melaksanakan sesi:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        cookie, err := r.Cookie("username")
        if err == http.ErrNoCookie {
            fmt.Fprintf(w, "你还没有登录")
            return
        } else if err != nil {
            fmt.Fprintf(w, "发生了错误:%v", err)
            return
        }
        fmt.Fprintf(w, "欢迎你,%s", cookie.Value)
    })
    http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) {
        username := r.FormValue("username")
        if username == "" {
            fmt.Fprintf(w, "用户名不能为空")
            return
        }
        http.SetCookie(w, &http.Cookie{
            Name:  "username",
            Value: username,
        })
        fmt.Fprintf(w, "登录成功")
    })
    http.ListenAndServe(":8080", nil)
}
Salin selepas log masuk

Dalam program sampel di atas, kami mentakrifkan dua fungsi pemprosesan, satu ialah fungsi yang memproses halaman utama, dan yang satu lagi ialah fungsi yang mengendalikan halaman log masuk. Dalam fungsi yang memproses halaman utama, kami mula-mula cuba mendapatkan medan nama pengguna daripada kuki, melakukan pemprosesan yang berbeza bergantung pada sama ada terdapat ralat, dan akhirnya mengeluarkan mesej alu-aluan. Dalam fungsi yang mengendalikan halaman log masuk, kami mendapat nama pengguna daripada parameter permintaan, kemudian tetapkan kuki melalui http.SetCookie, dan akhirnya mengeluarkan maklumat kejayaan log masuk.

Selain menggunakan teknologi kuki, Golang juga menyokong penggunaan parameter pertanyaan dalam URL untuk menghantar maklumat sesi. Cara untuk menghantar maklumat sesi dalam URL adalah dengan menambah parameter pertanyaan pada URL, contohnya:

http://example.com/?username=ray
Salin selepas log masuk

Dalam URL di atas, kami menghantar maklumat sesi melalui parameter nama pengguna. Apabila pengguna melawat tapak web sekali lagi, kita boleh mendapatkan nilai parameter ini daripada parameter permintaan untuk memulihkan maklumat pengguna.

Berikut ialah contoh program yang menggunakan parameter pertanyaan untuk melaksanakan sesi:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        username := r.FormValue("username")
        if username == "" {
            fmt.Fprintf(w, "你还没有登录")
            return
        }
        fmt.Fprintf(w, "欢迎你,%s", username)
    })
    http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) {
        username := r.FormValue("username")
        if username == "" {
            fmt.Fprintf(w, "用户名不能为空")
            return
        }
        http.Redirect(w, r, "/?username="+username, http.StatusFound)
    })
    http.ListenAndServe(":8080", nil)
}
Salin selepas log masuk

Dalam program sampel di atas, kami mentakrifkan dua fungsi pemprosesan, satu ialah fungsi yang memproses halaman utama, dan yang satu lagi ialah fungsi yang mengendalikan halaman log masuk. Dalam fungsi yang memproses halaman utama, kami menggunakan r.FormValue untuk mendapatkan medan nama pengguna dalam parameter pertanyaan dan melakukan pemprosesan yang berbeza bergantung pada sama ada ia kosong. Dalam fungsi yang mengendalikan halaman log masuk, kami mendapat nama pengguna daripada parameter permintaan, dan kemudian mengubah hala pengguna ke halaman utama melalui http.Redirect untuk melengkapkan log masuk.

Untuk meringkaskan, di Golang, kami boleh menggunakan teknologi kuki atau parameter pertanyaan untuk mengendalikan permintaan sesi. Teknologi ini sangat mudah, dan pilihan yang mana satu untuk digunakan boleh berdasarkan keperluan tertentu. Oleh itu, Golang adalah pilihan yang sangat baik untuk pemprosesan permintaan sesi.

Atas ialah kandungan terperinci Terokai cara golang mengendalikan permintaan sesi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!