Évidemment, vous pouvez mettre en place un serveur Web en golang (langage Go), ce qui permet la programmation Web.
J'ai également de l'expérience dans la création de serveurs Web simples avec golang et dans le développement de services. A cette époque, j'utilisais un framework web appelé " gin </ font>".
gin est ici
Cette fois, je voudrais créer un serveur Web en utilisant uniquement la bibliothèque (pure golang) sans compter sur le framework Web. J'ai fait référence au document officiel https://golang.org/doc/articles/wiki/. Si vous souhaitez étudier dans l'anglais d'origine
La grammaire de base du golang n'est pas abordée ici. Veuillez étudier à l'avance. Ma recommandation est le document officiel "A Tour of Go" </ font>. Cliquez ici pour le lien → "A Tour of Go"
De plus, étant donné que la programmation est effectuée dans l'environnement Windows cette fois, si les commandes, etc. sont différentes, veuillez essayer avec la commande qui convient à votre système d'exploitation à chaque fois.
GOPATH\src\Go_Scripts>mkdir golang_server
GOPATH\src\Go_Scripts>cd golang_server
GOPATH\src\Go_Scripts\golang_server>
Nous allons créer des programmes dans ce répertoire.
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))
}
Expliquons le code. Tout d'abord, les packages nécessaires à la mise en place d'un serveur Web
1."log" 2."net/http" Importer. Cela ne commencera pas sans cela.Ensuite, considérez les fonctions "handler" et "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))
}
Il y a une description "http.HandleFunc (" / ", handler)" </ strong> dans la fonction principale. Il s'agit d'une méthode appelée HandleFunc du module http, et l'argument est ("access URL", request processing method) </ font>.
Au fait, si le premier argument est "/", ce sera localhost. De plus, par exemple, si vous spécifiez "/ profile" comme premier argument, la requête sera traitée lorsque vous accéderez avec "localhost: port / profile". Vous pouvez obtenir une meilleure compréhension en modifiant vous-même le code.
Vient ensuite la fonction "handler" </ strong> appelée dans http.HandleFunc. C'est la fonction qui gère la demande réelle. En règle générale, l'argument est (variable http.ResponseWriter, variable * http.Request) </ font>. C'est comme une règle, alors gardez-la à l'esprit.
À propos, http.ResponceWriter sécurise un emplacement pour écrire sur le serveur Web. Ainsi, fmt.Fprintf dans la fonction de gestionnaire reçoit "w" </ strong> comme argument. J'écris à ce w et l'affiche sur la page Web.
Enfin, "log.Fatal" </ strong> est expliqué. Il s'agit d'enregistrer le journal de communication. Il prend "http.ListenAndServe (": 8080 ", nil)" </ strong> comme argument, mais si une erreur se produit dans http.ListenAndServe, elle sera enregistrée. En outre, "http.ListenAndServe ()" </ strong> est une fonction qui définit le numéro de port réellement utilisé pour la communication http. L'argument sera (": numéro de port", erreur) </ font>. Cette fois, j'ai spécifié le numéro de port 8080. Veuillez noter que lorsque vous spécifiez le numéro de port, veuillez définir : numéro de port </ font>. Si ":" est omis, une erreur se produira.
GOPATH\src\Go_Scripts\golang_server>go run server1.go
Ensuite, certaines personnes recevront un avertissement de sécurité. Dans ce cas, cliquez sur "Autoriser l'accès".
Accédez ensuite à [http: // localhost: 8080 /](http: // localhost: 8080 /) avec votre navigateur. Ensuite, vous pouvez accéder à une telle page.
Je pense que c'est une bonne idée de changer les caractères affichés par vous-même.
Merci d'avoir lu jusqu'à la fin.
Recommended Posts