Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Kaedah `ServeHTTP` Go Mendayakan Pengendali HTTP Tersuai?

Bagaimanakah Kaedah `ServeHTTP` Go Mendayakan Pengendali HTTP Tersuai?

Mary-Kate Olsen
Lepaskan: 2024-11-29 11:48:11
asal
604 orang telah melayarinya

How Does Go's `ServeHTTP` Method Enable Custom HTTP Handlers?

Memahami ServeHTTP: Bagaimana Kod Ini Berfungsi?

Dalam Go, melaksanakan kaedah ServeHTTP untuk jenis tersuai menjadikan jenis itu serasi dengan Antara muka pengendali, bahagian penting dalam mencipta pengendali HTTP. Ini membolehkan jenis tersuai untuk mengendalikan permintaan HTTP masuk.

Mari terokai kod yang dimaksudkan:

package main

import (
    "fmt"
    "net/http"
)

type foo int

func (m foo) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "Some text")
}

func main() {
    var bar foo
    http.ListenAndServe(":8080", bar)
}
Salin selepas log masuk

Bagaimanakah ia berfungsi?

  1. Apabila http.ListenAndServe digunakan dengan bar sebagai hujah, ia mencipta pelayan HTTP dan mendaftarkan tersuai pengendali, kaedah ServeHTTP foo, untuk mengendalikan permintaan masuk.
  2. Apabila permintaan diterima, pelayan menggunakan kaedah ServeHTTP pengendali berdaftar, iaitu kaedah ServeHTTP foo dalam kes ini.
  3. Di dalam kaedah ServeHTTP, permintaan dan respons HTTP dikendalikan. Dalam contoh ini, ia menulis "Sesetengah teks" kepada penulis respons.

Bagaimanakah fungsi ServeHTTP diakses?

Fungsi ServeHTTP diakses melalui pelaksanaan antara muka Pengendali dalam jenis tersuai foo. Dengan melaksanakan ServeHTTP, foo menandakan kesediaannya untuk mengendalikan permintaan HTTP dan pakej HTTP mengiktirafnya sebagai pengendali yang sah.

HandlerFunc

Jenis HandlerFunc dan fungsi yang berkaitan dengannya sintaks ialah pembantu yang memudahkan untuk menentukan fungsi tanpa nama sebagai pengendali HTTP tanpa membuat jenis tersuai seperti dalam foo. Kaedah HandlerFunc ServeHTTP hanya menggunakan fungsi tanpa nama dengan hujah yang sesuai.

Pada dasarnya, kod tersebut menunjukkan cara melaksanakan kaedah ServeHTTP membenarkan jenis tersuai untuk mengendalikan permintaan HTTP, di mana pelayan yang bertanggungjawab untuk mendengar pada port rangkaian menghantar permintaan masuk kepada pengendali ini.

Atas ialah kandungan terperinci Bagaimanakah Kaedah `ServeHTTP` Go Mendayakan Pengendali HTTP Tersuai?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan