采用go自带的net/http实现最简单的http服务

进阶:多种方法实现Web 服务器的创建-采用go语言

1 基本的HTTP服务器

基本的HTTP服务器需要处理几个关键的任务:

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

2 处理动态请求

net/http包 包含接受请求和动态处理请求所需的所有工具。

可以用http.HandleFunc函数注册一个新的处理程序。
第一个参数接受要匹配的路径,第二个参数为要执行的函数。

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参数。

3 提供静态资源

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

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

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

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

4 介绍连接

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

源代码

package main

import (
	"fmt"
	"net/http"
)

// IndexHandler test
func IndexHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "hello world")
}

func main() {
	http.HandleFunc("/", IndexHandler)
	http.ListenAndServe("127.0.0.1:8000", nil)
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值