Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man bygger en grundläggande webbserver i Go

Go är ett spännande programmeringsspråk för att bygga moderna webbapplikationer såväl som systemprogramvara. Det svepte över teknikindustrin vid 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 lära dig hur du skriver en grundläggande webbserver i Go.

Importera nödvändiga paket

Net/HTTP-paketet erbjuder allt som behövs för att skapa webbservrar och klienter. Detta paket avslöjar flera användbara funktioner för att hantera webbprogrammering.

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

import "net/http"

Vi kommer också att använda fmt paket för att formatera strängar och logga paket för hanteringsfel. Du kan antingen importera dem individuellt enligt ovan eller faktorisera alla paket med en enda importsats:

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

Du kan fortsätta att skriva huvudfunktionen efter att du har importerat de nödvändiga paketen. Fortsätt och spara källfilen med en .gå förlängning. Om du använder Vim, använd kommandot nedan för att spara och avsluta Vim:

:wq server.go

Skriver huvudfunktionen

Go-program live inom huvudfunktionen, passande namnet “main”. Du måste implementera serveranropet här. Lägg till följande rader i din källkod och se vad de gör:

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

Vi definierar huvudfunktionen med hjälp av func nyckelord. Go har strikta regler angående 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 som kommer till roten (“https://www.makeuseof.com/”) sökväg kommer att hanteras av index, en funktion av typen http.HandlerFunc.

Relaterad  Vad är Google Chrome Privacy Sandbox?

Den andra raden startar webbservern via http.ListenAndServe fungera. Det signalerar servern att kontinuerligt lyssna efter inkommande HTTP-förfrågningar på port 8080 på värddatorn. Den andra parametern i denna funktion behövs för att blockera programmet tills det avslutas.

Eftersom http.ListenAndServe alltid returnerar ett fel, lägger vi in ​​det här anropet i en log.Dödlig ringa upp. Denna sats loggar alla felmeddelanden som genereras på serversidan.

Implementera Handler-funktionen

Som du kan se anropar huvudfunktionen hanterarfunktionsindexet för att behandla klientförfrågningar. Men vi har ännu inte definierat denna funktion för vår 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:])
}

Denna funktion tar två olika typer av argument http.ResponseWriter och http.Begäran. Parametern http.ResponseWriter innehåller serverns svar på den inkommande begäran, som kommer i form av ett http.Request-objekt.

Fprintf-funktionen från fmt-paketet används för att visa och manipulera textsträngar. Vi använder detta för att visa serverns svar på våra webbförfrågningar. Slutligen, den r.URL.Path[1:] komponent används för att hämta data som kommer efter rotsökvägen.

Lägger ihop alla delar

Din Go-webbserver bör vara klar när du har lagt till alla delar. Koden bör se ut som följande:

package main
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("https://www.makeuseof.com/", 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.

Bygg webbservrar med Go

Gos robusta bibliotekspaket underlättar webbprogrammering för nybörjare. Du kan snabbt utveckla enkla webbservrar med bara några rader kod.

Dessutom gör de kraftfulla testfunktionerna i detta programmeringsspråk det också enkelt att implementera agila programmeringsmetoder. Dessa är en grupp programvaruutvecklingsstrategier baserade på iterativ utveckling och omfattande samarbete mellan team.

Relaterad  Hur åtgärdar du felet "Det uppstod ett problem med att återställa din dator"?

Om författaren

Rubaiat Hossain (44 artiklar publicerade)

Rubaiat är en CS-examen med en stark passion för öppen källkod. Förutom att vara en Unix-veteran, är han också intresserad av nätverkssäkerhet, kryptografi och funktionell programmering. Han är en ivrig samlare av begagnade böcker och har en aldrig sinande beundran för klassisk rock.

Mer från Rubaiat Hossain

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera