DNS (Domain Name System) is the mechanism which translates a symbolic name, like www.techrepublic.com to an IP address like
208.50.157.239.
Any time you make a request of either your machine or another machine for any symbolic address (dns name), *that* machine does the following:
1. It looks in its hosts file (/etc/hosts) to see if there is an entry for the name you specified. If so, it returns the IP address in the entry.
2. If you are using NIS, it asks NIS about the name, and returns the IP if found.
3. It looks at the DNS nameservers specified on that machine (typically in /etc/resolv.conf). It finds the first nameserver (aka DNS server) listed and sends a recursive query to that nameserver for the name you requested. Ifthe nameserver knows the name (either it "is authoritive" for that name or has recently looked it up), it returns the IP. If not, it starts at the right-hand end of the name, and queries a root server and then other servers for the name. (example: Looking for rtfm.mit.edu, it queries the root server, which tells it that the nameserver for mit.edu will know. It then queries the nameserver for mit.edu, which returns the IP for rtfm.mit.edu.)
YOUR nameserver (either at your site or at your ISP)tells the world about machines in your domain. It also can be (but not necessarily is) the server that your machines query when they want to know someone else's address.
Unless you do a lobotomy on your DNS server, when you make a query to it, itWILL go to the internet if it does not know the name you asked for.
NFS allows linux/unix/etc systems to share disks. It has nothing to do with DNS.
HTTP is the protocol (language) that a web browser (like Netscape) uses to talk with a web server (like apache). Again, it is a separate issue from DNS.
Good luck.