Introduction to the World Wide Web (WWW)
Tags: webdev
Published: 2021-03-20 07:49:13

In 21st century, information sharing and virtual businesses and services have dramatically improved by an ever growing mindset in technology.  Particularly, the web has advanced so crazy that is allowing us today to conduct businesses of different types virtually and share different types of information instantly.  Most entrepreneurs have modernized their businesses to harness online opportunities which have become the norm for many buyers and sellers. Most observers have seen a dramatic increase in online retail and transactions that keep growing every single minute. Online conferences and virtual meetings have become our daily experience. Governments are now leveraging this life saving opportunity to run governmental services online and thus alleviating a lot of difficulties and problems encountered in serving the public.  Educational institutions have redesigned their systems and modified their curriculum to adapt with information technology. These advances in technology, particularly the web have enabled many entrepreneurs and graduates to change business and career respectively. Today we are experiencing giant technology companies thriving and becoming the world’s top richest companies. Companies like Microsoft, Oracle, Google, Facebook, Twitter, Amazon, PayPal, EBay, and Alibaba are examples of today’s top richest entrepreneurs. This trend of the web has created many opportunities for youth giving  rise to job creation. Many web related professions have spawned dramatically, some of them you may hear pronounced as Front-end Web Developer, Web Designer, UX/Designer, Back-end Web Developer and Full-stack Web Developer. The reason why the web has become so important is its versatility that allows mobile developers to leverage this capability to develop mobile apps that use most of web technologies and thus increasing their portability and compatibility. Learning this incredible technology is an invaluable skill to gain in this information age. The world has changed into digital, everything around us seem to be digital, in schools, offices, and our homes we use devices of different types to accomplish our daily activities and some of them really automate a lot of heavy tasks for us. Nevertheless, these devices are developed in some way to use software.  The software that enables these devices to communicate and transmit data in an appropriate format. Learning web development should give you an opportunity to interact with these devices and make a tremendous amount of money. 


## The Web 
### What is the web? 

The web is the giant collection of electronic documents and media which hyperlink each other to form a spider web. These documents reside on top of the Internet (interconnected remote computers worldwide). Some computers on the internet serve as web servers to store these electronic documents which can be shared with client computers using software tools to process and display these documents. In 1989, a British scientist at CERN (the European Laboratory for Particle Physics in Geneva, Switzerland) Tim Banners-Lee conceived the idea of the web by developing a hypertext document that allowed him to click a special text within the document to jump to another document. The process of jumping from one document to another was simplified by a technic employed a protocol called HTTP (Hypertext Transfer Protocol). Banners-Lee developed these standards (called protocols) that allowed the client and server computers to communicate and exchange documents on the web. Basically, the process was to store some documents on a computer acting as a server or a warehouse (with a large hard disk space) for these documents, this server computer employed a software program to manage and serve the documents. On another hand, a client computer issued a request to the server computer requesting a given document specified in the request (known as URL), the server had to search its warehouse to find that requested document and if was found, the server would then send back the response containing the requested document. Consequently, the client computer would process the document and display its content on the screen. As I mentioned that this process was simplified by http protocol for the server and client computers to communicate through the internet.

## Web vs. Internet 

Some people misunderstand the difference between these two technologies. As we explained that the web is simply a collection of electronic documents hyperlinking each other.  On another hand, the Internet is the physical computers connected by wires or wireless using radio technology or satellite capable of communicating and transmitting information regardless of its type from one computer to another. The internet itself implements different types of protocols to securely and reliably transmit data from one point to another.  TCP/IP are the basic protocols used by the Internet which govern the transmission of files and data over the internet.

## What makes up the web? 

 Electronic documents stored on different computers around the world hyperlink each other to form an illusion of a spider web. The web is made up of several technologies including hardware, software, standards, and documents and media. These four ingredients are the core factors that make up the entire web. 
The hardware
In terms of hardware, interconnected computers (including all kinds of devices capable of sending and receiving information to or from another device) designed to share files and emails. These computers are classified into two categories: computers acting as servers and other acting as clients. The server computers mainly store, manage and serve web documents whilst client computers mainly issue requests to server computers and process the response containing the web document which has a special format understood by a client software called web browser.  The web browser deciphers all the code used to make the document into a human readable and understandable format and displays its content on the screen.

## The software 

