Alpha Edition!, e-mail spelling/grammer/topic suggestions to email@example.com
A server can actually be many things, but the primary purpose of a server is to serve (or transmit) data, or data service(s). The more common definition of a server would be a software package that is available on a computer, which would transmit data through a network. There are several different kinds of servers, and several different ways of using them. So lets go through a few common ones.
- Web Servers: Transmit web content and data via a http GET and POST requests (i’ll explain later). Web Servers usually are only able to transmit static files. Webserver content is most often viewed by clients which understand html, and other web technologies such as web browsers.
- Application Web Servers, can deliver either be dynamic or non-dynamic content by leveraging server based programming languages which are able to deliver dynamic data to a web client.
- Difference Between: Application Servers, and Web Servers? Not a whole lot! The only real difference is what a server can actually do, for instance the functionality which makes application servers unique is the ability to return dynamic sets of data and content back to a web client. All servers transmit the same type of content to web based clients, regardless if they are an application server or not.
- Application servers generally have many (but not always all) of these unique properties:
- A type of deployment environment.
- Very basic authentication services.
- Come pre-packaged with frameworks.
- Contain database management systems.
- Associated with a language for dynamic processing of data.
- Application servers focus on serving dynamic data, thus facilities are more focused on satisfying business logic, and data requests. Webservers are more or less “generic” and use agnostic.
- Application servers contain facilities to package up, and execute business logic.
- Contain unique webservice facilities, specifically: binary/bytecode object transmission systems for third party plugins, or platform specific technologies.
Today, application servers are the only way of delivering dynamic binary data over the internet leveraging (CORBA, RPC, and other non-XML data transmission technologies), though these technologies are not used as much as they once were. What happend was when xml came out, it offered a platform agnostic way of transmitting data through the internet, unlike many of the plarform specific standards. Thus allowing any platform that understood xml to be able to send and recieve data through the internet.
- Database Server: Is simply software which provides access to a database through a network. Database servers are often bundled with the actual database which they service. The primary function of database servers today is to accept SQL based “queries” (requests), and retrieve/store data, images, text. There are several different kinds of databases, but that is a discussion for a different book.
- File/FTP Server: Is a server which delivers files through a network. There are several different kinds of file servers, including P2P, Torrent, etc.. The most popular on the web today (and also the oldest) is a FTP Server or File Transfer Protocol. This protocol is built into almost every web browser available. So if you ever need to distribute a file FTP is the way to go. As a side note, most browsers these days also support HTTP based transfers; meaning if you have a file, you can just put it out on the webserver and as long as it is not a format that the browser knows of it will download it.
- Proxy Server: Is a “proxy” representative of a real one. It is generally the job of a proxy server to forward requests made to it from another computer, and then return the results from that request back to the request(or). Proxys are also sometimes used in filtering, and they are an essential part of routing technology.