What is a Web Application?

A website is defined by its content, while a web application is defined by its interaction with the user. That is, a website can plausibly consist of a static content repository that's dealt out to all visitors, while a web application depends on interaction and requires programmatic user input and data processing.



For example, a news site would be a website, but a spreadsheet or a collaborative calendar would be web applications. The news site shows essentially the same information to all visitors, while the calendar processes individual data.



Practically, most websites with quickly changing content will also rely on a sophisticated programmatic (and/or database) backend. At least in principle, they're only defined by their output. The web application, on the other hand, is essentially a program that runs remotely, and it depends fundamentally on a processing and a data storage backend.


Web apps have several advantages over desktop applications. Since they run inside web browsers, developers do not need to develop web apps for multiple platforms.


For example, a single application that runs in Chrome will work on both Windows and OS X.
Developers do not need to distribute software updates to users when the web app is updated. By updating the application on the server, all users have access to the updated version.

A web Application

From a user standpoint, a web app may provide a more consistent user interface across multiple platforms because the appearance is dependent on the browser rather than the operating system. Additionally, the data you enter into a web app is processed and saved remotely. This allows you to access the same data from multiple devices, rather than transferring files between computer systems.



While web applications offer several benefits, they do have some disadvantages compared to desktop applications. Since they do not run directly from the operating system, they have limited access to system resources, such as the CPU, memory, and the file system.



Therefore, high-end programs, such as video production and other media apps generally perform better as desktop applications. Web apps are also entirely dependent on the web browser. If your browser crashes, for example, you may lose your unsaved progress. Also, browser updates may cause incompatibilities with web apps, creating unexpected issues.



Web applications have been around since before the World Wide Web gained mainstream popularity. For example, Larry Wall developed Perl, a popular server-side scripting language, in 1987. That was seven years before the internet started gaining popularity outside of academic and technology circles.



The first mainstream web applications were relatively simple, but the late 90s saw a push toward more complex web applications. Nowadays, millions of Americans use the application to file their income taxes online, perform online banking tasks, stay in touch with friends and loved ones and so much more.



Web applications are usually coded in such as JavaScript and HTML as these languages rely on the browser to render the program executable. Some of the applications are dynamic, requiring server-side processing. Others are static with no processing required at the server.



The web application requires a web server to manage requests from the client, an application server to perform the tasks requested, and, sometimes, a database to store the information. Application server technology ranges from ASP.NET, ASP and ColdFusion, to PHP and JSP.



The user triggers a request to the web server over the Internet, either through a web browser or the application’s user interface. The web server forwards this request to the appropriate web application server.

Web application server performs the requested task – such as querying the database or processing the data – then generates the results of the requested data.


Web application server sends results to the web server with the requested information or processed data.
The web server responds to the client with the requested information that then appears on the user’s display Increased Internet usage among companies and individuals has influenced the way businesses are run.



This has led to the widespread adoption of web applications as companies shift from traditional models to cloud-based and the grid models. Web applications give businesses the ability to streamline their operations, increase efficiency, and reduce costs.



These online apps such as email clients, word processors, spreadsheets, and other programs provide the same functionality as the desktop versions. However, they have an added advantage of working across multiple platforms, having a broader reach and being easily accessible from anywhere.

History of the dynamic web

A website, or individual web page, can be static or dynamic. A
static website contains information that does not change.
It remains the same, or static, for every viewer of the
site.
A dynamic website contains information that changes, depending on the
viewer, the time of the day, the time zone,
the viewer's native language, and other factors.

A history of the dynamic web


Most used programming languages on the web today:
As is generally well known, the early days of the internet and the world wide web
were not particularly dynamic.
While dial-up BBSes and early websites allowed unprecedented access to people around the world, the visual
display of that information was not of the highest
priority.
Bandwidth was at a premium (insert joke about current monopoly
telco practices here)
, so it was generally by
necessity that information is presented in a manner that was not overly
taxing on download size.
While this edict has largely held true over
the years, and even into today, the available bandwidth that visitors have, and the technologies used to get that
information to them, have greatly improved and provided us all with
wave after wave of exciting new things to discover on the web.

Today we enjoy websites that are full of content and services that let us take care of anything imaginable online (well,
almost). But the ride to our “Web 2.0” world of today has taken quite a while. It has been about 14 years since the
first web page with dynamic content was created.
This is a look at the history of the dynamic web, especially the server-side programming languages and frameworks that
make it all possible.

From static to dynamicHistory of dynamic web


When the Web first started, there were only static HTML pages. The internet had been around for some time already, but
it was only after the introduction of HTML (and with it, web browsers) that what we call the World-Wide Web got started.
A lot has happened since then. We would like to place the birth of the dynamic web to when CGI, Common Gateway
The interface was first introduced in 1993, 14 years ago. CGI was a way to let a website run scripts (usually Perl scripts
back then) on the web server and display the output.
Now the web has evolved tremendously and is powered by server-side technologies and languages such as PHP, Java,
ASP.NET, Python, Ruby (with Ruby on Rails), and many others.
(You may gasp in horror that we have not yet mentioned JavaScript and AJAX, but remember that the focus of this article
is on the server side, not the client side.)
So, how did we get from A to B? For your viewing pleasure, we have created a handy little timeline.

The future of the dynamic web


These days websites are in many cases full-fledged browser-based applications. The line between web and desktop
applications is blurring more for every day that passes.
There is a strong movement towards RIA (Rich Internet
Applications
) where some notable initiatives are JavaFX from
Sun, Flex from Adobe and Silverlight from Microsoft. These frameworks allow for richer,
more interactive and responsive web applications that can have more elements of regular desktop applications.
It seems very likely that the difference between what is a desktop application and what is a web application will
eventually, disappear.
A positive side effect of putting more power and flexibility on the client side, versus the way many web applications
work today is that it not only sidesteps limitations of HTML/CSS and JavaScript, but it will also make it easier for
websites (web applications) to scale in the future since the load on the backend servers would lessen.
One thing we know for sure: Whatever the future of the web holds, it’s going to be an interesting ride.

Glossary (to fill in the blanks if you have any)


CGI (Common Gateway Interface)
A standard protocol for interfacing external application software with an information server, usually a web server.
Perl
Perl was a highly used language on the early web and still is very much alive today. Large websites using Perl include
Amazon.com, LiveJournal.com, Ticketmaster.com and IMDb.com.
Python
A programming language that keeps gaining popularity. Some projects that use Python are the Zope application server,
YouTube and Google has mentioned that they use Python extensively.
PHP
Most likely the most used server-side scripting language in the world. Over 19 million internet domains are currently
hosted on servers with PHP installed. Examples of popular server-side PHP applications include phpBB, WordPress, and
MediaWiki.
ColdFusion
Adobe’s ColdFusion framework still has a strong following. According to Adobe, ColdFusion is in use at 75 of the Fortune
100 companies.
ASP and ASP.NET
Microsoft’s framework for dynamic web pages. Examples of sites using ASP.NET are MySpace.com, Dell.com, Match.com and
Monster.com. Common languages used with ASP.NET include Visual Basic and C#.
Lasso
Scripting language and framework loved by the Apple Mac community.
Java Servlet
Server-side Java. Sun’s Java language has a strong developer following. Some sites that use Java are eBay.com,
LinkedIn.com and Hi5.com.
Ruby on Rails
A complete framework built around the Ruby scripting language. The philosophy of Ruby on Rails has been adopted to other
languages with framework releases such as Django (Python), CakePHP (PHP), Symfony (PHP) and many more. Basecamp and
Twitter are two websites running on Ruby on Rails.