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


Installera dynamiska skärmar och animerade bakgrundsbilder på Windows

Installera dynamiska skärmar och animerade bakgrundsbilder på Windows

I Microsofts Windows Vista operativsystem tillät DreamScene att ställa in dynamiska bakgrunder för datorer, men åtta år senare är det fortfarande inte tillgängligt på Windows 10. Varför har denna sed representerat en tillbakagång till det förflutna under åren, och vad kan vi göra för att ändra på detta?

Hur man ansluter nätverket mellan 2 bärbara datorer med en nätverkskabel

Hur man ansluter nätverket mellan 2 bärbara datorer med en nätverkskabel

Om vi ​​vill koppla två bärbara datorer till nätverket kan vi använda en nätverkskabel och sedan ändra IP-adresserna på de två datorerna och det är det.

Så här fixar du Du har inte behörighet att spara på den här platsen i Windows

Så här fixar du Du har inte behörighet att spara på den här platsen i Windows

När Windows visar felet "Du har inte behörighet att spara på den här platsen", kommer detta att hindra dig från att spara filer i önskade mappar.

Topp bästa gratis och betalda Syslog Server-programvara för Windows

Topp bästa gratis och betalda Syslog Server-programvara för Windows

Syslog Server är en viktig del av en IT-administratörs arsenal, särskilt när det gäller att hantera händelseloggar på en centraliserad plats.

Vad är Error 524 A Timeout inträffade och hur man åtgärdar felet

Vad är Error 524 A Timeout inträffade och hur man åtgärdar felet

Fel 524: En timeout inträffade är en Cloudflare-specifik HTTP-statuskod som indikerar att anslutningen till servern stängdes på grund av en timeout.

Vad är fel 0x80070570? Hur fixar jag detta fel?

Vad är fel 0x80070570? Hur fixar jag detta fel?

Felkod 0x80070570 är ett vanligt felmeddelande på datorer, bärbara datorer och surfplattor som kör operativsystemet Windows 10. Det visas dock även på datorer som kör Windows 8.1, Windows 8, Windows 7 eller tidigare.

Instruktioner för att åtgärda blåskärmsfelet SIDFEL I ICKE PAGED OMRÅDE eller STOPP 0x00000050

Instruktioner för att åtgärda blåskärmsfelet SIDFEL I ICKE PAGED OMRÅDE eller STOPP 0x00000050

Blue screen of death-fel BSOD PAGE_FAULT_IN_NONPAGED_AREA eller STOP 0x00000050 är ett fel som ofta uppstår efter installation av en hårdvarudrivrutin, eller efter installation eller uppdatering av en ny programvara och i vissa fall är orsaken att felet beror på en korrupt NTFS-partition.

Vad ska du göra när du får ett internt fel i Video Scheduler?

Vad ska du göra när du får ett internt fel i Video Scheduler?

Video Scheduler Internal Error är också ett dödligt blåskärmsfel, det här felet uppstår ofta på Windows 10 och Windows 8.1. Den här artikeln visar dig några sätt att åtgärda det här felet.

Hur man förhindrar Epic Launcher från att starta med Windows

Hur man förhindrar Epic Launcher från att starta med Windows

För att få Windows 10 att starta snabbare och minska starttiden, nedan är stegen du måste följa för att ta bort Epic från Windows Startup och förhindra Epic Launcher från att starta med Windows 10.

3 bättre sätt att spara filer på skrivbordet

3 bättre sätt att spara filer på skrivbordet

Du bör inte spara filer på skrivbordet. Det finns bättre sätt att lagra datorfiler och hålla ordning på skrivbordet. Följande artikel kommer att visa dig mer effektiva platser att spara filer på Windows 10.