A web stack, also called a web ap­pli­ca­tion stack, is a com­pi­la­tion of software set up es­pe­cial­ly for im­ple­ment­ing websites and web ap­pli­ca­tions. The term, ‘stack’, refers to the fact that the system’s in­di­vid­ual com­po­nents are built upon one another. The basic re­quire­ments necessary to construct a web stack include: an operating system, a webserver, a database, and a script in­ter­preter. Together with the proper server hardware, this bundle of IT com­po­nents ensures that necessary in­for­ma­tion about cor­re­spond­ing web projects is forwarded to re­quest­ing 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 com­po­nents can be in­di­vid­u­al­ly combined, there are numerous vari­a­tions possible that can be used for many different ap­pli­ca­tion cases. The most popular software com­bi­na­tion is the open source bundle LAMP, which is composed of Linux, Apache, MySQL, and PHP.

Con­ven­tion­al web stack com­po­nents

As mentioned above, web stacks are critical pieces of in­fra­struc­ture for websites and web ap­pli­ca­tions and are composed of four software building blocks: operating systems, web­servers, databases, and script in­ter­preters. Ad­di­tion­al­ly, frame­works help expand the ca­pa­bil­i­ties of web stacks by allowing them to use ad­di­tion­al pro­gram­ming languages, proxy servers, or different analysis programs. Here’s an overview of the system’s basic com­po­nents:

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 com­po­nents. That is to say, the operating system relies on hardware resources in order to ensure the func­tion­al­i­ty of in­di­vid­ual ap­pli­ca­tions, es­pe­cial­ly web­servers. Possible systems that can be built upon web stacks include various Linux, Windows, Unix, and Mac OS dis­tri­b­u­tions.

Web servers

Installed on the operating system, a web server is a type of software that delivers documents to re­quest­ing 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 cor­re­spond­ing 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 per­ma­nent­ly stored so that the web server can default to these when needed. In order for this process to properly function, the server uses server ex­ten­sions to put in requests, which are then processed by the databank and sent back to the ex­ten­sions. These ex­ten­sions 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 pro­gram­ming language. Popular options are Oracle, MySQL, and MongoDB.

Script in­ter­preter

Without script in­ter­preters, web servers would be unable to realize dynamic websites and web ap­pli­ca­tions. For one thing, this is why script in­ter­preters operate client side, which means within the re­quest­ing browser. For another, certain cal­cu­la­tion processes for depicting sites already take place through server side scripting. The typical web stack script in­ter­preter is PHP; other, less fre­quent­ly used al­ter­na­tives, 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 de­vel­op­ment-related tasks. The growing demands placed on important aspects (e.g. user-friend­li­ness, stability, ex­pand­abil­i­ty, and scal­a­bil­i­ty) together with arrival of in­creas­ing­ly complex web ap­pli­ca­tions has decreased the pop­u­lar­i­ty of the classic web stack model. JavaScript has taken on an in­creas­ing­ly important server­side role: web ap­pli­ca­tion stacks based on the JavaScript platform, Node.js are no longer the rarity they once were. One reason for their growing pop­u­lar­i­ty is ease with which per­for­mant web projects can be pro­grammed. Three es­pe­cial­ly popular stacks and some of their potential ap­pli­ca­tions are:

LAMP—the classic option

As pre­vi­ous­ly 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 in­ter­preter, PHP,

all of the com­po­nents 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 pro­pri­etary solutions and have been used to develop MediaWiki, the Wikipedia software. LAMP packages are es­pe­cial­ly well-suited for im­ple­ment­ing multipage, dynamic websites. Users es­pe­cial­ly benefit from the large community, extensive tutorials, and the option of using PHP and high-per­for­mance tools, like ph­p­MyAd­min.  

Due to the steadily in­creas­ing progress of this tech­nol­o­gy and the de­vel­op­ment of new freeware, different vari­a­tions of LAMP stacks have arisen that have partly replaced the system’s con­ven­tion­al com­po­nents. 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 in­ter­preters; platform-in­de­pen­dent FTP server)
  • LAPP (Post­greSQL as database for en­ter­prise projects)

The ‘M’ listed above can also stand for MariaDB, the MySQL spin-off. Read on about LAMP stack and its in­stal­la­tion in our Digital Guide series on the matter.

WISA—the Microsoft stack

Unlike the LAMP stack, which is es­sen­tial­ly an arrange­ment of in­di­vid­ual, sep­a­rate­ly designed com­po­nents, Microsoft has pro­grammed the com­po­nents of its WISA stack specif­i­cal­ly with co­op­er­a­tion in mind, which guar­an­tees optimal function of the software package. Of course, the im­ple­ment­ed software is pro­pri­etary, which is why its cor­re­spond­ing 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 In­for­ma­tion Services (IIS),
  • the re­la­tion­al database man­age­ment system, SQL server
  • and the pro­gram­ing language library, ASP.NET

Thanks to the ASP.NET library, web projects can be pro­grammed 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 in­ter­preters, and because of this it’s at a con­sid­er­able per­for­mance advantage when compared to other web stacks that do need them. This makes the Microsoft stack a good solution for chal­leng­ing, complex web projects.

MEAN—modern ar­chi­tec­ture for single-page web ap­pli­ca­tions

The so-called MEAN stack presents an al­ter­na­tive to the classic web stack set-up. Due to its com­po­nents, the need for multiple pro­gram­ming languages for servers (PHP etc.) and clients (JavaScript) is no longer necessary given that all the elements of this modern software package support JavaScript. Ad­di­tion­al­ly, 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 ap­pli­ca­tion framework, Express.js,
  • the client side frontend-framework, AngularJS
  • and Node.js, which is based on the JavaScript runtime en­vi­ron­ment.

One of the main ad­van­tages of this web ap­pli­ca­tion stack is its extremely sleek and ac­cel­er­at­ed de­vel­op­ment process as well as the op­por­tu­ni­ty for scaling projects. And thanks to the document-based data transfer in JSON format, client-oriented single-page ap­pli­ca­tions and mobile apps can be mas­ter­ful­ly im­ple­ment­ed. 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 com­plete­ly compiled and expanded execution of a MEAN stack.

How to find the right web stack

Finding the right software package and runtime en­vi­ron­ment depends on a multitude of factors. While JavaScript-oriented stacks are first and foremost intended for realizing single-page ap­pli­ca­tions, classic web stacks, which are based on PHP, Python, or Perl, have clear ad­van­tages when it comes to designing multipage projects. The pro­gram­ming 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 dif­fer­ences, such as the per­for­mance and stability of the software en­vi­ron­ment, into account. Con­sid­er­ing al­ter­na­tive com­po­nents, 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.

Go to Main Menu