When you type in an address such as http://www.google.com, the http request that gets sent out to is
173.194.75.147 port:80.
Two questions
1>Is it the browser or the OS that contacts the DNS service to resolve 173.194.75.147?
2> Does the browser know to target port 80 by default?
The browser lets the OS do the name-lookup. For example, in Windows 7, the
C:\Windows\System32\drivers\etc\hostsfile is queried first, then DNS servers. In Linux, FreeBSD etc,/etc/hostsis queried first, then the nameservers in/etc/resolv.conf.Destination-port=80 is the default when your URL targets the http protocol, destination-port=443 when the protocol is https etc. This is “decided” by your browser, according to standards.