DNS has nothing to do with http, it’s at a completely different level and outside any protocol built on top of IP. The network driver is only told to establish a connection to an IP, and GP will use it’s “sniffing” of the DNS lookups to connect that IP to the tunnel/no-tunnel config and act accordingly.
I’ve seen discussions about the driver “binding” routes to specific IP’s to the GP network interface, which would cause the OS to use the GP tunnel for all traffic to those IPs.
Take a scenario for www.acme.com - if DNS returns 4 IP’s (hosted on a good CDN), then GP has to remember that requests to those 4 IP’s should be treated based on the GP config for *.acme.com
I don’t know if the GP driver intercepts every connection to make the decision to tunnel or not, or if it uses a “bind” approach within the OS to wire requests to GP (or to the default NIC).
The path you are accessing, even at an HTTP protocol level has nothing to do with the connections. Connections are entirely based on the IP addresses used to establish the TCP/IP connection.
Browsers like Chrome do have an internal cache of “domain → IP” which reduces excess lookups, and it can be viewed under chrome://net-internals/#dns
This only is used to establish the connection, which GP should be routing to your local NIC or to it’s own virtual NIC. HTTP traffic including methods, headers, paths, are completely independent of establishing a connection, and are layered within the connection.
My dilemma is our GP config is set up to route certain domains to the GP tunnel, for the purpose of supporting reliable IP addresses to third party systems or firewall-protected sites. If your GP infra uses fixed IP’s (ours does), then what you want is for all traffic to *.acme.com to be tunneled 100% so the target servers can “allow” your traffic past any protections. From our experience, this is very inconsistent, and our trusted traffic winds up coming from our engineer’s ISP’s, and is not trusted.
The mac / GP relationship has been problematic in the past, often requiring creation of a “network connection” to get it to work at all, but with bad side effects like Chrome getting “network interrupted” errors frequently. If we denied creation of a “network connection” by GP, most things would work fine for Chrome, but split-tunneling would be 100% broken, sending all traffic to the ISP.
Recently, however the GP drivers for macos themselves seem to be stable, but the split-tunneling behavior is still extremely brittle.