CHAPTER 1: OVERVIEW OF THE INTERNET AND WWW
1.1. Basic Concepts of Internet and WWW
Network is communication system connecting two or more computers. Internet is a worldwide network
that connects smaller independent networks worldwide. Internet joins many governments and private
computers together and provides an infrastructure for the use of E-mail, bulletin boards, file archives,
hypertext documents, databases and other computational resources. Internet could be connected by
network cables or through satellite links. Rather than connecting every computer on the Internet with
every other computer, individual computers in an organization are normally connected in a local area
network (LAN). One node on this local area network is physically connected to the Internet. So the Internet
is a network of networks. There are millions of computing devices that are connected to this network either
permanently or for a short duration. These devices run network applications that communicate through
copper or fiber optic cables, radio or satellite transmission. The communication is governed by protocols
established by an international body - Internet Engineering Task Force. The Internet connectivity is
provided by Internet Service Providers (ISP). These corporations dedicate computers to act as servers -
that is they make information (such as Web pages or e-mail) available to users of the Internet.
The origin of Internet devised from the concept of Advanced Research Project Agency Network
(ARPANET). ARPANET was developed by United States Department of Defense. Basic purpose of ARPANET
was to provide communication among the various bodies of government. Initially, there were only four
nodes, formally called Hosts. In 1972, the ARPANET spread over the globe with 23 nodes located at
different countries and thus became known as Internet. By the time, with invention of new technologies
such as TCP/IP protocols, DNS, WWW, browsers, scripting languages etc., Internet provided a medium to
publish and access information over the web.
The World Wide Web (WWW), commonly known as the Web, is an information system enabling
documents and other web resources to be accessed over the Internet. Servers and resources on the
World Wide Web are identified and located through character strings called uniform resource locators
(URLs). The original and still very common document type is a web page formatted in Hypertext Markup
Language (HTML). This markup language supports plain text, images, embedded video and audio
contents, and scripts (short programs) that implement complex user interaction. The HTML language also
supports hyperlinks (embedded URLs) which provide immediate access to other web resources. Web
navigation, or web surfing, is the common practice of following such hyperlinks across multiple websites.
Web applications are web pages that function as application software. The information in the Web is
transferred across the Internet using the Hypertext Transfer Protocol (HTTP).
Multiple web resources with a common theme and usually a common domain name make up a website.
A single web server may provide multiple websites, while some websites, especially the most popular
ones, may be provided by multiple servers.
The World Wide Web has become the world's dominant software platform. It is the primary tool billions
of people worldwide use to interact with the Internet.
The terms Internet and World Wide Web are often used without much distinction. However, the two
terms do not mean the same thing. The Internet is a global system of computer networks interconnected
through telecommunications and optical or satellite networking. In contrast, the World Wide Web is a
global collection of documents and other resources, linked by hyperlinks and URIs.
A Uniform Resource Identifier (URI) is a unique sequence of characters that identifies a logical or physical
resource used by web technologies. URIs may be used to identify anything, including real-world objects,
such as people and places, concepts, or information resources such as web pages and books. URI
identifies a resource by location (URL), name (URN), or both. URL and URN are subsets of URI. URI defines
the identity of a resource and establishes the unique distinguished identity of the resource regardless of
the method used (name, location or both). URI syntax was first defined in RFC 2396, published in August
1998, and finalized in RFC 3986, published in January 2005. The URI generic syntax consists of five
components organized hierarchically in order of decreasing significance from left to right:
URI = scheme ":" ["//" authority] path ["?" query] ["#" fragment]
Example of URI
A Uniform Resource Name (URN) is a URI that identifies a resource by name in a particular namespace. A
URN may be used to talk about a resource without implying its location or how to access it. For example,
in the International Standard Book Number (ISBN) system, urn:
ISBN: 0-486-27557-4.
However, it gives no information as to where to find a copy of that book.
A Uniform Resource Locator (URL) is a URI that specifies the means of acting upon or obtaining the
representation of a resource, i.e. specifying both its primary access mechanism and network location. For
example, the URL [Link] refers to a resource identified as /wiki/Main_Page,
whose representation is obtainable via the Hypertext Transfer Protocol (http :) from a network host
whose domain name is [Link].
A URN is analogous to a person's name, while a URL is analogous to their street address. In other words, a
URN identifies an item and a URL provides a method for finding it.
1.2. HTTP protocol
Reference Model offers a means of standardization which is acceptable worldwide. Since people using the
computer network are located over a wide physical range and their network devices might have
heterogeneous architecture. In order to provide communication among heterogeneous devices, we need
a standardized model i.e. a reference model, which would provide us way how these devices can
communicate regardless their architecture.
We have two reference models such as OSI model and TCP/IP reference model. OSI model is a
hypothetical one but the TCP/IP is practical model and is used in the Internet. TCP/IP is acronym of
Transmission Control Protocol and Internet Protocol.
Application Layer is one of the layers of the TCP/IP model. An application layer is the topmost layer in the
TCP/IP model. It is responsible for handling high-level protocols. This layer allows the user to interact with
the application. Every application cannot be placed inside the application layer except those that have
interaction with the communication system. For example: text editor cannot be considered in application
layer while web browser is, because it uses HTTP protocol to interact with the network
where HTTP protocol is an application layer protocol.
HTTP stands for Hypertext transfer protocol. Hypertext is text which is not constrained to be linear.
Hypertext is text which contains links to other texts. This protocol allows us to access the data over the
World Wide Web. It transfers the data in the form of plain text, audio, video. It is known as a Hypertext
transfer protocol as it has the efficiency to use in a hypertext environment where there are rapid jumps
from one document to another.
HTTP functions as a request–response protocol in the client–server model. A web browser, for example,
may be the client whereas a process, named web server, running on a computer hosting one or more
websites may be the server. The client submits an HTTP request message to the server. The server, which
provides resources such as HTML files and other content or performs other functions on behalf of the
client, returns a response message to the client. The response contains completion status information
about the request and may also contain requested content in its message body.
All HTTP response status codes are separated into five classes or categories. The first digit of the status
code defines the class of response, while the last two digits do not have any classifying or categorization
role. There are five classes defined by the standard:
1xx informational response – the request was received, continuing process
2xx successful – the request was successfully received, understood, and accepted
3xx redirection – further action needs to be taken in order to complete the request
4xx client error – the request contains bad syntax or cannot be fulfilled
5xx server error – the server failed to fulfill an apparently valid request
1.3. Web browsers
Documents and downloadable media are made available to the network through web servers and can be
accessed by programs such as web browsers. A web browser is an application for accessing websites.
When a user requests a web page from a particular website, the browser retrieves its files from a web
server and then displays the page on the user's screen. A web browser is not the same thing as a search
engine. A search engine is a website that provides links to other websites. However, to connect to a
website's server and display its web pages, a user must have a web browser installed. In some technical
contexts, browsers are referred to as "user agents."
The purpose of a web browser is to fetch content from the World Wide Web or from local storage and
display it on a user's device. This process begins when the user inputs a Uniform Resource Locator (URL),
such as [Link] into the browser. Virtually all URLs are retrieved using the Hypertext
Transfer Protocol (HTTP), a set of rules for the transfer of data. If the URL uses the secure mode of HTTP
(HTTPS), the connection between the browser and the web server is encrypted for the purposes of
communications security and information privacy.
During the course of browsing, cookies received from various websites are stored by the browser. Some
of them contain login credentials or site preferences. However, others are used for tracking user behavior
over long periods of time, so browsers typically provide a section in the menu for deleting cookies. Web
pages usually contain hyperlinks to other pages and resources. Each link contains a URL, and when it is
clicked or tapped, the browser navigates to the new resource. Most browsers use an internal cache of
web page resources to improve loading times for subsequent visits to the same page. The cache can store
many items, such as large images, so they do not need to be downloaded from the server again. Cached
items are usually only stored for as long as the web server stipulates in its HTTP response messages.
Cookies are small pieces of text sent to your browser by a website you visit. They help that website
remember information about your visit, which can both make it easier to visit the site again and make the
site more useful to you. Cookies and other technologies used for functionality allow you to access
features that are fundamental to a service. Things considered fundamental to a service include
preferences, like your choice of language, information relating to your session, such as the content of a
shopping cart, and product optimizations that help maintain and improve that service.
January 2023 desktop browser share
1.4. Client-Server model
The client–server model is a distributed application structure that partitions tasks or workloads between
the providers of a resource or service, called servers, and service requesters, called clients. Often clients
and servers communicate over a computer network on separate hardware, but both client and server
may reside in the same system. A server host runs one or more server programs, which share their
resources with clients. A client usually does not share any of its resources, but it requests content or
service from a server. Clients, therefore, initiate communication sessions with servers, which await
incoming requests. Examples of computer applications that use the client–server model are email,
network printing, and the World Wide Web.
The "client–server" characteristic describes the relationship of cooperating programs in an application.
The server component provides a function or service to one or many clients, which initiate requests for
such services. Servers are classified by the services they provide. For example, a web server serves web
pages and a file server serves computer files. A shared resource may be any of the server computer's
software and electronic components, from programs and data to processors and storage devices. The
sharing of resources of a server constitutes a service. Whether a computer is a client, a server, or both, is
determined by the nature of the application that requires the service functions. For example, a single
computer can run a web server and file server software at the same time to serve different data to clients
making different kinds of requests. The client software can also communicate with server software within
the same computer. Communication between servers, such as to synchronize data, is sometimes called
inter-server or server-to-server communication.
Generally, a service is an abstraction of computer resources and a client does not have to be concerned
with how the server performs while fulfilling the request and delivering the response. The client only has
to understand the response based on the well-known application protocol, i.e. the content and the
formatting of the data for the requested service.
Clients and servers exchange messages in a request–response messaging pattern. The client sends a
request, and the server returns a response. This exchange of messages is an example of inter-process
communication. To communicate, the computers must have a common language, and they must follow
rules so that both the client and the server know what to expect. The language and rules of
communication are defined in a communications protocol. All protocols operate in the application layer.
The application layer protocol defines the basic patterns of the dialogue. To formalize the data exchange
even further, the server may implement an application programming interface (API). The API is an
abstraction layer for accessing a service. By restricting communication to a specific content format, it
facilitates parsing. By abstracting access, it facilitates cross-platform data exchange.
A server may receive requests from many distinct clients in a short period. A computer can only perform a
limited number of tasks at any moment, and relies on a scheduling system to prioritize incoming requests
from clients to accommodate them. To prevent abuse and maximize availability, the server software may
limit the availability to clients. Denial of service attacks are designed to exploit a server's obligation to
process requests by overloading it with excessive request rates. Encryption should be applied if sensitive
information is to be communicated between the client and the server.
Example
When a bank customer accesses online banking services with a web browser (the client), the client
initiates a request to the bank's web server. The customer's login credentials may be stored in a database,
and the webserver accesses the database server as a client. An application server interprets the returned
data by applying the bank's business logic and provides the output to the webserver. Finally, the
webserver returns the result to the client web browser for display.
Client-host and server-host have slightly different meanings than client and server. A host is any computer
connected to a network. Whereas the words server and client may refer either to a computer or to a
computer program, server-host and client-host always refer to computers. The host is a versatile,
multifunction computer; clients and servers are just programs that run on a host. In the client–server
model, a server is more likely to be devoted to the task of serving.
1.5. Web programming
Web programming refers to the writing, markup and coding involved in Web development, which
includes Web content, Web client and server scripting and network security. It is the creation of an
application that works over the internet i.e. websites. The most common languages used for Web
programming are XML, HTML, JavaScript, Perl 5 and PHP. Web programming is different from just
programming, which requires interdisciplinary knowledge on the application area, client and server
scripting, and database technology.
Web programming can be briefly categorized into client and server coding. The client side needs
programming related to accessing data from users and providing information. It also needs to ensure
there are enough plugins to enrich user experience in a graphic user interface, including security
measures.
To improve user experience and related functionalities on the client side, JavaScript is usually used. It is
an excellent client-side platform for designing and implementing Web applications. HTML5 and CSS3
supports most of the client-side functionality provided by other application frameworks. Web
Development can be classified into two ways: Frontend Development and Backend Development.
Frontend Development
The part of a website where the user interacts directly is termed as front end. It is also referred to as the
‘client side’ of the application.
Here are some of the most common front-end languages:
HTML
HTML (Hypertext Markup Language) is among the basic web development technologies for
designing the client side of the app. Additionally, it is the standard front-end language used to
describe the structure of a webpage. Front-end developers can use HTML to create static pages
consisting of text, images, headings, links, and tables.
CSS
CSS (Cascading Style Sheets) is a language that allows us to stylize HTML elements. It basically
makes it easy to create beautiful web pages.
JavaScript
JavaScript or JS is one of the essential web technologies. It is a popular scripting language used to
make a web app or site interactive. For example, JavaScript allows us to add interactive elements
like buttons, visualizations, and animations.
AJAX
Ajax stands for Asynchronous Javascript and XML. It allows us to communicate with the server
without the need to refresh the web page. As a result, it improves performance and user
experience.
Backend Development
Back-end development means working on server-side software, which focuses on everything you can't
see on a website. Back-end Development refers to the server-side development. It focuses on databases,
scripting, and website architecture.
PHP
PHP is a popular server-side scripting language used for web development. It is an open-source
language that supports several databases. For instance, you can use PHP to connect to and
manage a database management system like MySQL.
[Link]
[Link] is an open-source runtime environment that allows developers to execute JS code outside
a web browser.
Python
Python is another very popular open-source, object-oriented programming language used for
several purposes. It can work on multiple platforms like Windows, Linux, and Mac. Additionally,
one of the most liked features of Python is its human-friendly syntax, which makes it easy to learn
and write clean code.
Ruby
Developed in the 1990s, Ruby is a general-purpose, object-oriented programming language. It also
has a simple syntax, making it super easy to learn and write.
Java
Java is another widely used object-oriented programming language. Released in 1995 by Sun
Microsystems, Java is highly scalable and easy to use.
JavaScript
We can use JavaScript programming language for both front-end and back-end.