Go Pentester - HTTP Servers
Posted keepmoving1113
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go Pentester - HTTP Servers相关的知识,希望对你有一定的参考价值。
Routing with the gorilla/mux Package
A powerful HTTP router and URL matcher for building Go web servers
https://github.com/gorilla/mux
Install package
go get -u github.com/gorilla/mux
Build sample 1:
package main import ( "fmt" "github.com/gorilla/mux" "net/http" ) func main() { r := mux.NewRouter() r.HandleFunc("/foo", func(w http.ResponseWriter, req *http.Request) { fmt.Fprintln(w, "hi foo") }).Methods("GET") http.ListenAndServe(":8000", r) }
Run the test sample 1.
Build sample 2: It‘s helpful to match and pass in parameters within the request patch (for example, when implementing a RESTful API)
package main import ( "fmt" "github.com/gorilla/mux" "net/http" ) func main() { r := mux.NewRouter() r.HandleFunc("/users/{user}", func(w http.ResponseWriter, req *http.Request) { user := mux.Vars(req)["user"] fmt.Fprintf(w, "hi %s ", user) }).Methods("GET") http.ListenAndServe(":8000", r) }
Run and test sample 2.
Build sample 3: Use regular expression to qualify the patterns passed.
package main import ( "fmt" "github.com/gorilla/mux" "net/http" ) func main() { r := mux.NewRouter() r.HandleFunc("/users/{user:[a-z]+}", func(w http.ResponseWriter, req *http.Request) { user := mux.Vars(req)["user"] fmt.Fprintf(w, "hi %s ", user) }).Methods("GET") http.ListenAndServe(":8000", r) }
Run and test sample 3.
以上是关于Go Pentester - HTTP Servers的主要内容,如果未能解决你的问题,请参考以下文章