code: func (roundTripper UnixRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
  	var conn net.Conn
  	var err error
  	if roundTripper.useTls {
  
  		conn, err = tls.Dial("unix", roundTripper.path, roundTripper.tlsConfig)
  		if err != nil {
  			return nil, err
  		}
  		if conn == nil {
  			return nil, errors.New("net/http: Transport.DialTLS returned (nil, nil)")
  		}
  		if tc, ok := conn.(*tls.Conn); ok {
  			// Handshake here, in case DialTLS didn't. TLSNextProto below
  			// depends on it for knowing the connection state.
  			if err := tc.Handshake(); err != nil {
  				go conn.Close()
  				return nil, err
  			}
  		}
  	} else {
  		conn, err = net.Dial("unix", roundTripper.path)
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	socketClientConn := httputil.NewClientConn(conn, nil)
  	defer socketClientConn.Close()
  
  	newReq, err := roundTripper.rewriteRequest(req)
  	if err != nil {
  		return nil, err
  	}
  
  	return socketClientConn.Do(newReq)
  }
docs: // The RoundTripper (http://golang.org/pkg/net/http/#RoundTripper) for the socket transport dials the socket
  // each time a request is made.