Vous êtes sur la page 1sur 19

WEB SERVER

A computer that delivers (serves up) Web pages. Every Web server has an IP address and
possibly a domain name. For example, if you enter the URL
http://www.pcwebopedia.com/index.html in your browser, this sends a request to the server whose
domain name
is pcwebopedia.com. The server then fetches the page named index.html and sends it to your
browser.

Any computer can be turned into a Web server by installing server software and connecting the
machine to the Internet. There are many Web server software applications, including public
domain software from NCSA and Apache, and commercial packages from Microsoft, Netscape
and others.

Web servers are computers on the Internet that host websites, serving pages to viewers upon
request. This service is referred to as web hosting. Every web server has a unique address so that
other computers connected to the internet know where to find it on the vast network. The Internet
Protocol (IP) address looks something like this: 69.93.141.146. This address maps to a more
human friendly address, such as http://www.wisegeek.com.

Web hosts rent out space on their web servers to people or businesses to set up their own
websites. The web server allocates a unique website address to each website it hosts.

A web server can mean two things - a computer on which a web site is hosted and a program that
runs on such a computer. So the term web server refers to both hardware and software.

A web site is a collection of web pages. And web pages are digital files, typically written using
HyperText Markup Language (HTML). For a web site to be available to everyone in the world at
all times, it need to be stored or "hosted" on a computer that is connected to the internet. Such a
computer is known as a web Server.
There are several requirements for a Server computer - it needs to be fast, have a large storage
capacity hard disk and lots of RAM. But the most important is having a permanent internet
address also known as an I.P. (Internet protocol) address.

There are many web server programs available. The most famous and popular of all web servers
is Apache developed by the Apache Foundation. Not only is Apache free but it's also available
for several operating systems including Windows, Macintosh and Linux/Unix.

Web servers - the computer or the program - have a vital role on the Internet. The Server machine
hosts the web site while the server program helps deliver the web pages and their associated files
like images and flash movies.

The process of loading a web site/page in a web browser starts with the user either
entering the URL in the address bar or clicking on a link. You should know that each web
page has a unique address (or URL) on the internet; which means the same page cannot
exist in two places. (If a copy does exist in another location, its address would be
different from that of the original).

The browser now needs to send out a request for the web page. Behind the scenes, the
URL of the requested web page is resolved into an I.P. address, which in English
means, converted to an I.P. address - something that computers understand. The I.P.
address points to the location of the web site host and the request is forwarded to Server
computer and passed on to the server software.

The server software now takes up and hunts for the requested web page on the hard disk.
On finding the file, it sends back a response and the web page file to the browser which
then starts displaying the page. A typical web page not only has text but also embedded
multimedia elements like images and Flash animation. These "extra" files are separate
from the actual web page and need to be sent one by one for the browser to display the
web page correctly. Note(and an important one), ONLY the web browser determines how
a web page is displayed; the web server has no control over this. The job of a web server
ends once it processes the request from a browser and sends the required information.

Though the request-and-response might seem time consuming, it actually happens very
fast - have you ever waited more than a minute for a web site to load? And it's all because
of the HyperText Transfer Protocol (HTTP) which is a set of rules developed by the "big
lads" to facilitate the transfer of data over the internet.

The Client Server Architecture


The Internet revolves around the client-server architecture. Your computer runs software
called the client and it interacts with another software known as the server located at a
remote computer. The client is usually a browser such as Internet Explorer, Netscape
Navigator or Mozilla. Browsers interact with the server using a set of instructions called
protocols. These protocols help in the accurate transfer of data through requests from a
browser and responses from the server. There are many protocols available on the
Internet. The World Wide Web, which is a part of the Internet, brings all these protocols
under one roof. You can, thus, use HTTP, FTP, Telnet, email etc. from one platform -
your web browser.

Some common Internet protocols


• HTTP (HyperText transfer Protocol): used on the World Wide Web (WWW) for
transfering web pages and files contained in web pages such as images.
• FTP (File Transfer protocol): employed for transfering files from one machine to
the other.
• SMTP (Simple Mail Transport Protocol): used for email.
• Telnet Protocol: Used to open telnet sessions.

