返回
用Go Web 编程实践 (8) 创建 HTTP 和 HTTPS 服务器端
后端
2023-11-09 05:54:29
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 服务。