返回

用Go Web 编程实践 (8) 创建 HTTP 和 HTTPS 服务器端

后端

HTTP 服务简介

HTTP(超文本传输协议)是万维网的基础协议,用于在 Web 浏览器和 Web 服务器之间传输数据。HTTP 服务器是处理来自客户端的请求并发送响应的软件应用程序。

创建 HTTP 服务器

在 Go 语言中创建 HTTP 服务器非常简单。您可以使用内置的 net/http 包来轻松设置和配置服务器。

以下是一个简单的 HTTP 服务器示例:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    // 创建一个新的 HTTP 服务器。
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    })

    // 启动服务器,监听端口 8080。
    http.ListenAndServe(":8080", nil)
}

当您运行此程序时,它将在端口 8080 上启动一个 HTTP 服务器。您可以通过在浏览器中输入 http://localhost:8080 来访问服务器。

HTTPS 服务简介

HTTPS(超文本传输协议安全)是 HTTP 的安全版本,它使用 SSL/TLS 加密来保护客户端和服务器之间的通信。HTTPS 服务器是处理来自客户端的请求并发送响应的软件应用程序,同时使用 SSL/TLS 加密来保护通信。

创建 HTTPS 服务器

在 Go 语言中创建 HTTPS 服务器也非常简单。您可以使用内置的 crypto/tls 包来轻松设置和配置服务器。

以下是一个简单的 HTTPS 服务器示例:

package main

import (
    "crypto/tls"
    "fmt"
    "net/http"
)

func main() {
    // 创建一个新的 HTTP 服务器。
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    })

    // 创建一个新的 SSL/TLS 配置。
    tlsConfig := &tls.Config{
        // 设置证书和私钥。
        Certificates: []tls.Certificate{
            {
                Certificate: []byte("your certificate here"),
                PrivateKey:  []byte("your private key here"),
            },
        },
    }

    // 启动服务器,监听端口 443。
    http.ListenAndServeTLS(":443", "your certificate here", "your private key here", nil)
}

当您运行此程序时,它将在端口 443 上启动一个 HTTPS 服务器。您可以通过在浏览器中输入 https://localhost:443 来访问服务器。

总结

在本文中,我们介绍了如何使用 Go 语言创建 HTTP 和 HTTPS 服务器。我们学习了如何设置服务器、处理请求并使用安全连接进行通信。这些知识将帮助您构建安全可靠的 Web 服务。