The web employs a connection-less protocol, which means that after every client-server
interaction the connection between the two is lost.
Let us now examine the client-server inter-communication with three models.

Model #1 of the client-server architecture - Static


HTML pages

The client (browser) requests for an HTML file stored on the remote machine through the
server software. The server locates this file and passes it to the client. The client then
displays this file on your machine. In this case, the HTML page is static. Static pages do
not change until the developer modifies them.

Model #2 of the client-server architecture - CGI Scripts


The scenario is slightly different for CGI applications. Here the server has to do more
work since CGI programs consume the server machine's processing power.
Let us suppose you come across a searchable form on a web page that runs a CGI
program. Let us also suppose you type in the word 'computers' as the search query. Your
browser sends your request to the server. The server checks the headers and locates the
necessary CGI program and passes it the data from the request including your search
query "computers". The CGI program processes this data and returns the results to the
server. The server then sends this formatted in HTML to your browser which in turn
displays the HTML page.

Thus the CGI program generates a dynamic HTML page. The contents of the dynamic
page depend on the query passed to the CGI program.

Model #3 of the client-server architecture - Server side


scripting technologies

The third case also involves dynamic response generated by the use of server side
technologies. There are many server side technologies today.
Active Server Pages (ASP): A Microsoft technology. ASP pages typically have the
extension .asp.
Personal Home Pages (PHP): An open source technology. PHP pages typically have
.php, .phtml or .php3 file name extensions.
Java Server Pages: .jsp pages contain Java code.
Server Side Includes (SSI): Involves the embedding of small code snippets inside the
HTML page. An SSI page typically has .shtml as its file extension.

With these server technologies it has become easier to maintain Web pages especially
helpful for a large web site. The developer needs to embed the server-side language code
inside the HTML page. This code is passed to the appropriate interpreter which processes
these instructions and generates the final HTML displayed by the browser. Note, the
embedded server-script code is not visible to the client (even if you check the source of
the page) as the server sends ONLY the HTML code.

Let's look at PHP as an example. A request sent for a PHP page from a client is passed to
the PHP interpreter by the server along with various program variables. The interpreter
then processes the PHP code and generates a dynamic HTML output. This is sent to the
server which in turn redirects it to the client. The browser is not aware of the functioning
of the server. It just receives the HTML code, which it appropriately formats and displays
on your computer.

Introduction to 2-Tier Architecture


2-tier architecture is used to describe client/server systems where the client requests
resources and the server responds directly to the request, using its own resources. This
means that the server does not call on another application in order to provide part of the
service.
Introduction to 3-Tier Architecture
In 3-tier architecture, there is an intermediary level, meaning the architecture is generally
split up between:

1. A client, i.e. the computer, which requests the resources, equipped with a user
interface (usually a web browser) for presentation purposes
2. The application server (also called middleware), whose task it is to provide the
requested resources, but by calling on another server
3. The data server, which provides the application server with the data it requires

The widespread use of the term 3-tier architecture also denotes the following
architectures:

• Application sharing between a client, middleware and enterprise server

• Application sharing between a client, application server and enterprise


database server.

Comparing both types of architecture


2-tier architecture is therefore a client-server architecture where the server is versatile, i.e.
it is capable of directly responding to all of the client's resource requests.

In 3-tier architecture however, the server-level applications are remote from one another,
i.e. each server is specialised with a certain task (for example: web server/database
server). 3-tier architecture provides:
• A greater degree of flexibility
• Increased security, as security can be defined for each service, and at each level
• Increased performance, as tasks are shared between servers

Multi-Tiered Architecture
In 3-tier architecture, each server (tier 2 and 3) performs a specialised task (a service). A
server can therefore use services from other servers in order to provide its own service.
As a result, 3-tier architecture is potentially an n-tiered architecture

Flexible data access

• Advantage Database Server provides data access via native relational SQL or
direct navigational commands.

Optimized

• The management system offers optimized data access for Delphi, Visual Studio,
Visual Objects, Visual Basic and more.

Easy to manage
• Zero administration is needed, as Advantage Database Server is easy to install and
manage--no database administrator required.

Referential integrity support

