创作不易感谢支持。
一条主写Go和PHP的小菜鸟。平常有时间喜欢自己写点东西,如有不对的地方,欢迎大佬指点。 个人博客:太阳上的雨天 地址:http://blog.caixiaoxin.cn 善于分享,希望有助他人. 非常感谢各位大佬的关注和支持

Go语言内置了http包提供了HTTP客户端和服务端的实现
通俗一点讲:Go语言可以通过net/http包搭建自己的服务器处理http的请求
搭建服务器分为两大种方式:第一种是通过默认多路复用器DefaultServeMux,第二种是通过新建多路复用器NewServeMux的方式。
默认多路复用器DefaultServeMux提供了Handle、HandleFunc、Server搭建服务器。不论哪一种都可以实现服务器的搭建。Demo案例

Handle

package main

import (
	"net/http"
	"fmt"
)

type MyHandler struct {
      
        }

func (m *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
      
        
	fmt.Fprintln(w, "通过自己创建的处理器...", r.URL.Path)
}

func main() {
      
        
	myHandler := MyHandler{
      
        }
	http.Handle("/", &myHandler)

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

HandleFunc

package main

import (
	"fmt"
	"net/http"
)

// 创建处理器函数
func handler(w http.ResponseWriter, r *http.Request) {
      
        
	fmt.Fprintln(w, "Hello world!", r.URL.Path)
}

func main() {
      
        
	http.HandleFunc("/", handler)

	// 创建路由
	http.ListenAndServe(":8080", nil)
}

Server结构

package main

import (
	"net/http"
	"fmt"
	"time"
)

type MyHandler struct {
      
        }

func (m *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
      
        
	fmt.Fprintln(w, "通过详细Serve配置创建http服务器处理请求", r.URL.Path)
}

func main() {
      
        
	myHandler := MyHandler{
      
        }

	// 创建Serve结构,并详细配置里面的字段
	server := http.Server{
      
        
		Addr:        ":8080",
		Handler:     &myHandler,
		ReadTimeout: 2 * time.Second,
	}

	server.ListenAndServe()
}

NewServeMux

package main

import (
	"net/http"
	"fmt"
)

//handler
func handler(w http.ResponseWriter, r *http.Request) {
      
        
	fmt.Fprintln(w, "通过NewServeMux创建多路复用器创建服务器处理请求!", r.URL.Path)
}

func main() {
      
        
	mux := http.NewServeMux()

	mux.HandleFunc("/", handler)

	http.ListenAndServe(":8080", mux)
}