美文网首页
二、GO Web编程示例 - HTTP Server

二、GO Web编程示例 - HTTP Server

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

前言

这个示例将展示如何在Go中创建基本的HTTP服务器。一个基本的HTTP服务器需要处理几个关键的任务:

  1. 处理动态请求:处理来自浏览网站、登录帐户或发布图片的用户的请求。
  2. 提供静态资源:为浏览器提供JavaScript、CSS和图像,为用户创建动态体验。
  3. 接受连接:HTTP服务器必须监听一个特定的端口,以便能够接受来自internet的连接。

处理动态请求

net/http包包含接受请求和动态处理请求所需的所有工具。可以用http.HandleFunc函数注册一个新的处理程序。第一个参数接受要匹配的路径,第二个参数为要执行的函数。在下面这个例子中:当某人浏览网站(http://example.com/)时,他或她将收到一个欢迎的消息。

http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Welcome to my website!")
})

http.Request包含关于请求及其参数的所有信息。可以t通过r.URL.Query(). GET(“token”)读取GET参数,或者通过r.FormValue(“email”)读取POST参数。

提供静态资源

为了提供JavaScript、CSS和图像等静态资源,可以使用内建函数http.FileServer,其参数指向一个url路径。文件服务器需要知道从哪里提供文件,方法如下:

fs := http.FileServer(http.Dir("static/"))

文件服务器就绪后,只需将url路径指向它,就像处理动态请求时所做的那样。需要注意的一点是:为了正确地提供文件,需要删除url路径中文件所在目录的名称。

http.Handle("/static/", http.StripPrefix("/static/", fs))

接受连接

完成基本的HTTP服务器的最后一步是,监听端口以接受来自internet的连接。Golang有一个内置的HTTP服务器,可以快速启动。启动后,可以在浏览器中查看HTTP服务器。

代码

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Welcome to my website!")
    })

    fs := http.FileServer(http.Dir("static/"))
    http.Handle("/static/", http.StripPrefix("/static/", fs))

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

相关文章

  • 二、GO Web编程示例 - HTTP Server

    前言 这个示例将展示如何在Go中创建基本的HTTP服务器。一个基本的HTTP服务器需要处理几个关键的任务: 处理动...

  • day01

    Java Web编程 Tomcat 服务器 是 Apache 提供的 Web Server, 可以实现Http协议...

  • Go Web 编程之 Hello World

    概述 计划写一个讲 Go Web 编程的系列文章。从基于 net/http 包编写 Go Web 程序开始,讲述处...

  • 2022-10-25 http.server

    内建 http server 示例

  • Web Server、HTTP Server、Applicati

    由于Web服务器主要支持的协议就是HTTP,一般 Web Server == HTTP Server。Web服务器...

  • Go web编程

    Go web编程 专栏简介 分享 Go web 编程。在这里你可以了解到什么是 Go,为什么越来越多人喜欢它。在实...

  • 一、GO Web编程示例 - Hello World

    简介 Go语言内建Web服务器功能。标准库中的net / http包包含有关HTTP协议的所有功能,包括HTTP客...

  • 关于http服务器执行两次的问题

    最近接触go web编程 ,用chrome请求本地server的时候,回调里面的某些打印被执行了两次。抓包之后发现...

  • Go Web编程.epub

    【下载地址】 《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一...

  • http服务器简单理解

    常用的web server: apache http server; nginx; iis ;tomcat...

网友评论

      本文标题:二、GO Web编程示例 - HTTP Server

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