Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membina pelayan HTTP di Golang (penjelasan terperinci kaedah)

Bagaimana untuk membina pelayan HTTP di Golang (penjelasan terperinci kaedah)

PHPz
PHPzasal
2023-04-09 19:30:012242semak imbas

Golang ialah bahasa pengaturcaraan yang sangat popular dengan kelajuan pembangunan yang pantas dan kecekapan menjalankan kod yang tinggi sangat sesuai untuk pembangunan aplikasi web. Artikel ini akan memperkenalkan cara menggunakan Golang untuk membina pelayan HTTP.

1. Pasang Golang

Sebelum kita mula, kita perlu memasang Golang. Anda boleh memuat turun pakej pemasangan Golang dari laman web rasmi dan memasangnya pada komputer anda. Selepas pemasangan, gunakan alat baris arahan untuk mengesahkan sama ada Golang berjaya dipasang Anda boleh memasukkan arahan berikut:

$ go version

Jika nombor versi Golang dikeluarkan, ini bermakna Golang berjaya dipasang.

2. Bina pelayan HTTP

Seterusnya kita mula membina pelayan HTTP. Mula-mula kita perlu menyimpan kod berikut sebagai fail bernama server.go.

package main

import (
    "fmt"
    "net/http"
)

func homeHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, Golang!")
}

func main() {
    http.HandleFunc("/", homeHandler)
    http.ListenAndServe(":8000", nil)
}

Melalui kod di atas, kami telah melaksanakan pelayan HTTP yang sangat mudah, yang boleh bertindak balas kepada permintaan HTTP pada port tempatan 8000 dan menghantar rentetan "Hello, Golang!"

Kini kita boleh menyusun dan memulakan pelayan dengan arahan berikut.

$ go run server.go

Lakukan kod di atas dalam alat baris arahan Jika tiada mesej ralat muncul, kami boleh mengakses "localhost:8000" melalui penyemak imbas dan melihat rentetan "Hello, Golang!" .

3. Pelayan HTTP lanjutan

Sudah tentu, kod di atas hanya melaksanakan pelayan HTTP yang sangat asas, yang tidak dapat memenuhi keperluan kami. Di bawah ini kami memperkenalkan beberapa operasi biasa untuk melanjutkan pelayan HTTP.

  1. Mengendalikan permintaan HTTP

Kami boleh mendaftarkan fungsi pemprosesan permintaan HTTP melalui fungsi HandleFunc bagi pakej http Sebagai contoh, kod berikut boleh mengendalikan permintaan HTTP GET dan keluarkannya ke pelayar "Hello, World!".

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
})
  1. Parameter pemprosesan

Kami boleh mendapatkan parameter dalam permintaan HTTP melalui kaedah FormValue objek Permintaan. Sebagai contoh, kita boleh menghuraikan parameter "nama pengguna" dan "kata laluan" dengan kod berikut dan mengeluarkan nilainya ke penyemak imbas.

http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) {
    r.ParseForm()
    username := r.FormValue("username")
    password := r.FormValue("password")
    fmt.Fprintf(w, "Username: %s, Password: %s", username, password)
})
  1. Memproses fail statik

Kami boleh menggunakan fungsi FileServer pakej http untuk memproses fail statik. Sebagai contoh, kod berikut boleh mengeluarkan semua fail yang terletak dalam direktori semasa pada port tempatan 8000.

http.Handle("/", http.FileServer(http.Dir(".")))

Apabila kami mengakses "localhost:8000" melalui penyemak imbas, kami dapat melihat semua fail muncul dalam penyemak imbas.

4. Ringkasan

Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan Golang untuk membina pelayan HTTP. Walaupun artikel ini hanya memperkenalkan beberapa operasi yang paling asas, ia sudah cukup untuk kami melaksanakan aplikasi web yang mudah. Dalam proses pembelajaran akan datang, kami boleh melaksanakan aplikasi web yang lebih kaya dengan menggunakan perpustakaan dan rangka kerja lain.

Atas ialah kandungan terperinci Bagaimana untuk membina pelayan HTTP di Golang (penjelasan terperinci kaedah). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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