Hvordan bygge en grunnleggende webserver ved å bruke Go

Hvordan bygge en grunnleggende webserver ved å bruke Go

Go er et interessant programmeringsspråk for å bygge moderne webapplikasjoner så vel som systemprogramvare. Det skapte en enorm buzz etter utgivelsen og driver tjenester som Docker, Kubernetes, Terraform, Dropbox og Netflix .

Videre gjør Gos robuste samling av innebygde pakker det til et godt valg for webprogrammering. Denne artikkelen vil vise deg hvordan du skriver en grunnleggende webserver i Go.

Importer de nødvendige pakkene

Nett/HTTP-pakken gir alt som trengs for å lage en webserver og klient. Denne pakken presenterer noen nyttige funksjoner for å håndtere webprogrammering.

Du kan importere den ved å legge til linjen nedenfor i begynnelsen av kildekoden:

import "net/http"

Artikkelen vil også bruke fmt -pakken til å formatere strenger og loggpakken for å håndtere feil. Du kan importere dem individuelt som vist ovenfor, eller importere alle pakkene ved å bruke en enkelt importerklæring:

import (
"fmt"
"log"
"net/http"
)

Du kan fortsette med å skrive hovedfunksjonen etter å ha importert de nødvendige pakkene. Fortsett og lagre kildefilen med .go -utvidelsen . Hvis du bruker Vim , bruk kommandoen nedenfor for å lagre og avslutte Vim:

:wq server.go

Skriv hovedfunksjonen

Go-programmer ligger direkte i hovedfunksjonen, passende kalt "hoved". Du må foreta et serveranrop her . Legg til følgende linjer i kildekoden og se hva de gjør:

func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

Eksemplet definerer hovedfunksjonen ved å bruke nøkkelordet func . Go har strenge regler for plassering av åpningsbøylen, så sørg for at startbøylen er på riktig linje. Den første setningen i main definerer at alle nettforespørsler til rotbanen ( "/" ) vil bli håndtert av indeks, en funksjon av typen http.HandlerFunc .

Den andre linjen starter webserveren via http.ListenAndServe -funksjonen . Det signaliserer serveren til kontinuerlig å lytte etter innkommende HTTP-forespørsler på serverens port 8080. Den andre parameteren i denne funksjonen er nødvendig for å blokkere programmet til slutten.

Siden http.ListenAndServe alltid returnerer en feil, legger eksemplet denne samtalen inn i en log.Fatal call . Denne setningen logger eventuelle feilmeldinger generert på serversiden.

Implementere behandlingsfunksjoner

Som du kan se, kaller hovedfunksjonen behandlerfunksjonsindeksen for å håndtere klientforespørsler. Eksemplet har imidlertid ennå ikke definert denne funksjonaliteten for serveren.

La oss legge til de nødvendige setningene for å gjøre indeksfunksjonen brukbar:

func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}

Denne funksjonen tar to forskjellige argumenter av typen http.ResponseWriter og http.Request . http.ResponseWriter - parameteren inneholder serverens svar på den innkommende forespørselen, i form av et http.Request- objekt .

Funksjonen Fprintf fra fmt -pakken brukes til å vise og manipulere tekststrenger. Artikkelen bruker dette til å vise serverens svar på nettforespørsler. Til slutt brukes r.URL.Path[1:]- elementet til å hente data etter rotbanen.

Legg til alle de resterende delene

Din Go-nettserver vil være klar når du har lagt til alle de gjenværende komponentene. Koden vil se slik ut:

import (
"fmt"
"log"
"net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

Den første linjen er nødvendig for å kompilere denne Go-nettserverkoden som en kjørbar fil.

Hvordan bygge en grunnleggende webserver ved å bruke Go

Kompiler denne Go-nettserverkoden som en kjørbar fil


Lær om brannmurer, Windows-brannmur på Windows Server 2012

Lær om brannmurer, Windows-brannmur på Windows Server 2012

Windows-brannmur med avansert sikkerhet er en brannmur som kjører på Windows Server 2012 og er aktivert som standard. Brannmurinnstillinger i Windows Server 2012 administreres i Windows Firewall Microsoft Management Console.

Hvordan endre Vigor Draytek modem og ruter påloggingspassord

Hvordan endre Vigor Draytek modem og ruter påloggingspassord

Når du endrer passordet for Vigor Draytek-modem og ruter-påloggingsadmin-siden, vil brukere begrense uautorisert tilgang til å endre modempassordet, og sikre viktig nettverksinformasjon.

Hvordan overklokke RAM enkelt med AMD Ryzen Master

Hvordan overklokke RAM enkelt med AMD Ryzen Master

Heldigvis kan brukere av Windows-datamaskiner som kjører AMD Ryzen-prosessorer bruke Ryzen Master for enkelt å overklokke RAM uten å berøre BIOS.

7 måter å fikse Windows laptop-feil som ikke lades via USB-C

7 måter å fikse Windows laptop-feil som ikke lades via USB-C

USB-C-porten har blitt standarden for dataoverføring, videoutgang og lading på moderne Windows-bærbare datamaskiner. Selv om dette er praktisk, kan det være frustrerende når du kobler den bærbare datamaskinen til en USB-C-lader og den ikke lader.

Hvordan fikse Kan ikke opprette tjeneste-feil på Ultraviewer

Hvordan fikse Kan ikke opprette tjeneste-feil på Ultraviewer

Feilen Kan ikke opprette tjeneste på Ultraviewer oppstår når vi installerer programvaren med feilkode 1072.

Hvordan fikse feilen med å ikke vise ID på Ultraviewer

Hvordan fikse feilen med å ikke vise ID på Ultraviewer

Feilen med å ikke vise ID på Ultraviewer vil påvirke ekstern datamaskintilkobling.

Hvordan bruke Ultraviewer til å sende og motta filer

Hvordan bruke Ultraviewer til å sende og motta filer

Ultraviewer fjernstyrer datamaskinen og har en modus for å sende og motta filer.

Hva er Packet Sniffer?

Hva er Packet Sniffer?

Hackere kan bruke Sniffer til å avlytte ukrypterte data og se informasjon som utveksles mellom de to partene. For bedre å forstå Packet Sniffer, så vel som Packet Sniffers handlingsmekanisme, kan du referere til artikkelen nedenfor av Wiki.SpaceDesktop.

6 måter å permanent slette filer på Windows

6 måter å permanent slette filer på Windows

Normalt, når du sletter en fil på Windows, slettes ikke filen umiddelbart, men lagres i papirkurven. Etter det må du gjøre ett trinn til: tømme søppelet. Men hvis du ikke vil måtte gjøre dette andre trinnet, vil vi vise deg hvordan du sletter en fil permanent i artikkelen nedenfor.

Hvordan påvirker det mørke nettet sikkerheten?

Hvordan påvirker det mørke nettet sikkerheten?

Det mørke nettet er et mystisk sted med et berømt rykte. Det er ikke vanskelig å finne det mørke nettet. Imidlertid er det en annen sak å lære hvordan du navigerer i den, spesielt hvis du ikke vet hva du gjør eller hva du kan forvente.