Search code examples
httpgohttprequestvirtualhostvirtual-hosts

why is host missing from my http request header fields?


I'm printing out all the headers and I get:

map[Cookie:[_ga=GA1.2.843429125.1462575405] User-Agent:[Mozilla/5.0
(Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko)
Version/9.0.3 Safari/601.4.4] Accept-Language:[en-us] 
Accept-Encoding:[gzip, deflate] Connection:[keep-alive] 
Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]]

which means my browser is sending "Cookie", "User-Agent", "Accept-Language", "Accept-Encoding", "Connection", and "Accept" but there is no "Host" value.

How can I get my https://en.wikipedia.org/wiki/Virtual_hosting working without this value?

I'm using https://github.com/gin-gonic/gin


Solution

  • It stated on Golang http docs :

    For incoming requests, the Host header is promoted to the Request.Host field and removed from the Header map.

    So you can get the host by access

    http.Request.Host

    Check here for details : https://golang.org/pkg/net/http/