Hoe u een eenvoudige webserver bouwt met Go

Go is een interessante programmeertaal voor het bouwen van moderne webapplicaties en systeemsoftware. Het creëerde een enorme buzz na de release en ondersteunt services als Docker, Kubernetes, Terraform, Dropbox en Netflix .

Bovendien maakt Go's robuuste verzameling ingebouwde pakketten het een uitstekende keuze voor webprogrammering. Dit artikel laat zien hoe u een eenvoudige webserver in Go schrijft .

Importeer de benodigde pakketten

Het net/HTTP-pakket biedt alles wat nodig is om een ​​webserver en client te creëren. Dit pakket biedt enkele nuttige functies voor webprogrammering.

Je kunt het importeren door de onderstaande regel aan het begin van je broncode toe te voegen:

import "net/http"

Het artikel gebruikt ook het fmt- pakket om tekenreeksen op te maken en het log- pakket om fouten af ​​te handelen. U kunt ze afzonderlijk importeren zoals hierboven weergegeven, of alle pakketten importeren met één enkele importinstructie:

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

U kunt doorgaan met het schrijven van de hoofdfunctie nadat u de benodigde pakketten heeft geïmporteerd. Ga je gang en sla het bronbestand op met de .go- extensie . Als u Vim gebruikt , gebruikt u de onderstaande opdracht om Vim op te slaan en af ​​te sluiten:

:wq server.go

Schrijf de hoofdfunctie

Go-programma's bevinden zich direct in de hoofdfunctie, toepasselijk genaamd "main". U moet hier een serveroproep doen . Voeg de volgende regels toe aan de broncode en kijk wat ze doen:

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

In het voorbeeld wordt de hoofdfunctie gedefinieerd met behulp van het trefwoord func . Go heeft strikte regels over de positie van het openingsbeugel, dus zorg ervoor dat het startbeugel op de juiste lijn staat. De eerste instructie in main definieert dat alle webverzoeken naar het hoofdpad ( "/" ) worden afgehandeld door index, een functie van het type http.HandlerFunc .

De tweede regel start de webserver via de http.ListenAndServe -functie . Het geeft aan dat de server voortdurend moet luisteren naar binnenkomende HTTP-verzoeken op poort 8080 van de server. De tweede parameter van deze functie is nodig om het programma tot het einde te blokkeren.

Omdat http.ListenAndServe altijd een fout retourneert, verpakt het voorbeeld deze aanroep in een log.Fatal aanroep . Deze verklaring registreert eventuele foutmeldingen die aan de serverzijde worden gegenereerd.

Verwerkingsfuncties implementeren

Zoals u kunt zien, roept de hoofdfunctie de handlerfunctie-index aan om clientverzoeken af ​​te handelen. Het voorbeeld heeft deze functionaliteit echter nog niet gedefinieerd voor de server.

Laten we de nodige instructies toevoegen om de indexfunctie bruikbaar te maken:

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

Deze functie heeft twee verschillende argumenten nodig van het type http.ResponseWriter en http.Request . De parameter http.ResponseWriter bevat het antwoord van de server op het binnenkomende verzoek, in de vorm van een http.Request- object .

De functie Fprintf uit het fmt- pakket wordt gebruikt om tekstreeksen weer te geven en te manipuleren. Het artikel gebruikt dit om de reactie van de server op webverzoeken weer te geven. Ten slotte wordt het element r.URL.Path[1:] gebruikt om gegevens op te halen na het hoofdpad.

Voeg alle resterende delen toe

Uw Go-webserver is klaar zodra u alle overige componenten heeft toegevoegd. De code ziet er als volgt uit:

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))
}

De eerste regel is nodig om deze Go-webservercode als uitvoerbaar bestand te compileren.

Hoe u een eenvoudige webserver bouwt met Go

Compileer deze Go-webservercode als een uitvoerbaar bestand

Laat een reactie achter

