+ All Categories
Home > Documents > 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture,...

2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture,...

Date post: 04-Jan-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
25
©2017 Gilbert Ndjatou Page 1 2. Internet Applications An internet application consists of two or more programs that run on different hosts and communicate with one another over the network. Examples of Internet Applications: The Web application consists of : The browser program running in the user’s host (desktop, laptop, PDA, cell phone), and The Web server program running on a computer called Web server host. A Pier-to-Pier file sharing system consists of a program running in each host that participates in the file-sharing community. The program in the various hosts may be similar or identical. Network Application Architectures A network application architecture is a design that dictates how an application is structured over the various hosts. Two predominant network application architectures are used on modern network: The client-server architecture, and The peer-to-peer (P2P) architecture. Client-Server Architecture In a client-server architecture, there is: A server-class computer called server (or server host) that is always on, and One or more standard computers called clients (or client hosts). The server host services requests from client hosts. Examples of applications with client-server architectures are: the web application, the FTP application, Telnet, and the email application. For the web application, the web server services requests from browsers running on client hosts. When a web server receives a request for an object from a client host (browser), it responds by sending the requested object to the client host.
Transcript
Page 1: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 1

2. Internet Applications An internet application consists of two or more programs that run on different hosts and communicate

with one another over the network.

Examples of Internet Applications:

The Web application consists of :

The browser program running in the user’s host (desktop, laptop, PDA, cell phone), and

The Web server program running on a computer called Web server host.

A Pier-to-Pier file sharing system consists of a program running in each host that participates in the

file-sharing community. The program in the various hosts may be similar or identical.

Network Application Architectures

A network application architecture is a design that dictates how an application is structured over the

various hosts.

Two predominant network application architectures are used on modern network:

The client-server architecture, and

The peer-to-peer (P2P) architecture.

Client-Server Architecture

In a client-server architecture, there is:

A server-class computer called server (or server host) that is always on, and

One or more standard computers called clients (or client hosts).

The server host services requests from client hosts.

Examples of applications with client-server architectures are:

the web application,

the FTP application,

Telnet, and

the email application.

For the web application, the web server services requests from browsers running on client hosts.

When a web server receives a request for an object from a client host (browser), it responds by sending

the requested object to the client host.

Page 2: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 2

Notes:

With a client-server architecture,

clients do not directly communicate with each other,

the server has a fixed, well known IP address , and

a client can always contact the server by sending a packet to the server’s IP address.

Server-Class Computers

Server-class computers are in general computers with:

Large memories

Fast CPUs, and

Powerful and special operating systems that are referred to as server operating systems.

Examples of Server Operating Systems are:

Windows Server 2016, Windows Server 2012, and Window Server 2008.

Versions of UNIX such Solaris and BSD (Berkeley Software Distribution) UNIX.

Linux distributions such as Ubuntu, Fedora, and Red Hat.

Note:

Popular client-server applications are:

search engines (e.g. Google),

Internet commerce (e.g. Amazon and e-Bay),

Web-based email (e.g. Yahoo Mail),

social networking (e.g. MySpace and Facebook), and

video sharing (e.g. YouTube)

These client-server applications are infrastructure intensive and costly to provide because:

they require the service provider to install and maintain server farms, and

to pay recurring interconnection and bandwidth costs for sending and receiving data to and from the

Internet.

Page 3: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 3

The server Bottleneck Problem

A server host can run multiple server processes, each for a particular service.

However, as the number of clients increases, the server (or the access network leading to the server)

quickly becomes a bottleneck, especially if each client downloads many bytes of content.

There is a server bottleneck problem when a server host is incapable of keeping up with all the requests

from its clients.

This problem is considered to be one of the most important limitations on Internet services.

The following technologies have been suggested for dealing with this problem:

Content caching (Akamai)

Web load balancers

Server virtualization, and

Distributed data centers and replication

Content Caching (Akamai)

