Most of the tech people know what is what and when to use what. But there are many developers out there in delivery companies who don't know what is the difference and they all call same thing web site sometimes and web app otherwise. This is just to consolidate my understanding about the difference between these 2
This is collection of HTML web pages linked together. The pages may be residing as .html page in the web server or web server generates the pages based on the request. For generation of html pages dynamically server side technologies uses html templates which contains tokens. The tokens will get replaced based on the incoming request. Sometimes it reads database for the token value or calls another service for the same. The driving factor is the incoming request.
These web sites were catering application needs as well. Eg: we can develop a Employee payroll application using this model.
- Easy to develop with little js as js was behaving differently in different browsers
- Web Servers have to fetch data from database and mix it with html templates to produce final html which is directly viewable in browser. This overloads the web servers.
Gmail Web interface is a classic example of a Web App.
The same server technologies can be used. Just tell them we need only data. Preferably in JSON format. Don't mix with html template as we know how to display your data in browser.
There are technologies such as ASP.Net Web API which are more tailored to web apps.
At client side
- Client side frameworks such as AngularJS, knockout js, Bootstrap etc...
- Web Servers act as just data provider. Their throughput increases. ie with same no of servers we will be able to serve more users
- Easy to handle the browser specific formatting such as different view for mobile, tablet etc...Other words responsive UI.
- Since the server only gives data, it can be consumed by desktop and native mobile apps.
- Client side technologies are not stabilized yet. Everyday there are new frameworks getting introduced.
How to select?
We should always choose right technology to right solution. Most of today's apps demand Web App methodology. But there are scenarios where we can use WebSites. For example, simple sites created for personal / business profiles can follow web site methodology. This is because there are only 5-10 pages expected and those can be generated by web servers quickly.