Hur man bygger en grundläggande webbserver med Go

Hur man bygger en grundläggande webbserver med Go

Go är ett intressant programmeringsspråk för att bygga moderna webbapplikationer såväl som systemprogramvara. Det skapade en enorm buzz efter lanseringen och driver tjänster som Docker, Kubernetes, Terraform, Dropbox och Netflix .

Dessutom gör Gos robusta samling av inbyggda paket det till ett utmärkt val för webbprogrammering. Den här artikeln kommer att visa dig hur du skriver en grundläggande webbserver i Go.

Importera nödvändiga paket

Net/HTTP-paketet ger allt som behövs för att skapa en webbserver och klient. Detta paket presenterar några användbara funktioner för att hantera webbprogrammering.

Du kan importera den genom att lägga till raden nedan i början av din källkod:

import "net/http"

Artikeln kommer också att använda fmt- paketet för att formatera strängar och loggpaketet för att hantera fel. Du kan importera dem individuellt enligt ovan, eller importera alla paket med en enda importsats:

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

Du kan fortsätta med att skriva huvudfunktionen efter att ha importerat de nödvändiga paketen. Fortsätt och spara källfilen med tillägget .go . Om du använder Vim , använd kommandot nedan för att spara och avsluta Vim:

:wq server.go

Skriv huvudfunktionen

Go-program finns direkt i huvudfunktionen, passande namnet "main". Du måste ringa ett serversamtal här. Lägg till följande rader i källkoden och se vad de gör:

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

Exemplet är att definiera huvudfunktionen med nyckelordet func . Go har strikta regler om placeringen av öppningsstaget, så se till att startstaget är på rätt linje. Den första satsen i main definierar att alla webbförfrågningar till rotsökvägen ( "/" ) kommer att hanteras av index, en funktion av typen http.HandlerFunc .

Den andra raden startar webbservern via http.ListenAndServe -funktionen . Det signalerar servern att kontinuerligt lyssna efter inkommande HTTP-förfrågningar på serverns port 8080. Den andra parametern i denna funktion behövs för att blockera programmet till slutet.

Eftersom http.ListenAndServe alltid returnerar ett fel, lindar exemplet detta anrop i en log.Fatal call . Denna sats loggar alla felmeddelanden som genereras på serversidan.

Implementera bearbetningsfunktioner

Som du kan se anropar huvudfunktionen hanterarfunktionsindexet för att hantera klientförfrågningar. Exemplet har dock ännu inte definierat denna funktionalitet för sin server.

Låt oss lägga till de nödvändiga satserna för att göra indexfunktionen användbar:

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

Den här funktionen tar två olika argument av typen http.ResponseWriter och http.Request . Parametern http.ResponseWriter innehåller serverns svar på den inkommande begäran, i form av ett http.Request- objekt .

Funktionen Fprintf från fmt -paketet används för att visa och manipulera textsträngar. Artikeln använder detta för att visa serverns svar på webbförfrågningar. Slutligen används elementet r.URL.Path[1:] för att hämta data efter rotsökvägen.

Lägg till alla återstående delar

Din Go-webbserver kommer att vara klar när du har lagt till alla återstående komponenter. Koden kommer att se ut så här:

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örsta raden behövs för att kompilera denna Go-webbserverkod som en körbar fil.

Hur man bygger en grundläggande webbserver med Go

Kompilera denna Go-webbserverkod som en körbar fil


Lär dig mer om brandväggar, Windows-brandväggen på Windows Server 2012

Lär dig mer om brandväggar, Windows-brandväggen på Windows Server 2012

Windows-brandvägg med avancerad säkerhet är en brandvägg som körs på Windows Server 2012 och som är aktiverad som standard. Brandväggsinställningar i Windows Server 2012 hanteras i Windows-brandväggens Microsoft Management Console.

Så här ändrar du Vigor Draytek-modem och inloggningslösenord för router

Så här ändrar du Vigor Draytek-modem och inloggningslösenord för router

När användarna ändrar lösenordet för Vigor Draytek Modem och Routers inloggningsadminsida, begränsar användarna obehörig åtkomst för att ändra modemets lösenord, vilket säkrar viktig nätverksinformation.

Hur man enkelt överklocka RAM med AMD Ryzen Master

Hur man enkelt överklocka RAM med AMD Ryzen Master

Lyckligtvis kan användare av Windows-datorer som kör AMD Ryzen-processorer använda Ryzen Master för att enkelt överklocka RAM utan att röra BIOS.

7 sätt att fixa Windows-datorfel som inte laddas via USB-C

7 sätt att fixa Windows-datorfel som inte laddas via USB-C

USB-C-porten har blivit standarden för dataöverföring, videoutgång och laddning på moderna bärbara Windows-datorer. Även om detta är bekvämt, kan det vara frustrerande när du ansluter din bärbara dator till en USB-C-laddare och den inte laddas.

Hur man fixar felet Kan inte skapa tjänst på Ultraviewer

Hur man fixar felet Kan inte skapa tjänst på Ultraviewer

Felet Kan inte skapa tjänst på Ultraviewer uppstår när vi installerar programvaran med felkod 1072.

Hur man åtgärdar felet att inte visa ID på Ultraviewer

Hur man åtgärdar felet att inte visa ID på Ultraviewer

Felet att inte visa ID på Ultraviewer kommer att påverka fjärrdatoranslutningen.

Hur man använder Ultraviewer för att skicka och ta emot filer

Hur man använder Ultraviewer för att skicka och ta emot filer

Ultraviewer fjärrstyr datorn och har ett läge för att skicka och ta emot filer.

6 sätt att permanent radera filer på Windows

6 sätt att permanent radera filer på Windows

Normalt, när du tar bort en fil på Windows, kommer filen inte att raderas omedelbart utan sparas i papperskorgen. Efter det måste du göra ytterligare ett steg: töm papperskorgen. Men om du inte vill behöva göra det här andra steget kommer vi att visa dig hur du tar bort en fil permanent i artikeln nedan.

Hur påverkar den mörka webben säkerheten?

Hur påverkar den mörka webben säkerheten?

Det mörka nätet är en mystisk plats med ett berömt rykte. Att hitta det mörka nätet är inte svårt. Men att lära sig att navigera på ett säkert sätt är en annan sak, särskilt om du inte vet vad du gör eller vad du kan förvänta dig.

Vad är Adrozek-viruset? Hur du skyddar dig mot Adrozek-virus

Vad är Adrozek-viruset? Hur du skyddar dig mot Adrozek-virus

Tekniskt sett är Adrozek inte ett virus. Det är en webbläsarkapare, även känd som webbläsarmodifierare. Det betyder att skadlig programvara installerades på din dator utan din vetskap.