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的主要内容,如果未能解决你的问题,请参考以下文章

Go Pentester - HTTP CLIENTS

Go Pentester - HTTP Servers

pentester系统文件包含漏洞实验

go template修改定界符Delims的坑

go template修改定界符Delims的坑

Go原理go语言两行代码创建http服务