Welcome to nacasb.org
Web Hosting - DNS, How The Internet Keeps Track of Names
The way computers communicate is, in a way, very similar to something very familiar: the postal system that delivers letters and packages. Here's how...
The Internet is just what the name suggests, a large inter-connected set of networks. But those networks are pointless without the one part that forms what is called their 'end-nodes', otherwise known as computers. Those computers often need to share information because the people who use them want to share information.
But, in a system where there are millions of separate computers, how can you enable them all to communicate? One very important feature of that solution is performed by something called DNS, the Domain Name System.
Every part of a network that is going to send or receive information is assigned an IP address. That's a numeric identifier that uniquely specifies a particular 'node', such as a computer, a router that directs traffic or other component. They look like this: 188.8.131.52
But those numbers are more difficult for people to remember and work with. They also aren't very attractive from a marketing perspective. So, a naming system was layered on top of some of them, mostly the computers involved, though routers have names, too.
But once you have a system that associates a unique IP address to a given name, you need some way of keeping track of all of them. That's carried out by several different pieces of the system: Name Registrars, DNS Servers and other components.
The Name Registrars, overseen by IANA (Internet Assigned Numbers Authority) and other international bodies, provide and keep track of domain names. When you register with GoDaddy or any of a hundred other intermediate companies, ultimately that information makes its way into a number of specialized databases stored inside DNS Servers.
A DNS Server is the hardware and/or software that tracks and forwards the IP Address/Domain Name pair from one place to the next. In many cases, there are a number of them between your browser and the remote computer you want to share information with.
Suppose you request information from, say, Yahoo's site by clicking on a link on their site. DNS resolves (translates) the name of WHO IS making the request and OF WHOM, to addresses, then passes the request through the network to the requested IP address. The requested data is then passed back through the mesh of network components to your computer and displayed in your browser.
Whether the communication is between a desktop computer and a server somewhere, or between one server and another, the process is essentially the same. DNS servers translate names into IP addresses and the requests for data are forwarded on.
In some cases those DNS servers are part of a specialized network computer whose sole job is to do the translation and forwarding. In other cases the DNS software may reside on a server that also houses a database of general data, or stores email, or performs other functions.
But however complicated the chain or the parts, the basic process is simple. Translate the name to an address, just as the postal system does. Whether international or local, your name is associated with an address, and the deliveries are made to the address, then forwarded to a particular name.
Web Hosting - Databases, What Are They and Do You Need One? 'Database' is one of the most commonly used terms that one encounters in web site design. Yet, what they really are and whether they're essential is often not clear to novices. A database is a collection of organized data, stored in files that have a specific structure. It's that organization and structure that allows for easy and rapid storage and retrieval. The need for a database generally only arises when you have a certain amount of information and that information needs to have some structure. If you have a half-dozen names and addresses to store, a database is usually overkill. If you have a blob of data with no relationships between any of the items in that blob, maintaining a database is usually more trouble than it's worth. Maintain a database? Yes, like other complex systems a database, to be effective, needs to be designed properly at the outset then kept 'tuned' for good performance. The alternative is to gradually allow the database to become more and more disorganized. That leads to difficulty in use, poor speed of retrieval and more frequent failures. With MySQL, Access or MS SQL Server, the three most common choices of database product for web sites today, setting up a database is relatively simple. Even those with limited technical skill can get one up and running just by following some simple instructions. But some thought should be given to how you want the information organized, and to maintaining the system during its lifetime. Suppose you have a set of names, addresses, email addresses, products purchased, date purchased and amount. If you have only a few dozen records it matters very little how these pieces are arranged and related. A database usually isn't even warranted in this scenario. Once you have several thousand or more records, it matters a lot. Speed, the ease of expanding the set of attributes (like adding, say, product category), and other issues come into play. Even those with little technical expertise, but a willingness to exert logical thought and invest some time, can build a very robust database. Think about how you would organize a set of data (called 'tables'). Should Name, Address, and Product be in the same table? Or should the personal information be stored in one table and any product information (product, price, ...) in another? Some experimentation may be needed to get it right, but the choices have an impact on how easy the tables are to maintain. It also affects the speed with which programs can fetch old data and store the new. Having a database also introduces new maintenance issues for the server administrator, since backups usually need to be done differently. Recovering a failed database is usually more complicated than simply re-copying files from yesterday. Ask your hosting company what tools and skills they have for dealing with any database system you consider. It's true that introducing a database creates more complexity and the need for additional thought and administrative effort. At a certain level, professional expertise will be needed. But clearly the advantages outweigh the costs in many cases. Companies large and small eventually use databases to store and organize data. At some point, you may be fortunate enough to be one of them.
Web Hosting - FTP and Other File Transfer Tools Anything related to the Internet or computers is bound to introduce technical issues pretty soon. One of the earliest that novice web site owners encounter is FTP, which is an acronym for File Transfer Protocol. Seeing it spelled out, it's easy to see why those in the know quickly move to speaking in short hand. The reason web site owners soon will (or need to) become familiar with FTP is obvious to anyone who has built a site on a remote server. You have to have some way of getting the files to the remote computer and FTP is one of the most common tools. It's also one of the simplest and most efficient. FTP is composed of two parts: the client software and the server software. It's similar, in a way, to talking to someone on the phone who writes down everything you say. You (the client) make a request ('transfer this file to the server') and the listener (the server) takes the request and acts on it. That request to copy a file from a local computer to the remote one is carried out (often 'under the covers') by a PUT command, as in PUT this there. You create the web page (in the form of a file) and then PUT the file on the server. To move a file in the opposite direction, from the remote server to your local computer, your client software issues a GET command. Many FTP clients have graphical interfaces, similar to Windows Explorer, that allow you to drag-and-drop or otherwise copy the file without ever seeing the actual commands that carry it out. But it's helpful sometimes to know what goes on underneath. In tricky cases it can be an advantage to use a command line interface (in Windows, the 'DOS box', with a similar interface familiar to most Linux users). Knowing the commands and being able to use them in the command line form can sometimes help you diagnose what is going on when the graphical tools misbehave. But FTP is not the only way to get a file from here to there. In fact, your browser moves files around from a remote computer to your local one all the time. In most cases, when you type in or click on a URL, what happens under the covers is in essence a file transfer process. The web page is transferred from the web server to your local computer then displayed by the browser. Alternatively, you can sometimes even email a web page/file from your local computer to the remote server, then use an email client on the server itself to get the file and put it in a folder. That requires that you have some form of access to the remote computer. But there are many ways of doing that, such as in-built utilities in the operating system or using commercial remote control programs. Those alternatives can be helpful to know in cases where the FTP file transfer process is misbehaving. Having more than one way to accomplish the task helps you diagnose what might be going wrong. It also helps you get the job done when the usual tools aren't cooperating. The more you learn about these sometimes puzzling acronyms, the easier you can accomplish your own goals.