Web stack—the software framework for web development
A web stack, also called a web application stack, is a compilation of software set up especially for implementing websites and web applications. The term, ‘stack’, refers to the fact that the system’s individual components are built upon one another. The basic requirements necessary to construct a web stack include: an operating system, a webserver, a database, and a script interpreter. Together with the proper server hardware, this bundle of IT components ensures that necessary information about corresponding web projects is forwarded to requesting clients (generally, this is the internet browser). The browser then processes the HTML, CSS, and JavaScript codes and depicts the web space for the user. Given that a web stack’s distinct software components can be individually combined, there are numerous variations possible that can be used for many different application cases. The most popular software combination is the open source bundle LAMP, which is composed of Linux, Apache, MySQL, and PHP.
Conventional web stack components
As mentioned above, web stacks are critical pieces of infrastructure for websites and web applications and are composed of four software building blocks: operating systems, webservers, databases, and script interpreters. Additionally, frameworks help expand the capabilities of web stacks by allowing them to use additional programming languages, proxy servers, or different analysis programs. Here’s an overview of the system’s basic components:
Operating system
The operating system comprises the central interface between the basic server hardware (processor, working memory, web space) as well as the other applied software components. That is to say, the operating system relies on hardware resources in order to ensure the functionality of individual applications, especially webservers. Possible systems that can be built upon web stacks include various Linux, Windows, Unix, and Mac OS distributions.
Web servers
Installed on the operating system, a web server is a type of software that delivers documents to requesting clients. With the help of HTTP transfer protocols, client requests are passed on to the web server. If the requested documents deal with static content, like HMTL files or images, then the web server directly processes the request by sending the corresponding data to the client. Dynamic content, on the other hand, can only be rendered with the help of databases and script modules. The most commonly used web server solutions include names like Apache, Microsoft IIS, and nginx.
Databases
In database systems, which are also commonly referred to as databases, volumes of data relevant to the web project are permanently stored so that the web server can default to these when needed. In order for this process to properly function, the server uses server extensions to put in requests, which are then processed by the databank and sent back to the extensions. These extensions generate a suitable output format, like HTML, from the result and forward it to the web server. The database choice is tightly connected to web server software and applied script as well as the programming language. Popular options are Oracle, MySQL, and MongoDB.
Script interpreter
Without script interpreters, web servers would be unable to realize dynamic websites and web applications. For one thing, this is why script interpreters operate client side, which means within the requesting browser. For another, certain calculation processes for depicting sites already take place through server side scripting. The typical web stack script interpreter is PHP; other, less frequently used alternatives, like ASP.NET, Java, Ruby, Perl, or Python, are also available.
The most popular web-stack solutions
A whole host of software stacks has proved itself ready to take on different web development-related tasks. The growing demands placed on important aspects (e.g. user-friendliness, stability, expandability, and scalability) together with arrival of increasingly complex web applications has decreased the popularity of the classic web stack model. JavaScript has taken on an increasingly important serverside role: web application stacks based on the JavaScript platform, Node.js are no longer the rarity they once were. One reason for their growing popularity is ease with which performant web projects can be programmed. Three especially popular stacks and some of their potential applications are:
LAMP—the classic option
As previously mentioned, LAMP is the most well-known and widely used web stack. As one of the first-ever used models, this option is an optimal package for web projects. With
- Linux as its operating system
- Apache as the web server
- a MySQL database
- and the script interpreter, PHP,
all of the components of this model are made up of open source software with free licenses. This means that they are both free of charge and can be modified as desired. But don’t be deterred by the freeware nature of this option: LAMP models are able to more than hold their own against proprietary solutions and have been used to develop MediaWiki, the Wikipedia software. LAMP packages are especially well-suited for implementing multipage, dynamic websites. Users especially benefit from the large community, extensive tutorials, and the option of using PHP and high-performance tools, like phpMyAdmin.
Due to the steadily increasing progress of this technology and the development of new freeware, different variations of LAMP stacks have arisen that have partly replaced the system’s conventional components. Some popular examples include:
- WAMP (Windows as operating system)
- MAMP (Mac OS X as operating system)
- XAMP (any operating system, Perl and PHP as script interpreters; platform-independent FTP server)
- LAPP (PostgreSQL as database for enterprise projects)
The ‘M’ listed above can also stand for MariaDB, the MySQL spin-off. Read on about LAMP stack and its installation in our Digital Guide series on the matter.
WISA—the Microsoft stack
Unlike the LAMP stack, which is essentially an arrangement of individual, separately designed components, Microsoft has programmed the components of its WISA stack specifically with cooperation in mind, which guarantees optimal function of the software package. Of course, the implemented software is proprietary, which is why its corresponding licenses need to be purchased. Users also have access to the software giant’s support service as well. Microsoft’s web stack makes use of:
- the operating system, Windows Server,
- the web server software Internet Information Services (IIS),
- the relational database management system, SQL server
- and the programing language library, ASP.NET
Thanks to the ASP.NET library, web projects can be programmed based on VisualC# or Visual Basic.NET, which can be directly executed from the system with the help of a compiler. WISA doesn’t require the use of any script interpreters, and because of this it’s at a considerable performance advantage when compared to other web stacks that do need them. This makes the Microsoft stack a good solution for challenging, complex web projects.
MEAN—modern architecture for single-page web applications
The so-called MEAN stack presents an alternative to the classic web stack set-up. Due to its components, the need for multiple programming languages for servers (PHP etc.) and clients (JavaScript) is no longer necessary given that all the elements of this modern software package support JavaScript. Additionally, operating systems and web server software occupy a secondary role with this model. MEAN’s building blocks are
- The NoSQL database, MongoDB
- the server side web application framework, Express.js,
- the client side frontend-framework, AngularJS
- and Node.js, which is based on the JavaScript runtime environment.
One of the main advantages of this web application stack is its extremely sleek and accelerated development process as well as the opportunity for scaling projects. And thanks to the document-based data transfer in JSON format, client-oriented single-page applications and mobile apps can be masterfully implemented. There is even variation among MEAN web sticks. For example, MEEN, with Ember.js as the frontend framework, or MERN, which uses React.js as its frontend framework. Meteor presents a completely compiled and expanded execution of a MEAN stack.
How to find the right web stack
Finding the right software package and runtime environment depends on a multitude of factors. While JavaScript-oriented stacks are first and foremost intended for realizing single-page applications, classic web stacks, which are based on PHP, Python, or Perl, have clear advantages when it comes to designing multipage projects. The programming language also play a generally large role when it comes to making the right decision: normally, you’ll achieve better results with a script and markup-language based web stack, provided that you’re competent in these languages.
Of course, before any decision can be made, it’s important to also take technical differences, such as the performance and stability of the software environment, into account. Considering alternative components, like nginx as web server software for web projects with high hit rates is a further ‘must’. In any case, it’s clear that no one-size-fits-all approach can be taken when picking the right web stack solution.