This technology is about caching (saving) web content.

ISPs often have a cache memory that keeps a copy of each static web page (that means a web page for

which the content does not change rapidly) after it has been requested for the first time so that any

subsequent request of that web page is delivered from the cache memory.

A distributed caching service is an extension of the content caching that is offered by companies such

as Akamai as follows:

Akamai has a set of servers located throughout the Internet, and

An organization can contract with Akamai to preload the Akamai caches with content

Visitors to the organization’s web site obtain much of the content from a nearby Akamai cache rather

than from the organization’s central server.

As a result, load on the central server is reduced.

Page 4: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 4

Web Load Balancers and Data Centers

One of the mechanisms used to construct a large web site is known as load balancer. (page 581).

A load balancer is a device that allows a company to replace a single server with a data center that

contains multiple computers, each running an identical copy of a web server.

To ensure that all servers return the same answer to a request, the servers use a common, shared database

system.

The load balancer distributes incoming requests among the physical servers as follows:

It examines each incoming HTTP request and sends the request to one of the servers.

It remembers recent requests and directs all requests from a given source to the same physical server.

Server Virtualization

Sites that run multiple servers (e.g. an email server, web server, and a database server) usually run two or

more of these servers on the same physical computer.

A performance problem may arise in these sites because the servers running on computer A may be all

busy, whereas those running on computer B are idle.

Virtualization systems solve this problem as follows:

Each server is run on a Virtual Machine (VM) system (that supports VM migration) on a physical

computer, and

If a given physical computer becomes overwhelmed, a manager migrates one or more VMs to other

physical computers.

Distributed Data Centers and Replication

A data center is a large cluster of server hosts that are used to handle large number of requests from the

clients.

With a distributed data centers, multiple data centers are placed in various geographic locations, and

When a user enters a request, it is directed to the closest data center.

Page 5: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 5

Pier-to-Pier Architecture

In a Peer-to-peer (P2P) architecture, an application is based on direct communication between pairs of

interconnected hosts called peers.

Peers are desktops and laptops controlled by users.

They communicate without passing through a dedicated server.

A peer also makes a portion of its resources, such as processing power, disk storage or network

bandwidth, directly available to other network participants, without the need for central coordination by

servers.

Peers are both suppliers and consumers of resources, in contrast to the traditional client-server model in

which the consumption and supply of resources is divided.

Examples of applications that are based on P2P architecture are:

File distribution (e.g. BitTorrent)

File sharing (e.g. eMule and LimeWire)

Internet telephony (e.g. skype)

Notes:

1. Some applications have hybrid architectures: they combine both client-server and P2P architectures.

Example of applications with hybrid architectures:

For many instant messaging applications,

Servers are used to track the IP addresses of users, but

User-to-user messages are sent directly between user hosts without passing through the servers.

2. P2P architectures are also cost effective:

They do not require significant server infrastructure and server bandwidth.

3. However, future P2P applications face three major challenges:

Be ISP friendly:

Most ISP have been dimensioned for much more downstream than upstream traffic

But most P2P applications shift upstream traffic from servers to residential ISPs, thereby putting

significant stress on ISPs

Security:

P2P applications can be a challenge to secure because of their highly distributed and open nature.

Incentives: Their success depends on convincing users to volunteer their resources.

Page 6: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 6

Processes Communication

An internet application consists of two or more programs in execution called processes.

Each process is identified on the computer where it is running by a number in the range 1-65535 called

its communication port.

However, communication ports below 1024 (0 to 1023) are already assigned to some well-known

processes.

They communicate with one another by using either

the UDP transport protocol or

the TCP transport protocol.

Data are sent and received between processes through a software interface called socket as follows:

When a process wants to send a message, it loads it on its socket

The protocol transportation software carries the message to the receiving host.

Once the message arrives at the destination host, it passes through the receiving process’s socket

which then acts on the message.

Sockets are implemented in most operating systems.

Page 7: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 7

UDP Communication

In a UDP communication, processes communicate by sending and/or receiving packets from each other.

A process creates a UDP socket that it uses to send and/or receive packets from processes running on

other hosts.

The programmer should specify the communication port of the process when the socket is created.

This communication port is bound to the socket when it is created.

If the programmer does not specify a port number when a socket is created, one (in the range 1024 –

65535) will be automatically assigned by the transport layer.

In addition to the message that is being sent, a packet also includes the following information:

The IP address of the source host,

The communication port of the source process,

The IP address of the destination host, and

The communication port of the destination process.

When a packet arrives on a host, it uses the destination port number specified in the packet to figure out

which process should handle the packet.

Note:

Note that a UDP communication has the following characteristics:

No connection is established between the source process and the destination process.

packets take different routes to arrive at the destination host and

there is no guarantee that a packet will eventually be delivered to the destination process.

Page 8: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 8

TCP Communication

A TCP application consists of the following:

A process known as server process running on a host, and

one or more other processes known as client processes running on other hosts.

Client processes communicate with the server process by using input/output data streams.

A TCP communication takes place as follows:

The server process must start first and does the following:

1. creates a socket and registers its communication port (the communication port must be specified

by the programmer).

2. It then uses the socket created in step 1 to listen for connections from client processes.

3. When a connection is accepted, it creates a TCP socket to send and/or receive messages from the

client process that initiated the connection.

4. In order to send messages to the client processes, it must bind to this socket an output data

stream, and

5. In order to receive messages from the client processes, it must bind to this socket an input data

stream.

A client process creates a TCP socket and uses it to initiate a TCP connection with the server

process by specifying the communication port of the server process.

After the connection is accepted it uses its socket to communicate with the socket created in the

server process as follows:

In order to send messages to the server process, it must bind to this socket an output data stream,

and

In order to receive messages from the server process, it must bind to this socket an input data

stream.

Note 1:

Messages that are written by the server process in its output data stream are read by client processes from

their input data streams in the same order.

Messages that are written by a client process to its output data stream are read by the server process from

its input data stream in the same order.

Page 9: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 9

Note 2:

A client process is automatically assigned a port number by the transport protocol layer.

A TCP service model includes:

a connection-oriented service and

a reliable data transfer service.

Communication ports below 1024 (0 to 1023) are restricted for use by the server processes of well-

known services such as HTTP, FTP, SMTP, POP3, and telnet.

Some well-known services and their associated ports numbers are listed in the following table.

Application Application-Layer Protocol Underlying

Transport Protocol

Port

Number

File transfer FTP (file transfer protocol) TCP 21

Secured terminal access SSH (secure shell) TCP 22

Remote terminal access Telnet TCP 23

Electronic mail Simple Mail Transfer Protocol (SMTP) TCP 25

Web HyperText Transfer Protocol (HTTP) TCP 80

Electronic mail Post Office Protocol 3 (POP3) TCP 110

Multimedia communication SIP (Session Initiation Protocol) TCP/UDP proprietary

Routing protocol RIP (Routing Information Protocol) UDP 520

Name translation DNS UDP 53

The list of well-known port numbers is updated at the web site http:// www.iana.org.

Page 10: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 10

Traditional Internet Applications

An Internet service is defined with the expectation that many programmers will create server software to

offer the service or client software to access the service.

The application-layer protocol is therefore documented independently of any implementation.

The specification must also be precise and unambiguous so that client and server applications can

interoperate correctly.

Application-layer protocols specify two aspects of interaction:

Data representation, and

Data transfer

Aspect of Interaction Description

Data Representation

Specifies the following:

Syntax of data items that are exchanged

Specific form used during transfer

Translation of integers, characters, and files sent between computers.

Data Transfer

Specifies the following:

How interactions between a client and the server should be done.

The syntax and the semantics of the messages

How errors in the transmission should be handled, and

How an interaction should be terminated.

Page 11: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 11

Web Protocols

A website, or simply a site, is a collection of related web documents (also called HTML or XHTML

documents) and other resources that are published (or held) on at least one computer called web server.

Web documents and resources include the following:

graphics files,

images files,

videos files,

PDF documents, and

objects that perform complex tasks such as database lookup and web searches,

A web site is identified with a common domain name.

A web server runs a program called HTTP server which provides the web site functionality.

Examples of HTTP servers are:

the Apache Tomcat web server,

the Sun’s Java web server,

IBM WebSphere,

BEA WebLogic,

Macromedia’s JRun,

Caucho Resin, and

Jetty.

A web browser (commonly referred to as a browser) is a software application that receives HTML

documents from an HTTP server or from the local storage and displays the corresponding web pages.

A web page is a multimedia content that uses a combination of different content forms such as:

text,

audio,

images,

animations,

video, and

interactive content.

Any non-textual content on a web page is retrieved from a file or a database on the web server or is

created as the results of running a program.

Non-textual contents are inserted into a web page when it is created.

Page 12: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 12

The most popular web browsers are:

Google Chrome,

Microsoft Edge (preceded by Internet Explorer),

Safari,

Opera and

Firefox.

As of 2016 end users can access websites on a range of devices, including desktop and laptop

computers, tablet computers, smartphones and smart TVs.

Three key protocol standards are used to specify the data representation and data transfer of the Web.

Standard Purpose

HyperText Markup Language (HTML) A representation standard used to specify the contents and

layout of a web page.

Uniform Resource Locator (URL) A representation standard that specifies the format and

meaning of a web page identifier.

Hypertex Transfer Protocol (HTTP) A transfer protocol that specifies how a browser interacts

with a web server to transfer data.

HyperText Markup Language

Hypertext Markup Language (HTML) is the standard markup language for creating web pages and

web applications.

Its latest version is HTML 5.1, and

Its standard is maintained by the World Wide Web Consortium (W3C).

An HTML document is a text file with filename extension .HTML.

Example: cs3380document.html

It consists of the text to be displayed on the corresponding web page with HTML elements embedded into

it.

HTML elements are the building blocks of HTML documents.

However, they are not displayed on web pages.

Page 13: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 13

Some of the things that you can specify with HTML elements follow:

denote the structural semantics for text such as;

headings,

paragraphs,

lists,

links,

quotes,

tables, and

other items.

emphasize text such as:

boldface,

underline, or

italic.

describe the structure of a web page.

specify that objects such as:

images,

graphics, and

videos

be embedded into a web page.

write embedded programs in a scripting language such as:

JavaScript,

PHP, or

Python

which affect the behavior and the content of web pages.

specify that a program written in a language such as:

Java or

C#

be executed and that its output be imbedded into the web page.

Page 14: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 14

HTML elements are written by using the start tag and the end tag.

The start tag consists of the name of the element in angle brackets.

Examples:

<p>,

<body>,

<head>,

<html>

An end tag consists of the name of the element preceded with a forward slash in angle brackets.

Examples:

</p>,

</body>,

</head>,

</html>

A start tag may also include an HTML attribute.

HTML attributes define desired behavior or indicate additional element properties.

They generally appear as: name-value pairs,

separated by =, and

are written within the start tag of an element, after the element's name as follows:

<tag attribute="value"> content to be modified by the tag </tag>

The value can be left unquoted if it doesn't include spaces (name=value), or

it can be quoted with single or double quotes (name='value' or name="value").

Example:

For example, the abbr element, which represents an abbreviation, expects a title attribute within its

opening tag.

This would be written as;

<abbr title="abbreviation"> abbr. </abbr>

<abbr id="anId" class="aClass" style="color:blue;" title="Hypertext Markup Language"> HTML </abbr>

Element (and attribute) names may be written in any combination of upper or lower case in HTML, but

must be in lower case in XHTML.

Page 15: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 15

There are three types of HTML elements:

Void elements

Raw text elements, and

Normal elements

Void Elements

Void elements only have a start tag, which may contains HTML attributes.

They may not contain any children, such as text or other elements.

Often they are place holders for elements which reference external files, such as:

the image (<img />) element.

The attributes included in the element will then point to the external file in question.

Another example of a void element is the <link /> element, for which the syntax is

<link rel="stylesheet" href="fancy.css" type="text/css">

This <link /> element points the browser at a style sheet to use when presenting the HTML document

to the user.

Raw Elements

Raw text elements are constructed with:

a start tag (<tag>) marking the beginning of an element, which may incorporate any number of

HTML attributes;

some amount of text content, but no elements (all tags, apart from the applicable end tag, will be

interpreted as content);

an end tag, in which the element name is prefixed with a slash: </tag>.

In some versions of HTML, the end tag is optional for some elements.

The end tag is required in XHTML.

Examples:

<title> Favorite Books </title>

Page 16: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 16

Normal Elements

Normal elements are constructed with:

a start tag (<tag>) marking the beginning of an element, which may incorporate any number of

HTML attributes;

some amount of content, including text and other elements;

an end tag, in which the element name is prefixed with a slash: </tag>.

Examples:

<body>

<h1>Favorite books</h1>

<p>These are a few of my favorite books.</p>

<h2>The Belgariad</h2>

<p>Five books by David and Leigh Eddings.</p>

<h2>The Hitchhiker’s Guide to the Galaxy</h2>

<p>A trilogy of five books by Douglas Adams.</p>

</body>

Examples of HTML Elements

Header of the HTML document: <head>...</head>.

The title element is included in the head element.

For example:

<head>

<title>The Title</title>

</head>

Headings:

HTML headings are defined with the <h1> to <h6> tags:

<h1>Heading level 1</h1>

<h2>Heading level 2</h2>

<h3>Heading level 3</h3>

<h4>Heading level 4</h4>

<h5>Heading level 5</h5>

<h6>Heading level 6</h6>

Page 17: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 17

Paragraphs:

Paragraphs are specified in the p element <p> text </p>

Such as:

<p>Paragraph 1</p>

<p>Paragraph 2</p>

Line Breaks:

Line breaks are specified by using the void element br : <br>.

Example:

<p>This <br> is a paragraph <br> with <br> line breaks</p>

Comments:

<!-- This is a comment -->

Comments can help in the understanding of the markup and do not display in the webpage.

Link:

You specify a link by providing the URL of the object referenced as the value of the href attribute in the

<a> tag followed by the text of the link which is followed by the </a> tag.

Example:

<a href="https://www.wikipedia.org/"> A link to Wikipedia!</a>

Inputs:

There are many possible ways a user can give input/s like:

1 <input type="text" /> <!-- This is for text input-->

2 <input type="file" /> <!-- This is for uploading files-->

3 <input type="checkbox" /> <!-- This is for checkboxes -->

Document type declaration

HTML documents are required to start with a Document Type Declaration (informally, a "doctype").

In browsers, the doctype helps to define the rendering mode

In HTML5 the doctype declaration is: <!DOCTYPE html>

Page 18: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 18

The main Element

The <main> element is used to denote the content of a webpage that relates to the central topic of that

page or application.

It should include content that is unique to that page and should not include content that is duplicated

across multiple webpages, such as headers, footers, and primary navigation elements.

The header Element

The HTML <header> element represents introductory content, typically a group of introductory or

navigational aids.

It may contain some heading elements but also other elements like a logo, a search form, an author name,

and so on.

HTML Document

An HTML document starts with the doctype declaration and,

It is specified between the <html> and the </html> tags.

It also consists of two parts:

The head that is specified between the <head> tag and the </head> tag, and

The body that is specified between the <body> tag and the </body> tag.

Example

<!DOCTYPE html>

<html>

<head>

<title>This is a title</title>

</head>

<body>

<p>Hello world!</p>

</body>

</html>

Page 19: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 19

Notes:

The text between <html> and </html> describes the web page, and

the text between <body> and </body> is the visible page content.

The markup text <title>This is a title</title> defines the browser page title.

In this example the HTML headings may be presented as large text in a desktop browser, or

standard size text in bold in a mobile browser. In both cases the semantic information remains the

same - that the h1 and h2 elements represent headings.

<!doctype html>

<html lang="en">

<head>

<title>Favorite books</title>

</head>

<body>

<header>

<img src="logo.png" alt="Favorite books logo">

</header>

<main>

<h1>Favorite books</h1>

<p>These are a few of my favorite books.</p>

<h2>The Belgariad</h2>

<p>Five books by David and Leigh Eddings.</p>

<h2>The Hitchhiker’s Guide to the Galaxy</h2>

<p>A trilogy of five books by Douglas Adams.</p>

</main>

</body>

</html>

Page 20: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 20

Uniform Resource Locator

Each document or service provided by a web server is identified by a Uniform Resource Locator

(URL).

An example of URL is: http://www.isoc.org/documents/downloads.html.

A URL is composed of two parts:

A scheme and

Its generic syntax.

Scheme of a URL

The scheme of a URL refers to the protocol that will be used in accessing the entity.

It is followed by a colon.

Examples of protocols are:

HTTP,

SMTP (Simple Mail Transfer Protocol) and

FTP (File Transfer Protocol).

Generic of a URL

The generic syntax of a URL depends on the scheme.

For an http request, it consists of:

The hostname (the name of the server holding the resource: e.g. www.isoc.org) followed by

The pathname of the resource. E.g. documents/downloads.html

The hostname is translated into an IP (Internet Protocol) address (e.g. 138.25.45.108) by a domain-

name system (DNS) server.

A domain-name system (DNS) server is a computer that maintains a database of hostnames and their

corresponding IP address.

The hostname can be followed by a colon (: ) and the port number on which the server is awaiting

requests (e.g. www.isoc.org:80).

Web servers typically await requests on port 80 by default.

However, many development web servers use a different port number, such as 8080.

To test web applications, you will often use your computer as the host.

This host is referred to using the reserved domain name localhost which translates to the IP address

127.0.0.1.

Page 21: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 21

HyperText Transfer Protocol (HTTP)

The HyperText Transfer Protocol (HTTP) is used by web browsers to communicate with HTTP web

servers.

With HTTP, browsers and web servers can exchange information in a uniform and reliable manner as

follows:

for each service,

the web browser makes an HTTP request,

the server operates on the request, and then

responds to the web browser with HTML pages and possibly additional programs in the form of

ActiveX controls or Java applets.

Web Server Fundamental

The web browser and the HTTP web server are normally thought of as residing on separate platforms

connected to a common network.

But in some cases, they reside on the same platform.

HTTP enables web clients to request the delivery of documents from web servers.

It governs both the format of web addresses, and the way in which documents are exchanged.

The current version of HTTP is HTTP/1.1.

HTTP request can be made using a variety of methods, but the ones you will use most often are:

Get and

Post.

The method name tells the server the kind of request that is being made, and how the rest of the message

will be formatted.

Page 22: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 22

A a GET request is a simple request for retrieval of a web page.

A POST request is a form filled in with data that is being sent back to a web server.

Anatomy of an HTTP GET request

A Get request contains the path to the source on the web server followed by the parameters.

Anatomy of an HTTP POST request

Post requests are used to make more complex requests on the server.

For instance, if a user has filled a form with multiple fields and the application wants to save all the form

data to the database. Then the form data will be sent to the server in a POST request body, which is also

known as Message body.

Page 23: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 23

Domain Names

The Domain Name System (DNS) provides a service that maps human-readable symbolic names to IP

addresses.

For example: cs.wpunj.edu.

The Domain Name System does specify values for the most significant segment of a domain name

which is the segment to the far right.

Examples:

edu,

com,

org,

net,

uk,

fr,

aero,

biz, and

asia.

An organization applies for a name under one of the existing top-level domains and

Then chooses how many additional levels to add and the meaning of each.

Example 1:

Name applied under edu top-domain: wpunj

Additional levels: none

Hostname of a computer: cs.wpunj.edu

Example 2:

Name applied under com top-domain: cookies

Additional levels:

east-coast.cookies.com,

west-coast.cookies.com

Hostnames (domain names) of computers:

computer1.east-coast.cookies.com,

computer2.east-coast.cookies.com,

computer1.west-coast.cookies.com

Page 24: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 24

Exercises

1. What is an internet application?

2. What is network application architecture?

3. What are the two predominant network application architectures?

4. Give a description of the client-server network application architecture.

5. Give a description of the peer-to-peer network application architecture.

6. What is the major advantage of the peer-to-peer network application architecture?

7. What are the major challenges of the peer-to-peer network application architecture?

8. Give an example of internet application that uses the hybrid architecture.

9. Give two examples of internet applications with the client-server application architecture.

10. Give two examples of internet application with the peer-to-peer application architecture.

11. What are the characteristics of a server-class computer/

12. Names three server operating systems.

13. What is the server bottleneck problem?

14. What are the technologies suggested to deal with the server bottleneck problem?

15. Give a description of each of the following technologies:

a. Content caching.

b. Distributed caching.

c. Load balancing

d. Server virtualization.

16. What is a distributed data center?

17. How is an internet process identified on the computer where it is running?

18. What is a communication port?

19. What the two communication protocols used on the Internet?

20. What is the software interface used by internet processes to send and receive data?

21. How are sockets used by internet processes to send and receive data?

22. What is the difference between a UDP and a TCP communication protocols?

23. What are the two basic communication paradigms used in the Internet?

24. When two applications communicate over the Internet, which one is the server?

25. What is the difference between a server and a server-class computer?

26. What two identifiers are used to specify a particular server?

27. What are the two key aspects of application protocols, and what does each include?

28. What is a web site?

29. What types of documents and resources are included in a web site?

30. Give an example of a HTTP server.

31. What is a web browser?

32. What is a web page?

33. Where does a web browser obtain non-textual contents that are inserted into a web page?

34. What are the three key protocol standards that are used to specify the data representation and data

transfer of the Web.

35. What is the purpose of each of the protocol standards in question 34?

36. What is the name of the organization that maintains the HTML standard?

37. What is an HTML document?

38. How do you know that a file is a web document?

39. Are HTML elements displayed on web pages?

40. What are the six things that you can use HTML elements to specify in a web document

Page 25: 2. Internet Applications · ©2017 Gilbert Ndjatou Page 2 Notes: With a client-server architecture, clients do not directly communicate with each other, the server has a fixed, well

©2017 Gilbert Ndjatou Page 25

41. Name two programming language that are used to write programs that are embedded in a web document?

42. Name two programming languages that are used to write programs that will be executed and their output

embedded into a web page.

43. Given the following URL: http://www.isoc.org:80/documents/downloads.html.

a. What is the protocol?

b. What is the name of the computer?

c. What is the port number?

d. What is the document pathname?

44. How does a browser know whether an HTTP request is syntactically incorrect or whether the referenced item

does not exists?

45. Can a browser use transfer protocols other than HTTP? Explain.

46. What is the structure of a web document?

47. What is the overall purpose of the Domain Name System?

48. A web server must have a domain name that begins with www.

49. A multi-national company can choose to divide its domain name hierarchy in such a way that the company has

a domain name server in Europe, one in Asia, and one in North America.

50. If a company moves its web server from computer x to computer y, the names of the two computers must

change.


Recommended