So erstellen Sie einen einfachen Webserver in Go
Go ist eine aufregende Programmiersprache zum Erstellen moderner Webanwendungen sowie von Systemsoftware. Es hat die Tech-Industrie bei seiner Veröffentlichung mitgerissen und versorgt Dienste wie Docker, Kubernetes, Terraform, Dropbox und Netflix mit Strom.
Darüber hinaus ist Go aufgrund seiner robusten Sammlung integrierter Pakete eine ausgezeichnete Wahl für die Webprogrammierung. In diesem Artikel erfahren Sie, wie Sie einen einfachen Webserver in Go schreiben.
Importieren der erforderlichen Pakete
Das net / HTTP-Paket bietet alles, was zum Erstellen von Webservern und Clients erforderlich ist. Dieses Paket enthält mehrere nützliche Funktionen für die Webprogrammierung.
Sie können es importieren, indem Sie die folgende Zeile oben in Ihren Quellcode einfügen:
import "net/http"
Wir werden auch das fmt- Paket zum Formatieren von Zeichenfolgen und das Protokollpaket zum Behandeln von Fehlern verwenden. Sie können sie entweder einzeln wie oben gezeigt importieren oder alle Pakete mit einer einzigen Importanweisung faktorisieren:
import (
"fmt"
"log"
"net/http"
)
Sie können mit dem Schreiben der Hauptfunktion fortfahren, nachdem Sie die erforderlichen Pakete importiert haben. Speichern Sie die Quelldatei mit der Erweiterung .go . Wenn Sie Vim verwenden, verwenden Sie den folgenden Befehl, um Vim zu speichern und zu beenden :
:wq server.go
Hauptfunktion schreiben
Go-Programme leben in der Hauptfunktion, die treffend als "main" bezeichnet wird. Sie müssen den Serveraufruf hier implementieren. Fügen Sie die folgenden Zeilen in Ihren Quellcode ein und sehen Sie, was sie tun:
func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}
Wir definieren die Hauptfunktion mit dem Schlüsselwort func . Go hat strenge Regeln für die Platzierung der Öffnungsstrebe. Stellen Sie daher sicher, dass sich die Startstrebe in der richtigen Linie befindet. Die erste Anweisung in main definiert, dass alle Webanforderungen, die an den Root-Pfad ( "/" ) gesendet werden, vom Index verarbeitet werden , einer Funktion vom Typ http.HandlerFunc .
In der zweiten Zeile wird der Webserver über die Funktion http.ListenAndServe gestartet . Es signalisiert dem Server, kontinuierlich auf eingehende HTTP-Anforderungen an Port 8080 des Host-Computers zu warten. Der zweite Parameter dieser Funktion wird benötigt, um das Programm bis zur Beendigung zu blockieren.
Da http.ListenAndServe immer einen Fehler zurückgibt, verpacken wir diesen Aufruf in einen log.Fatal- Aufruf. Diese Anweisung protokolliert alle auf dem Server generierten Fehlermeldungen.
Implementieren der Handlerfunktion
Wie Sie sehen können, ruft die Hauptfunktion den Handlerfunktionsindex zur Verarbeitung von Clientanforderungen auf. Wir müssen diese Funktion jedoch noch für unseren Server definieren.
Fügen wir die erforderlichen Anweisungen hinzu, um die Indexfunktion nutzbar zu machen:
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}
Diese Funktion akzeptiert zwei verschiedene Argumente vom Typ http.ResponseWriter und http.Request . Der Parameter http.ResponseWriter enthält die Antwort des Servers auf die eingehende Anforderung, die in Form eines http.Request-Objekts vorliegt.
Die Fprintf-Funktion aus dem fmt-Paket wird zum Anzeigen und Bearbeiten von Textzeichenfolgen verwendet. Wir verwenden dies, um die Antwort des Servers auf unsere Webanfragen anzuzeigen. Schließlich wird die Komponente r.URL.Path [1:] zum Abrufen von Daten verwendet, die nach dem Stammpfad kommen .
Alle Teile zusammenfügen
Ihr Go-Webserver sollte bereit sein, sobald Sie alle Teile zusammengefügt haben. Der Code sollte ungefähr so aussehen:
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("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}
Die erste Zeile wird zum Kompilieren dieses Go-Webservercodes als ausführbare Datei benötigt.

Erstellen Sie Webserver mit Go
Die robusten Bibliothekspakete von Go erleichtern Anfängern die Webprogrammierung. Mit nur wenigen Codezeilen können Sie schnell einfache Webserver entwickeln.
Darüber hinaus erleichtern die leistungsstarken Testfunktionen dieser Programmiersprache die Implementierung agiler Programmiermethoden. Hierbei handelt es sich um eine Gruppe von Softwareentwicklungsstrategien, die auf iterativer Entwicklung und umfassender Zusammenarbeit zwischen Teams basieren.