Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Go je zmogljiv in prilagodljiv jezik za izdelavo spletnih aplikacij. The mreža paket igra bistveno vlogo v Gojevem ekosistemu.

Kot večina strežniških programskih jezikov je tudi Go opremljen s paketom HTTP za interakcijo s protokolom HTTP. Ustrezni paket Go je http paket, podpaket od mreža paket.

Kaj je paket net/http?

The net/http paket je ena od standardnih knjižnic v Go. Zagotavlja celoten nabor funkcij in vrst za gradnjo odjemalcev HTTP, strežnikov in drugih operacij, ki temeljijo na HTTP. Tej vključujejo:

  • Funkcije za izdelavo zahtev HTTP.
  • Obravnava zahtev in odgovorov.
  • Streženje zahtev HTTP.
  • Povezani objekti, kot so glave in piškotki.

The net/http paket podpira tudi šifriranje TLS/SSL, HTTP/2 in druge napredne funkcije, zaradi česar je paket bistveno orodje za razvijalce Go.

Številne priljubljene knjižnice in ogrodja Go, od kompleta spletnih orodij Gorilla do spletnega ogrodja Echo, temeljijo na net/http paket.

instagram viewer

Zagon preprostega strežnika HTTP

Zagon strežnikov je ena od osnovnih operacij, ki jih morate razumeti za delo s protokolom HTTP.

Tukaj je program za zaženite preprost strežnik v Go:

paket glavni

uvoz (
"fmt"
"net/http"
)

// handler je tipičen HTTP handler zahteve-odgovora v Go; podrobnosti kasneje
funkvodja(w http. ResponseWriter, r *http. Prošnja) {
// Fprintf formatira niz v zapisovalnik
fmt. Fprintf (w, "Pozdravljen, svet!")
}

funkglavni() {
http. HandleFunc("/", vodja)
http. ListenAndServe(":8080", nič)
}

The vodja funkcija je tipičen upravljalnik zahtev-odgovorov za http paket. Ta funkcija zapiše niz "Hello, World!" zapisovalcu odziva HTTP.

Pri zagonu kode in obisku http://localhost: 8080/ v spletnem brskalniku bi morali videti "Hello, World!" niz, prikazan v vašem brskalniku.

Obravnava zahtevkov in odgovorov

Dohodne zahteve lahko obravnavate z HandleFunc metoda http paket. The HandleFunc metoda sprejme niz poti in funkcijo obravnave.

The http. Prošnja metoda je primerek dohodne zahteve in lahko uporabite številne metode svojega primerka za interakcijo z zahtevami do poti.

http. HandleFunc("/uporabniki", funk(w http. ResponseWriter, r *http. Prošnja) {
stikalo r. Metoda {
Ovitek"DOBITI":
// obdelava zahteve GET
Ovitek"POST":
// obravnava zahtevo POST
privzeto:
http. Napaka (w, "Neveljavna metoda zahteve", http. StatusMethodNotAllowed)
}
})

Zgornja koda uporablja http paket za definiranje funkcije obravnave HTTP za /users pot. Funkcija obravnave posluša dohodne zahteve HTTP na poti in jih obdela na podlagi metode zahteve (npr. DOBITI, OBJAVIitd.)

Funkcija obdelovalca prevzame ResponseWriter in Prošnja metode kot argumenti. The ResponseWriter je vmesnik, ki upravljavcu pomaga pisati podatke kot odgovor odjemalcu in Prošnja je struktura, ki vsebuje informacije o dohodni zahtevi, kot so metoda HTTP, URL, glave itd.

Zgornja funkcija upravljalnika uporablja a stikalo stavek za določitev metode zahteve in izvajanje različnih blokov kode na podlagi metode. Če je metoda DOBITI, bo skrbnik obravnaval DOBITI prošnja. Sicer pa je metoda OBJAVA; bo obvladal OBJAVI prošnja.

Če je metoda drugačna, bo poslala http. Napaka s sporočilom »Neveljavna metoda zahteve« in a StatusMethodNotAllowedStatusna koda HTTP stranki.

Odjemalcu lahko vrnete nize z uporabo Pišite metoda vašega primerka zapisovalnika, ki sprejme bajtno rezino nizov in zapiše niz.

w. Napiši ([]bajt("Pozdravljen, svet!"))

Lahko uporabite WriteHeader vaša metoda ResponseWriter primerek za pisanje glav odjemalcu.

w. WriteHeader (http. stanje v redu)

Delo z vmesno programsko opremo HTTP

Vmesna programska oprema je sestavljena iz funkcij, ki prestrežejo dohodne zahteve HTTP za operacije, preden se zahteva nadaljuje z naslednjo funkcijo obravnave.

Tu je primer beleženja funkcije upravljalnika vmesne programske opreme v Go:

funkbeleženje vmesne programske opreme(naslednji http. vodja)http.Voditelj {
vrnitev http. HandlerFunc(funk(w http. ResponseWriter, r *http. Prošnja) {
// zabeleži zahtevo
Naslednji. ServeHTTP(w, r)
// zabeleži odgovor
})
}

The beleženje vmesne programske opreme funkcija prevzame obravnavo HTTP in vrne nov obravnavo HTTP. Vrnjeni upravljalnik HTTP je anonimna funkcija, ki sprejme pisca odziva HTTP in zahtevo HTTP. Funkcija zabeleži zahtevo in pokliče Streži HTTP metoda na Naslednji Obravnavalnik HTTP, ki posreduje zapisovalca odgovora in zahtevo kot argumenta.

Funkcije vmesne programske opreme lahko upravljate z Ročaj metoda http paket. The Ročaj metoda prevzame pot in funkcijo vmesne programske opreme.

http. Ročaj ("/", beleženje srednje programske opreme (http. HandlerFunc (obravnavalec)))

Preusmeritve s paketom HTTP

Preusmerjanje je priljubljena operacija za spletne aplikacije, ki uporabnike napotijo ​​na druge vire ali spletne strani.

Lahko se preusmerite na drugo spletno stran z Preusmeri metoda http paket.

http. Preusmeri (w, r, " http://example.com", http. StatusMovedPermanently)

The Preusmeri metoda zajema ResponseWriter in Prošnja primerki, novi URL strani in statusna koda za preusmeritev.

V Go lahko sestavite kompleksne API-je

The http paket je zmogljivo in prilagodljivo orodje za gradnjo kompleksnih API-jev. Uporabite lahko Gojevo bogato standardno knjižnico in druge zmogljive pakete tretjih oseb za dodajanje funkcionalnosti vašim API-jem, kot je povezljivost z bazo podatkov in podpora za različna spleta okvirji.

Z Go lahko zgradite razširljive, visoko zmogljive API-je, ki z lahkoto obravnavajo velik promet zahtev in zapletene naloge obdelave podatkov.