如何处理golang http服务器中的意外错误

时间:2019-02-09 06:37:29

标签: go

这是golang中的简单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)
}

我的问题是,为什么我将%放在url中。转到服务器原因400 Bad Request错误

示例:

http://localhost:80/anythink%

enter image description here

当有人在go http服务器中请求这样的错误链接时,会导致安全信息泄漏。如果足够聪明,则检测服务器端类型。主要问题是如何处理此错误

1 个答案:

答案 0 :(得分:0)

"http://localhost:80/anything%"是无效的URL。百分比字符用于percent-encode保留字符,并且必须后跟两个十六进制数字。要表示百分比字符本身,请写%25