• Advantage Database Server provides complete referential integrity support,


including primary/foreign key definition and cascaded updates and deletes.

Avoids Database Corruption

• Server-based transaction processing eliminates database corruption.

Data security

• The system offers complete security and encryption support for databases.

Highly scalable

• Advantage Database Server is fully scalable from local to peer-to-peer to client-


server environments—with one set of source code.

A database server is a computer program that provides database services to other


computer programs or computers, as defined by the client–server model. The term may
also refer to a computer dedicated to running such a program. Database management
systems frequently provide database server functionality, and some DBMSs (e.g.,
MySQL) rely exclusively on the client–server model for database access.

Such a server is accessed either through a "front end" running on the user’s computer
which displays requested data or the back end which runs on the server and handles tasks
such as data analysis and storage.

In a master-slave model, database master servers are central and primary locations of data
while database slave servers are synchronized backups of the master acting as proxies.

Some examples of Database servers are Oracle, DB2, Informix, Ingres, SQL Server.
Every server uses its own query logic and structure. The SQL query language is more or
less the same in all the database servers.
Application server
Show me everything on SQL Server 2008

definition -

An application server is a server program in a computer in a distributed network that


provides the business logic for an application program. The application server is
frequently viewed as part of a three-tier application, consisting of a graphical user
interface (GUI) server, an application (business logic) server, and a database and
transaction server. More descriptively, it can be viewed as dividing an application into:

1. A first-tier, front-end, Web browser-based graphical user interface, usually at a


personal computer or workstation
2. A middle-tier business logic application or set of applications, possibly on a local
area network or intranet server
3. A third-tier, back-end, database and transaction server, sometimes on a mainframe
or large server

Older, legacy application databases and transaction management applications are part of
the back end or third tier. The application server is the middleman between browser-
based front-ends and back-end databases and legacy systems.

In many usages, the application server combines or works with a Web (Hypertext
Transfer Protocol) server and is called a Web application server. The Web browser
supports an easy-to-create HTML-based front-end for the user. The Web server provides
several different ways to forward a request to an application server and to forward back a
modified or new Web page to the user. These approaches include the Common Gateway
Interface (CGI), FastCGI, Microsoft's Active Server Page, and the Java Server Page. In
some cases, the Web application servers also support request "brokering" interfaces such
as CORBA Internet Inter-ORB Protocol (IIOP).

An application server is a software framework dedicated to the efficient execution of


procedures (programs, routines, scripts) for supporting the construction of applications.
The term was originally used when discussing early client–server server systems and
servers that ran SQL services[1] and middleware servers to differentiate them from file
servers.

Later, the term took on the meaning of web applications, but has since evolved into more
of a comprehensive service layer. An application server acts as a set of components
accessible to the software developer through an API defined by the platform itself. For
web applications, these components are usually performed in the same machine where
the web server is running, and their main job is to support the construction of dynamic
pages. However, present-day application servers target much more than just web pages
generation, they implement services like clustering, fail-over and load-balancing, so
developers can be focused just on implementing the business logic.[2]

Normally the term refers to java application servers. When this is the case, the application
server behaves like an extended virtual machine for the running applications, handling
transparently connections to the database at one side, and connections to the web client at
the other.

Other uses of the term can refer to:

1. the services that a server makes available


2. the computer hardware on which the services run

Advantages of application servers


Data and code integrity
By centralizing business logic on an individual server or on a small number of
server machines, updates and upgrades to the application for all users can be
guaranteed. There is no risk of old versions of the application accessing or
manipulating data in an older, incompatible manner.
Centralized configuration
Changes to the application configuration, such as a move of database server, or
system settings, can take place centrally.
Security
A central point through which service-providers can manage access to data and
portions of the application itself counts as a security benefit, devolving
responsibility for authentication away from the potentially insecure client layer
without exposing the database layer.
Performance
By limiting the network traffic to performance-tier traffic the client–server model
improves the performance of large applications in heavy usage environments.
[citation needed]

Total Cost of Ownership (TCO)