Hoe u de kennisgeving van een auteursrechtverzoek in de rechterhoek van het scherm op Windows 10 verwijdert

Hoe u de kennisgeving van een auteursrechtverzoek in de rechterhoek van het scherm op Windows 10 verwijdert

Ziet u een activeringsmelding voor Windows 10 in de rechterhoek van het scherm? In dit artikel wordt uitgelegd hoe u de kennisgeving van een auteursrechtverzoek op Windows 10 verwijdert.

Instructies van AZ voor het installeren van Windows 10 build 14393.222

Instructies van AZ voor het installeren van Windows 10 build 14393.222

Onlangs heeft Microsoft de nieuwste cumulatieve update voor Windows 10 pc-gebruikers uitgebracht, genaamd Build 14393.222. Deze update voor Windows 10 repareert voornamelijk bugs op basis van gebruikersfeedback en verbetert de prestatie-ervaring van het besturingssysteem.

Bescherm uw computernetwerk met Bastion host in slechts 3 stappen

Bescherm uw computernetwerk met Bastion host in slechts 3 stappen

Heeft u computers op uw lokale netwerk die externe toegang nodig hebben? Het gebruik van een bastionhost als poortwachter voor uw netwerk kan een goede oplossing zijn.

3 manieren om snel alle gebeurtenislogboeken in Windows 10 te wissen

3 manieren om snel alle gebeurtenislogboeken in Windows 10 te wissen

Soms moet u oude gebeurtenislogboeken in één keer verwijderen. In deze handleiding laat Quantrimang.com u 3 manieren zien om snel alle gebeurtenislogboeken in Windows 10 Event Viewer te verwijderen.

Hoe u een Windows-toets maakt als uw toetsenbord niet beschikbaar is

Hoe u een Windows-toets maakt als uw toetsenbord niet beschikbaar is

Als je liever een oud klassiek toetsenbord gebruikt, zoals het IBM Model M, dat geen fysieke Windows-sleutel bevat, kun je er eenvoudig meer toevoegen door een sleutel te lenen die je niet vaak gebruikt.

Hoe u een transparante achtergrondmodus creëert op Windows 10

Hoe u een transparante achtergrondmodus creëert op Windows 10

WindowTop is een tool waarmee u alle toepassingsvensters en programma's op computers met Windows 10 kunt dimmen. Of u kunt een donkere achtergrondinterface op Windows gebruiken.

Valse IP-methoden helpen u anoniem toegang te krijgen

Valse IP-methoden helpen u anoniem toegang te krijgen

In veel eerdere artikelen hebben we vermeld dat online anoniem blijven uiterst belangrijk is. Elk jaar lekt privé-informatie uit, waardoor online beveiliging steeds noodzakelijker wordt. Dat is ook de reden dat we virtuele IP-adressen moeten gebruiken. Hieronder zullen we leren over methoden om nep-IP's te maken!

Hoe u de taalbalk op de taakbalk van Windows 8 uitschakelt

Hoe u de taalbalk op de taakbalk van Windows 8 uitschakelt

De Taalbalk op Windows 8 is een miniatuurtaalwerkbalk die is ontworpen om automatisch op het bureaublad te worden weergegeven. Veel mensen willen deze taalbalk echter op de taakbalk verbergen.

Tips om de internetverbindingssnelheid van Linksys te optimaliseren

Tips om de internetverbindingssnelheid van Linksys te optimaliseren

Het maximaliseren van de internetsnelheid is essentieel voor het optimaliseren van uw netwerkverbinding. U kunt een optimale entertainment- en werkervaring hebben met behulp van computers, internet-tv's, gameconsoles, enz.

Hoe u WEP, WPA, WPA2 instelt voor de Linksys-router

Hoe u WEP, WPA, WPA2 instelt voor de Linksys-router

Draadloze connectiviteit is tegenwoordig een noodzaak en daarom is draadloze beveiliging essentieel om de veiligheid in uw interne netwerk te garanderen.