In terms of software, server and client computers employ special software programs that use HTTP protocol as the communication standard. Without this protocol the server and client wouldn’t understand the message shared between them. A software program called Apache (developed and maintained by Apache Software Foundation) is one of popular web servers employed on many server computers today. There are many server software programs designed to manage and serve different types of content.  Web servers are among these software programs that use different protocols based on their functionalities. A part from the server software itself, there is a number of technologies used together with a server software to process a request and interact with database systems. These technologies include the use of a special computer programming language (such as Java, PHP, and Python) used to write commands for processing incoming requests and generate a response that the server software takes and sends it back to the web browser which issued the request. On another hand, a software program referred to as web browser acts as a client program that communicates with the server program. There are many web browsers including Firefox (developed and maintained by Mozilla Foundation), Google Chrome   (developed by Google) and Microsoft Edge (developed by Microsoft). These web browsers must follow a uniform standard laid out by W3C (World Wide Web Consortium) in order to offer a cross-platform capability (where users are able to experience same results regardless of the web browser in use). 

## The standards

The web browser processes a response from the server and outputs the results in a human readable and understandable format on the screen. For a web browser to understand a server response, the response must be generated or written in a computer understandable format.  This format include the use of HTML (Hypertext Markup language), CSS (cascading Style sheet), and JavaScript standards. Other standards include XML (Extensible markup Language) And JSON (JavaScript Object Notation). In the upcoming chapters we are going to look deeper at these standards in more detail. 

## The documents and media 

The documents and media contain the final results that the user sees on a computer’s screen. Typically, the documents contain textual, imagery, video, audio, and graphical content. The media can be an image, video, and audio transmitted directory to the web browser as opposed being transmitted within a document itself. HTML standard provides a mechanism for structuring the content of a document and usually this document that contains HTML structures is referred to as HTML document. The purpose of HTML structures is to semantically differentiate the types of content within the document. In order to give an appealing look of the content to the eye of the user, CSS standard must come into play by providing a mechanism for styling the HTML structures (referred to as HTML elements). The CSS simply provides a desired layout mechanism for a document. CSS uses a design pattern called CSS rule which specifies a property and the value of the property to apply to the selected HTML element(s). Eventually, the JavaScript standard comes into play by providing a mechanism for dynamically manipulating HTML elements and changing their styles (the look & feel of the elements) in a desired look. 

## Request VS. Response 

A request is a format of a message intended to a web server generated by a web browser. It consists of a message header and body. This request can occur in different types including: a GET, POST, PUT, DELETE, and PATCH request. The message header of a request contains extra information describing the request itself and its content. Similarly, the message body contains the message content. The web browser initiates a request by specifying a protocol, usually HTTP (used to communicate with the web server) followed by the name of the intended server computer and a port number (a uniquely assigned number to an application within an operating system) indicating the application to handle the request (the web server application), and the path of the requested document in the server warehouse (hard Disk). The response on another hand, is a message feedback generated by the server computer containing the response status and the resulting requested service (usually a document or a file). The server may send some headers (a key/value pair of headers) describing the response itself and the content as well. 

## Other Related web servers 

### Database Servers

Apart from a web server that merely serves web documents there are other web related servers that some of them contribute in data persistence of the web. A database server is one of web related servers that manage data persistence generated by users or the system. For example, to be able to recognize and authenticate users who visit your website, you need a way of saving user accounts with their names, emails and passwords. A database server is designed in such way that it stores data in an appropriate format and provides a security mechanism for the data and a data manipulation method through a language called SQL (Structured Query Language). There are many database servers in use today, among them are Oracle database, MYSQL, Microsoft SQL Server, Postgress , Sybase,  and  IBM DB2. These databases use SQL technology (a common technology for manipulating data) to create, read, update, and delete data which is referred to as CRUD operation. MYSQL database server is one of popular database systems used on the web today. Due to its freeness and a wide support of back end technologies including Java, PHP, Python and etc. MYSQL is employed in many websites that generate user data on the web.  

## File Servers 

As the name implies, a file server is a dedicated software program to serve files regardless of their types and format. This type of server uses FTP (File Transfer Protocol) protocol to communicate with a client program to exchange files. A program on a local computer (client computer) is installed and uses FTP protocol to communicate with another program installed on a server (either remote or local server). FTP provides means of transferring files from your local computer to a server computer and this is how your website would be transferred from your computer to the web. Although there are many ways to transfer files between a client and server computers, FileZilla client is one of client programs used to transfer files from a local machine to a server machine.