In combination, the benefits above may result in cost savings to an organization
developing enterprise applications. In practice, however, the technical challenges
of writing software that conforms to that paradigm, combined with the need for
software distribution to distribute client code, somewhat negate these benefits.
Transaction Support
A transaction represents a unit of activity in which many updates to resources (on
the same or distributed data sources) can be made atomic (as an indivisible unit of
work). End-users can benefit from a system-wide standard behaviour, from
reduced time to develop, and from reduced costs. As the server does a lot of the
tedious code-generation, developers can focus on business logic.
Application server definition
An application server is a component-based product that resides in the middle-tier of a
server centric architecture. It provides middleware services for security and state
maintenance, along with data access and persistence.

Java application servers are based on the Java™ 2 Platform, Enterprise Edition (J2EE™).
J2EE uses a multi-tier distributed model. This model generally includes a Client Tier, a
Middle Tier, and an EIS Tier. The Client Tier can be one or more applications or
browsers. The J2EE Platform is in the Middle Tier and consists of a Web Server and an
EJB Server. (These servers are also called "containers.") There can be additional sub-tiers
in the middle tier. The Enterprise Information System (EIS) tier has the existing
applications, files, and databases.

For the storage of business data, the J2EE platform requires a database that is accessible
through the JDBC, SQLJ, or JDO API. The database may be accessible from web
components, enterprise beans, and application client components. The database need not
be accessible from applets.
Application Servers (appservers)

Definition: An application server, or appserver, is software that typically interfaces one


or more databases to convey processed data to and from a user interface.

The user interface is often web based through a browser, but it may be through other
means to client computers in any distributed network situation. The application server
and databases may be housed in the same or separate computers.

The term “server” is applied to computers in a number of ways: for instance file, web and
printer servers. “Application server” doesn’t necessarily apply to a machine, however, as
it is actually a piece of software. Loosely speaking, any software that centrally processes
data for distributed client machines can be seen as an application server.

What they do

The application server’s role is to take care of the “business logic” in a “multi-tier”
architecture. The business logic is simply the functions that the software performs on the
data. Multi-tier refers to the three tiers involved in the system: client – application server
– database.

Application servers are written for specific tasks, defined by business needs. Its basic job
is to retrieve, process and present data to the user interface, and process any input data
whether queries or updates, including any validation, verification and security checks that
need to be performed. But what the data is, and what the processes are, vary widely.

A common example of an application server is an Internet search engine. In this instance,


the client machines are any computer that logs on to the search engine’s website, and the
data input is the search. The application server takes the input and will run several
operations on the search term, dependant on the particular search engine’s technology.
Then, queries are made to the search engine’s database of web content, and the returned
data is ordered and presented back to the client machine.

Other common examples include:

* Online booking systems


* Centralised stock control
* Online banking
* Online dictionaries and other reference
Tiers, n-tiers and multi-tiers

Many networks still run on a two tier approach, in which the client computers are
connected to a central server, but each client has their own copy of a particular
application installed on them. This means all processing happens on the client computers,
and the connection to the server is used only for data retrieval.

The three tier approach, sometimes called n-tier or more commonly multi-tier, takes the
processing away from the clients, leaving them with only data presentation. In this model,
the client may be referred to as a “thin client”.

Diagram of a multi-tier application server environment

Interestingly, even though the three tiers are usually split across three separate computers,
it’s still possible for all three tiers of interface, application, and database to sit on a single
computer.

Advantages of Application Servers

Situating the application on a central computer decouples the clients from the processing,
allowing the client computers to access the application from any platform. In other
words, any Windows™ or Linux PC or Macintosh ® running any browser can connect to
a web based application server, regardless of their individual specifications.

Centralisation of the application holds clear advantages for maintenance and


management. The computer that holds the application server can be maintained and
upgraded as required to meet demand, and the software can be engineered and developed
with a certainty of environment that wouldn’t be possible if the processing had to be run
on many distributed computers.

Disadvantages of Application Servers

There are three main disadvantages of centralised processing. Firstly, if the servers go
down then clients simply can't access the application. Secondly, the reliance on network
connections, including the Internet, exposes the vulnerability that any network outage
also chokes all access to the application. Finally, security, since data which may be
sensitive could be transferred over public networks.

