Home  >  Article  >  Backend Development  >  How to implement http server in golang

How to implement http server in golang

PHPz
PHPzOriginal
2023-04-26 14:34:061516browse

Golang is a relatively young programming language, and its application in the field of web development is becoming more and more widespread. In this article, we will introduce how to implement a simple HTTP server using Golang and demonstrate its basic usage through an example.

HTTP is an important part of the web development process. It is a protocol based on client-server communication and is used to transmit data between the client and server. The main function provided by the web server is to receive client requests and respond to the requests, which is what this article will describe.

Golang natively provides the ability to implement HTTP servers using the http package. In the http package, a ServeMux type is provided to implement HTTP routing mechanism. Through the routing mechanism, we can execute different processing functions according to different request URLs. This article will explain how to use it in detail.

Step 1: Import the required packages

In Golang, we need to import the required packages to use their functions. When implementing the HTTP server, we need to import the http and net/http packages. The HTTP package contains content related to the HTTP protocol, while the net/http package contains content related to the HTTP server. The code is as follows:

package main

import (
    "fmt"
    "net/http"
)

Step 2: Implement the HTTP processing function

The HTTP server needs to implement one or more processing functions to receive client requests and give responses. The processing function is a :func(http.ResponseWriter, *http.Request) type function (a function pointer is used here), which contains two parameters: http.ResponseWriter and *http.Request. The former is an interface for writing back response content, while the latter is a structure containing client request information. In the processing function, we need to generate a response based on the request information and use http.ResponseWriter to write the response content back to the client. The following is a simple processing function, which is used to handle client requests for http://localhost:8080/hello-world:

func Hello(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello World!")
}

Step 3: Implement HTTP router

Implementing an HTTP server requires the use of a router. In Golang, HTTP routers can be created using the ServeMux type in the http package. The router will map the client request URL to the corresponding processing function. In this example, we define a processing function named Hello to respond to the client’s request for http://localhost:8080/hello-world, then we need to This function is registered in the ServeMux router. The code is as follows:

func main() {
    mux := http.NewServeMux()
    mux.HandleFunc("/hello-world", Hello)
    http.ListenAndServe(":8080", mux)
}

In this example, we first create an instance of ServeMux and assign it to mux. Next, we use mux.HandleFunc to register the handler function. This function accepts two parameters, the first parameter is the URL path, and the second parameter is the processing function. It maps the URL path to the handler function so that the corresponding handler function can be called when the request reaches the router.

Finally, in the http package, a function named ListenAndServe is provided, which will start the HTTP server at the specified address. In this example, we use :8080 as the listening address. The code is as follows:

http.ListenAndServe(":8080", mux)

Step 4: Complete code

package main

import (
    "fmt"
    "net/http"
)

func main() {
    mux := http.NewServeMux()
    mux.HandleFunc("/hello-world", Hello)
    http.ListenAndServe(":8080", mux)
}

func Hello(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello World!")
}

Running this code will start an HTTP server locally, enter http://localhost:8080/hello in the browser -world, you can see the response results.

The above is the detailed content of How to implement http server in golang. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn