The following is a discussion of web and internet programming, from the point of view of a web developer. The reader should be conversant with some basic programming terminology and web design principles. These are covered in the Computer Programming 101 article and the HTML Tutorial.
Client Side Technology
People accessing the Internet do so with some form of client software. This might be a web browser, such as Internet Explorer or Firefox, or it might be another user agent. Different user agents exist to perform different tasks, and each has different capabilities.
Generally speaking, whatever the user agent, the principle is the same. The server delivers a document that acts as a container for media to be displayed to the user via the user agent. This can be HTML, XML (an RSS feed, for example), XHTML, a CSS (style sheet), or some other proprietary document definition such as WML (for WAP devices such as mobile telephones).
Within that document, there may be references to other application specific media such as MP3s, pictures, Flash presentations and so on. There may also be references (links) to other documents.
In addition, the user agent or client side device may be ready to receive scripts causing it to perform a local action. Such actions can be used to manipulate or enrich the delivered document - drop-down menus, displaying conditional information (depending on type of user agent), or even an entire application.
Such scripts are, however, totally accessible to the user agent, and even the user. Subsequently, delivery of a high value application may mean revealing the programming techniques used to create it, thus rendering it both a target for copying and negating the investment made in its' development. This is one reason that server side technology is more appropriate in such cases.
Server Side Technology
The web server exists to deliver content to any user agent requesting it. The content may be a document or other resource, and it is usually up to the user agent to make the right request to obtain the content that it requires.
However, in some cases, the server may also be required to do some processing in order to fulfil the client request. This behaviour is at the discretion of the owner of the content in conjunction with the owner of the server. In other words, the person creating the content can specify to the server that in order to correctly serve the content, some pre-processing will be required.
This can be as simple as augmenting an HTML (or similar) document with code that has a special meaning to the server (such as PHP), or as advanced as creating a whole program that delivers the content through the server but which has to be executed on the server as a regular program first.
The term used to refer to this kind of programming is CGI (Common Gateway Interface) programming or scripting. Common languages used are the aforementioned PHP and Perl. Perl started out as a reporting language and has been adapted to Internet use, while PHO was designed from the ground up to be a hypertext pre-processor.
Communication Technology
Between the Client and the Server, there is a special conduit of communication known as the protocol. This protocol exists in several layers - from the basic byte by byte communication up to the command-response mechanism that forms the high level application to application communication.
For the basis of this discussion, we shall limit ourselves to the network protocol, and application protocol. On the Internet, and underpinning the various application protocols, is the network protocol known as TCP/IP. This layer is responsible for making sure that the right packets get to the right place, in the right order.
The data that TCP/IP is transferring is a stream of bytes. This stream of bytes needs to be structured in a way which the client and server applications both understand. The HTTP protocol, for example, provides the basic web page delivery communication mechanism.
It exists as requests and responses. The client will ask for an artefact, and the server will reply with an OK, and the artefact in question, or some form of error response. Common HTTP errors include 404 (Not Found) and 500 (Internal Server Error).
All Internet communication happens through one protocol or another. There is FTP for file transfer, Telnet for command line machine to machine communication, and, in days gone by, Gopher, for menu driven document navigation.
Content Management
All of the above is generally used for one purpose - content management. In recent years the number of Content Management Systems (CMS) has exploded. Each one has it's own particular way of working, but all strive to deliver essentially the same thing : an extendable, scripted content delivery and administration system.
CMS exist at the client and sever level. For example, a simple Java Script menu system, coupled with some in-line text generation can be used to drive a small web site. At the other end of the scale, an SQL database coupled with a PHP application can be created which manages the entire content of a large scale web site such as Wikipedia.
Where Next?
The above is a grounding in the technology that drives the world wide web. To get started, one needs to find a suitable web host. For basic content delivery, all that is needed is:
- A web address;
- A place to store and deliver files;
- Knowledge of HTML
For more elaborate web sites and interactive services such as blogs or games, we need to have access to a server containing the above, and more:
- PHP and mySQL;
- Some programming knowledge;
- Patience...
A good place to start to find all of the above is a service provider like tinyhosts.com, who specialise in those just getting started. For more variety, try TheHostingChart.com or HostCompare.com where different services and prices can be put side by side.
Good luck!
Join the Conversation