The way to tackle the first two problems is to ensure adequate redundancy of resources –
so, backup servers, network and Internet connections are a must. It’s almost impossible to
cover all angles in this, particularly as most of the WAN is out of management control,
and the steps taken to cover outage risk will be governed by how mission critical the
application server’s availability is.

Tackling security issues is always difficult. However, there are a number of methods,
encryption and secure connections for instance, that are applied across all forms of
sensitive web interaction. These methods equally apply to application server interfacing
over the Internet.

Development Platforms

Java EE, once known as J2EE, is a platform that has become a benchmark for application
server developments. Not a standard as such, still compliance with Java EE requirements
grants a product significant value status. As a result, Java is widely used as the language
of choice for application servers.

However, Microsoft’s ASP.Net platform is also powerful and commonly used, and many
developers still use CGI and PERL. The choice of platform for an application server may
have technical constraints, and it is down to system analysts and developers to make the
choice of suitable solution.
Static website
Main article: static web page

A static website is one that has web pages stored on the server in the format that is sent to
a client web browser. It is primarily coded in Hypertext Markup Language (HTML).

Simple forms or marketing examples of websites, such as classic website, a five-page


website or a brochure website are often static websites, because they present pre-defined,
static information to the user. This may include information about a company and its
products and services via text, photos, animations, audio/video and interactive menus and
navigation.

This type of website usually displays the same information to all visitors. Similar to
handing out a printed brochure to customers or clients, a static website will generally
provide consistent, standard information for an extended period of time. Although the
website owner may make updates periodically, it is a manual process to edit the text,
photos and other content and may require basic website design skills and software.

In summary, visitors are not able to control what information they receive via a static
website, and must instead settle for whatever content the website owner has decided to
offer at that time.

They are edited using four broad categories of software:

• Text editors, such as Notepad or TextEdit, where content and HTML markup are
manipulated directly within the editor program
• WYSIWYG offline editors, such as Microsoft FrontPage and Adobe
Dreamweaver (previously Macromedia Dreamweaver), with which the site is
edited using a GUI interface and the final HTML markup is generated
automatically by the editor software
• WYSIWYG online editors which create media rich online presentation like web
pages, widgets, intro, blogs, and other documents.
• Template-based editors, such as Rapidweaver and iWeb, which allow users to
quickly create and upload web pages to a web server without detailed HTML
knowledge, as they pick a suitable template from a palette and add pictures and
text to it in a desktop publishing fashion without direct manipulation of HTML
code.

Dynamic website
Main article: dynamic web page

A dynamic website is one that changes or customizes itself frequently and automatically,
based on certain criteria.
Dynamic websites can have two types of dynamic activity: Code and Content. Dynamic
code is invisible or behind the scenes and dynamic content is visible or fully displayed.

Dynamic code

The first type is a web page with dynamic code. The code is constructed dynamically on
the fly using active programming language instead of plain, static HTML.

A website with dynamic code refers to its construction or how it is built, and more
specifically refers to the code used to create a single web page. A dynamic web page is
generated on the fly by piecing together certain blocks of code, procedures or routines. A
dynamically-generated web page would call various bits of information from a database
and put them together in a pre-defined format to present the reader with a coherent page.
It interacts with users in a variety of ways including by reading cookies recognizing
users' previous history, session variables, server side variables etc., or by using direct
interaction (form elements, mouse overs, etc.). A site can display the current state of a
dialogue between users, monitor a changing situation, or provide information in some
way personalized to the requirements of the individual user.

Dynamic content

The second type is a website with dynamic content displayed in plain view. Variable
content is displayed dynamically on the fly based on certain criteria, usually by retrieving
content stored in a database.

A website with dynamic content refers to how its messages, text, images and other
information are displayed on the web page, and more specifically how its content changes
at any given moment. The web page content varies based on certain criteria, either pre-
defined rules or variable user input. For example, a website with a database of news
articles can use a pre-defined rule which tells it to display all news articles for today's
date. This type of dynamic website will automatically show the most current news
articles on any given date. Another example of dynamic content is when a retail website
with a database of media products allows a user to input a search request for the keyword
Beatles. In response, the content of the web page will spontaneously change the way it
looked before, and will then display a list of Beatles products like CD's, DVD's and
books.

