Erstellen Sie einen Webserver in der Sprache Go (net / http) (1)

Natürlich können Sie einen Webserver in Golang (Go-Sprache) einrichten, der die Webprogrammierung ermöglicht.

Ich habe auch Erfahrung in der Erstellung einfacher Webserver mit Golang und der Entwicklung von Diensten. Zu dieser Zeit habe ich ein Webframework namens " gin </ font>" verwendet.

Gin ist hier

Dieses Mal möchte ich einen Webserver erstellen, der nur die Bibliothek (reines Golang) verwendet, ohne sich auf das Webframework zu verlassen. Ich habe auf das offizielle Dokument https://golang.org/doc/articles/wiki/ verwiesen. Wenn Sie im Original Englisch lernen möchten

Die grundlegende Grammatik von Golang wird hier nicht behandelt. Bitte studieren Sie im Voraus. Meine Empfehlung ist das offizielle Dokument "A Tour of Go" </ font>. Klicken Sie hier für den Link → "A Tour of Go"

Da die Programmierung diesmal in der Windows-Umgebung erfolgt und die Befehle usw. unterschiedlich sind, versuchen Sie es bitte jedes Mal mit dem Befehl, der zu Ihrem Betriebssystem passt.

1. Erstellen Sie ein Programm zum Einrichten eines Servers Erstellen Sie zunächst in GOPATH ein Verzeichnis mit dem Namen "golang_server". Ich habe eine Verzeichnisstruktur von "GOPATH / src / Go_Scripts / golang_server". Bitte erstellen Sie ein Verzeichnis an einem beliebigen Ort und wechseln Sie in das Verzeichnis.
GOPATH\src\Go_Scripts>mkdir golang_server
GOPATH\src\Go_Scripts>cd golang_server
GOPATH\src\Go_Scripts\golang_server>

Erstellen Sie ein Programm in diesem Verzeichnis.

server1.go


package main

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

func handler(w http.ResponseWriter, r *http.Request) {
	text := "You-saku."
	fmt.Fprint(w, "Hi there, I'm ", text)
}

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

Lassen Sie uns den Code erklären. Zunächst die Pakete, die zum Einrichten eines Webservers erforderlich sind

1."log" 2."net/http" Importieren. Ohne das geht es nicht.

Betrachten Sie als nächstes die Funktionen "Handler" und "Main".

func handler(w http.ResponseWriter, r *http.Request) {
	text := "You-saku."
	fmt.Fprint(w, "Hi there, I'm ", text)
}

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

In der Hauptfunktion befindet sich eine Beschreibung "http.HandleFunc (" / ", Handler)" </ strong>. Dies ist eine Methode namens HandleFunc des http-Moduls. Das Argument lautet ("Zugriffs-URL", Anforderungsverarbeitungsmethode) </ font>.

Wenn das erste Argument "/" ist, ist es übrigens localhost. Wenn Sie beispielsweise "/ profile" als erstes Argument angeben, wird die Anforderung verarbeitet, wenn Sie mit "localhost: port / profile" zugreifen. Sie können ein besseres Verständnis erhalten, indem Sie den Code selbst ändern.

Als nächstes folgt die in http.HandleFunc aufgerufene Funktion "handler" </ strong>. Dies ist die Funktion, die die eigentliche Anforderung verarbeitet. In der Regel lautet das Argument (Variable http.ResponseWriter, Variable * http.Request) </ font>. Es ist wie eine Regel, also denken Sie daran.

Übrigens sichert http.ResponceWriter einen Platz zum Schreiben auf dem Webserver. Daher erhält fmt.Fprintf in der Handlerfunktion "w" </ strong> als Argument. Ich schreibe in dieses w und zeige es auf der Webseite an.

Schließlich wird "log.Fatal" </ strong> erläutert. Hiermit wird das Kommunikationsprotokoll aufgezeichnet. Es wird "http.ListenAndServe (": 8080 ", nil)" </ strong> als Argument verwendet. Wenn jedoch in http.ListenAndServe ein Fehler auftritt, wird dieser aufgezeichnet. Außerdem ist "http.ListenAndServe ()" </ strong> eine Funktion, die festlegt, welche Portnummer tatsächlich für die http-Kommunikation verwendet wird. Das Argument lautet (": Portnummer", Fehler) </ font>. Dieses Mal habe ich die Portnummer 8080 angegeben. Bitte beachten Sie, dass Sie bei der Angabe der Portnummer : Portnummer </ font> verwenden. Wenn ":" weggelassen wird, tritt ein Fehler auf.

2. Programmausführung und Bestätigung Lassen Sie uns nun das Programm ausführen.
GOPATH\src\Go_Scripts\golang_server>go run server1.go

Dann erhalten einige Leute eine Sicherheitswarnung. Klicken Sie in diesem Fall auf "Zugriff zulassen".

Greifen Sie dann mit Ihrem Browser auf [http: // localhost: 8080 /](http: // localhost: 8080 /) zu. Dann können Sie auf eine solche Seite zugreifen. go_http1.png

Ich denke, es ist eine gute Idee, die von Ihnen angezeigten Zeichen zu ändern.

Endlich Wie war es? Aus der Sicht von mir, der Gin verwendet hat, hatte ich den Eindruck, dass es viele Teile gab, um Code zu schreiben. Ich muss verschiedene Dinge selbst machen, aber ich habe das Gefühl, dass ich mehr über Golang lernen konnte. Als nächstes verwenden wir das "html / template" -Paket , das mit HTML-Dateien zusammenarbeitet, um es einer Webseite ähnlicher zu machen.

Vielen Dank für das Lesen bis zum Ende.

Recommended Posts