The development of internet infrastructure has led to a significant increase in the flow amounts of data, and Internet speed. This has greatly influenced the direction of how web applications were developed. Unlike the Internet from twenty years ago, which was composed of static text and only after some thumbnails (which had to wait for several minutes to load), today’s internet content is much richer. It would seem at first glance that when developing a web application one should have not much more to worry about the amount of transferred data.
But man’s desire for progress and improvement leads to the development of new concepts which eventually become standards in the development of applications.
Rather than load the entire page from the server, we now use AJAX (https://en.wikipedia.org/wiki/Ajax_(programming)) to get just part of a page in the background and refreshed him. As a callback result from AJAX calls we can get for example JSON (https://en.wikipedia.org/wiki/JSON) object in order to reduce the amount of data transferred. Web services are another step towards Internet content granulation and allow us access distributed resources and functionalities. One form of web services is REST (Representational State Transfer)
(https://en.wikipedia.org/wiki/Representational_state_transfer) that uses a predefined set of stateless operations to manipulate textual representation of data (JSON, XML, HTML). One good example of how we should use rest is this presentation from Stormpath (https://www.slideshare.net/stormpath/rest-jsonapis)