Purpose of dynamic websites

The main purpose of a dynamic website is automation. A dynamic website can operate
more effectively, be built more efficiently and is easier to maintain, update and expand. It
is much simpler to build a template and a database than to build hundreds or thousands of
individual, static HTML web pages.
What are dynamic websites ?

The characteristic feature of dynamic website is the compartmentalization of the


content and design. Its �dynamism� lies in its vibrancy and interactivity, both in
client-side scripting and service-side scripting. Dynamic website evolved from Static
website. Therefore, in order to understand dynamic website you have to understand
normal web pages. Typical non-dynamic or static web pages do not change every
time the page is loaded into the browser, not even when a user clicks on a button. The
only change that you will see in static pages is you can very well observe them
loading and unloading, like what happens when you click on a hyper link. In short,
static web pages (normal pages you build) always look the same and the content
never changes unless you load a new page or you change the page yourself and
upload the new version of the pages unto the server. Dynamic pages are the pages that
changes in an automatic way. Dynamic pages can change every time they are loaded
(without you having to make those changes) and they can change their content based
on what user does, like clicking on some text or an image. One of the most common
types of dynamic web pages is the database driven type. This means that you have a
web page that grabs information from a database (the web page is connected to the
database by programming.) and inserts that information into the web page each time it
is loaded. If the information stored in the database changes, the web page connected
to the database will also change accordingly and automatically without human
intervention.

This is commonly seen on online banking sites where you can log in (by entering
your user name and password) and check out your bank account balance. Your bank
account information is stored in a database and connected to the web page with
programming thus enabling you to see your banking information. I hope that it is
understood by you that when you would like to start a database driven site; you would
like to have it when your information changes very often, just like in a banking site.
Database driven sites can be built using several competing technologies, each with its
own advantages. Some of those technologies/tools include PHP, JSP, ASP, PERL,
NET, Coldfusion and more (these are server-side languages).

The Difference Between Static and


Dynamic Websites
Can a website be more than just a pretty page?

Extra, Extra read all about it! While millions of people still rely on the good old black
and white every day, it is the perfect example of a static media. Once it is printed a
newspaper can no longer be changed, its type has been set and one will simply have to
wait until the next edition to recieve the quote unquote latest news even if it has broken
minutes after the paper has been delivered to your doorstep. Similarly, once a static
website has been published it too will not change until the next edition; whenever the
webmaster or someone familiar with HTML, or flash edits the content.

A dynamic website on the other hand uses programming in addition to the layout to not
only allow the the flow of data in and out of the site but to make meaningful relationships
with the data. For example an online business directory may allow local businesses to
sign up and create profiles for their businesses. Visitors to the site may then search the
directory based on their needs for example one may conduct a search for a laywer in their
zip code who speaks Spanish or for a dance school in the area that offers tap dancing
classes.

Dynamic websites empower their owners with the ability to upload information on their
own, preferably through password protected administrative interfaces. One does not
require knowledge about HTML or websites design to update or maintain such a site.

In addition to the budget there are several other factors that will determine if you need a
static or dynamic site. What purpose will your site serve? If you are a relatively small
business or the services and products that your provide are few and/or simple to explain
then a static website could suffice your needs. On the other hand if you have a large
inventory of products and/or services then you may wish to empower your customers
with the ability to search through your inventory based on their selected criteria with a
dynamic website.

If you were renting a small villa on a beach in the Caribbean and you simply needed to
show a few pictures, provide rates and contact info, a static site would do. If you were a
real estate broker in a competitive market and you needed to update your listings
frequently, a dynamic website would be your solution.

Dynamic websites are not without their challenges: good programmers are harder to find
than good designers often requiring one or more people to be involved in the design of a
dynamic site. When considering a programmer or developer as they are often referred to
as, ask to see examples of previous work and for sample code. Experience is critical.

While a dynamic website typically cost more because of its complexity, it can be a more
cost effective solution in the long run. A dynamic website is the most effective solution
for sites with content requring frequent updates and/or interaction with the visitors.