golang之http请求的dns解析代码流程

src/net/http/client.go
func (c *Client) do(req *Request) (retres *Response, reterr error)


src/net/http/client.go
func (c *Client) send(req *Request, deadline time.Time) (resp *Response, didTimeout func() bool, err error)


src/net/http/client.go
func send(ireq *Request, rt RoundTripper, deadline time.Time) (resp *Response, didTimeout func() bool, err error)


src/net/http/roudtrip.go
func (t *Transport) RoundTrip(req *Request) (*Response, error)


src/net/http/transport.go
func (t *Transport) roundTrip(req *Request) (*Response, error)


src/net/http/transport.go
func (t *Transport) getConn(treq *transportRequest, cm connectMethod) (pc *persistConn, err error)


src/net/http/transport.go
func (t *Transport) queueForDial(w *wantConn)


src/net/http/transport.go
func (t *Transport) dialConnFor(w *wantConn)


src/net/http/transport.go
func (t *Transport) dialConn(ctx context.Context, cm connectMethod) (pconn *persistConn, err error)


src/net/http/transport.go
func (t *Transport) dial(ctx context.Context, network, addr string) (net.Conn, error)


src/net/dial.go
func (d *Dialer) DialContext(ctx context.Context, network, address string) (Conn, error)


src/net/dial.go
func (r *Resolver) resolveAddrList(ctx context.Context, op, network, addr string, hint Addr) (addrList, error)


src/net/ipsock.go
func (r *Resolver) internetAddrList(ctx context.Context, net, addr string) (addrList, error)


src/net/lookup.go
func (r *Resolver) lookupIPAddr(ctx context.Context, network, host string) ([]IPAddr, error)