Definition of Words
I’d like to take a minute to define a few words that confuse some people when it comes to web development. Part of the confusion is, of course, the words are used differently depending on their context. I hope that this will help clear up any confusion that may exist out there.
Example: For demonstration purposes, we need a simple site. The example will be a site where you put in a zip code and it tells you the weather. We will call this site zipweather.com
API - Application Programing Interface. Technically it refers to the code. However it is most commonly used to express general ideas about integration between two pieces of code. Example: zipweather.com uses weatherchannel.com’s APIs to find the current weather for a location.
App - Application, the code that is doing most of the work. Example: zipweather.com is an app.
Bug - A general term that means “something not right”. It has been used to describe anything that simply is not right. An image out of place, a long pause between pages, an unhandled exception, are all examples of bugs.
Client - When speaking about people the client is you, the customer. When speaking about websites the client is whatever is using the site. For example IE 7 is a client. This gets tricky because a web site can be a client too. Example: When you go to zipweather.com your browser (IE, Firefox) is the client. When zipweather.com looks up the information at weatherchannel.com, then zipweather is the client.
Code - The piece of the web site that makes everything work. As a user you should never see the code. Example: There is code in zipweather.com that resolves zip codes to weather status.
Exception - Something that happens outside the normal scope of operation of the application. Most exceptions are “handled”, meaning that something in the code takes care of the problem. Example: entering 00000 for a zip code at zipweather.com would cause and exception (because the zip code does not exist). This exception would be handled if an error screen told you that 00000 was not a valid zip code.
Host - The physical machine that the server runs on. (Host and server can some times be interchanged) Example: zipweather.com is hosted at SliceHost.
Logs - Logs contain information about what happened on your server. Usually each server has it’s own log. Example: zipweather.com may have logs that show who queried what zip codes.
Markup - This is what is sent to the client so that it knows how to render the page. Example: Everything you see in your browser is the result of Markup.
Platform - A general term to describe what servers, languages, and operating systems are used to power your application. Some example platforms are Rails, .NET, Java, and PHP. Example: zipweather.com is run on the Rails platform. (Ruby, Rails, MySQL, Linux)
Request - In the web world a request is something a client does to a server. Much like you request service from me, the client (the browser) “requests” information from the server (Apache).
Server - The software that is running the application. (Host and server can some times be interchanged) Example: zipweather.com is running on an Apache server.
Unhandled Exception - These exceptions are not handled by the code. That means instead of a nice error screen you usually get something less useful. The site may go down or the request may not be processed. Example: Click Me
Web Services - The most common API for integrating two sites. Example: zipweather.com uses web services from weather.com to get the weather.
I hope the information on this page has helped to clear up some of the terms that may come up in normal conversations with developers. Keep in mind that different aspects of technology use these terms differently. For example IT people will tell you that a server is a piece of hardware, and that a host is a logical thing (very true in that context)