go 语言内置的5个handler NOTFoundHandler redirectHandler stripPrefixHandler TimeoutHandler fileserver
func NOTFoundHandler() Handler
// 返回一个handler, 它给的每个请求的响应都是"404 page not found"
func RedirectHandler(url string ,code int) Handler {}
// 返回一个handler 他的每个请求使用给定的状态码跳转到指定的URL
// URL 要跳转的URL code 跳转的状态码(3xx) 常见的statusMovedPermanentrly statusFound statusseeother
func StripPrefixHandler(prefix string, h handler)handler
// 返回一个handler 他从请求URL 中去掉指定的前缀 然后再调用另一个handler
// 如果请求URL 与提供的前缀不符合 那么404
// 有点像中间件 prefix URL 将要被移除的字符串前缀
// h 是一个handler 在移除字符串前缀之后 handker 将会接受到请求
func TimeoutHandler(h handker ,dt time.Duration ,msg string){
// 返回一个handler 他用来在指定时间内运行传入的h
// h 将要被修饰的handler
// dt 第一个handler 允许的处理时间
// msg 如果超时那么就把msg 返回给请求 表示响应时间过长
func fileserver(root FileSystem) Handler
// 返回一个handler 基于root的文件系统来响应请求
// type FileSystem struct{
// Open (name string)(File,error)
// }
// 使用时需要到操作系统的文件系统,所以还需要委托给 type dir string
// func(d dir)Open(name string)(File,error)
func main() {
// http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
// http.ServeFile(w, r, "www"+r.URL.Path)
// })
http.ListenAndServe(":8080", http.FileServer(http.Dir("www")))
}
Golang http 5个内置的handler
最新推荐文章于 2023-02-16 20:20:18 发布