The Referrer-Policy HTTP header controls how much referrer information (sent via the Referer header) should be included with requests.
Read more at developer.mozilla.org
Iris uses the Shopify's goreferrer package to expose the Context.GetReferrer()
method.
The GetReferrer
method extracts and returns the information from the "Referer"
(or "Referrer"
) header and url query parameter as specified in https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy.
GetReferrer() Referrer
Which Referrer
looks like that:
type Referrer struct {Type ReferrerTypeLabel stringURL stringSubdomain stringDomain stringTld stringPath stringQuery stringGoogleType ReferrerGoogleSearchType}
The ReferrerType
is the enum for a Referrer.Type value (indirect, direct, email, search, social). The available types are:
ReferrerInvalidReferrerIndirectReferrerDirectReferrerEmailReferrerSearchReferrerSocial
The GoogleType
can be one of those:
ReferrerNotGoogleSearchReferrerGoogleOrganicSearchReferrerGoogleAdwords
package mainimport "github.com/kataras/iris/v12"func main() {app := iris.New()app.Get("/", func(ctx iris.Context) {r := ctx.GetReferrer()switch r.Type {case iris.ReferrerSearch:ctx.Writef("Search %s: %s\n", r.Label, r.Query)ctx.Writef("Google: %s\n", r.GoogleType)case iris.ReferrerSocial:ctx.Writef("Social %s\n", r.Label)case iris.ReferrerIndirect:ctx.Writef("Indirect: %s\n", r.URL)}})app.Listen(":8080")}
How to curl
:
curl http://localhost:8080?\referrer=https://twitter.com/Xinterio/status/1023566830974251008curl http://localhost:8080?\referrer=https://www.google.com/search?q=Top+6+golang+web+frameworks\&oq=Top+6+golang+web+frameworks