美文网首页
一、GO Web编程示例 - Hello World

一、GO Web编程示例 - Hello World

作者: coutinho | 来源:发表于2020-06-27 12:15 被阅读0次

简介

Go语言内建Web服务器功能。标准库中的net / http包包含有关HTTP协议的所有功能,包括HTTP客户端和HTTP服务器。 在此示例中,你将了解创建一个可在浏览器中查看的Web服务器有多么简单。

注册请求处理程序

首先,创建一个处理程序,该处理程序从浏览器、HTTP客户端或API请求接收所有传入的HTTP连接。 Go中的处理程序是具有以下特征的函数:

func (w http.ResponseWriter, r *http.Request)

函数接收两个参数:

  1. http.ResponseWriter,可向其写入文本、http响应;

  2. http.Request,包含有关此HTTP请求的所有信息,包括URL、header等内容。

将请求处理程序注册到默认的HTTP Server就是这样简单:

http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, you've requested: %s\n", r.URL.Path)
})

监听http连接

请求处理程序本身不能接受来自外部的任何HTTP连接。HTTP服务器必须监听端口,以便将接收到的连接传递给请求处理程序。大多数情况下80端口是HTTP流量的默认端口,所以此服务器也将侦听它。
下面的代码将启动Go的默认HTTP服务器,并侦听端口3456上的连接。浏览器访问http://localhost/,将服务器正在处理请求。

http.ListenAndServe(":3456", nil)

若监听80端口,可能会提示没有权限,需要root权限。

代码

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, you've requested: %s\n", r.URL.Path)
    })

    http.ListenAndServe(":3456", nil)
}

相关文章

网友评论

      本文标题:一、GO Web编程示例 - Hello World

      本文链接:https://www.haomeiwen.com/subject/kbrmfktx.html