API Security, Attacks

What Is Minification And Why Is It Needed?

Minification is one of the most misunderstood concepts when talking about website's optimization. It is a concept that has gained significant amount of interest through the years.

What Is Minification And Why Is It Needed?

This concept might look simple to understand but it requires deep understanding for one to interact with the concept properly and know what it entails and what it doesn't. A bunch of developers uses minification in website development, to have a fast and active web.  

Minification can be defined as the process of simplifying characters from the code without changing or touching the function of the code. The unnecessary characters cut across characters like the comments, the block delimiters, line breaks, and white space characters. To make things a bit easy, one can concatenate those files and save stress. 

Concatenation: is the process of joining files together into a single body. It means to join a lot of files together into a couple. Doing this will significantly reduce the number of files that need to be downloaded, thereby, greatly increasing the speed. 


What Is Minification

Minification can be defined as the process of eradicating or eliminating all pointless characters from the whole code, that is, removing some unimportant characters from the general code without the programmer altering the functionality or the potency of the general code – it works in such a way that it eliminates a code file containing all redundant or unnecessary data that are not important in the general code for the file to be carried out. It is not like the traditional or the old comprehension method that requires to be unzipped before it can be delivered or effected. 

Majorly, it is carried out after the completion of the code. It is mainly done before the deployment of the application – it allows easy access to the webpage because it allows the user to have access to the minified version of the webpage, instead of sending them the full version of the webpage. This allows users to interact with a webpage easily while having access to the full content on the website. It increases the response times and reduces the loading time. 

Minification is used in a bunch of websites, be it; private blogs, big users' websites. It's not only subjected to big websites or small personal blogs.

Minification can be called file optimization, according to WP rocket – minification can be used with different mack-up languages like; HTML, CSS, and even JS. A hypothetical average developer writes codes for other developers to be able to work with it – that is, the ability to make their codes easy to understand. All professional developers stay dried when writing their codes but still, it is very significant that their codes are self-explanatory. It is a bad practice for a developer to write codes that other fellow developers cannot understand or relate to. To write a code that every developer will be able to relate to it, one needs to use; line breaks, comments, and whitespaces when coding. On the other side, the web browser does not need these excesses before performing or running the codes, this is when minification comes in and helps eradicate or cut excesses out of the codes. Doing this will make the written code not easy to understand and very complex to comprehend for we humans – but computers do not need these; whitespaces, comments or the line break before they understand what they are asked to perform. The unnecessary part of the code file that minification usually removes add more to the size of the file, making it very heavier than it should be. When minification is in place, it allows easy download and also makes it easy for the web to run response faster.

A perfect real-life example is when one wants to get to work or office with a regular suitcase that should contain only important gadgets or tools that would be needed in the office, but in a situation, when one start adding some unnecessary materials to the suitcase, this will take up a large area in the suitcase, making it very bulky and large to carry around. Minification, allows us to only carry those important tools as codes to the office while reducing the size or the bulkiness of the suitcase box.


How Does Minification Works

Minification is a widely known concept that works in such a way that it helps in studying and reworking the general code file, to reduce the general size of the file. Minification helps in extending the script, style, and some other components used by the web browser to power the website. It is completed in the web server before sending out a response. The web server uses the simplified or the minified to substitute the original assets for quicker, faster, and rapid distribution to every user.

In this section, we have organized some necessary steps that would help guide our readers in understanding what Minification is all about and how it works.

Steps –

Be informed that the web browser usually reads all the extra characters that the developer uses or places in the codes when developing the webpage, some of them might be used while others act redundantly. Minification aims to eliminate those redundant codes. This series of codes, known as, whitespace, comments, and line breaks usually occupy a whole lot of space in the body of the file, which makes it very bigger and larger than the way it should be. These excess codes are usually not necessary because computers do not need those excess codes before performing what is required of them to do. When a code is minified it goes a long way in reducing the file size. 

  • A web programmer makes a JS script or CSS file that would be used on a web. All these files will be formatted for the convenience of the developer or programmer.
  • The said programmers or the web developer will use minification in other to convert the file or document codes into an augmented or compressed format while making it difficult to understand. The most used methods of minification are; reducing every variable name, eliminating all white space within the files, reducing longer functions with precise and short functions. 
  • Now, the minified version is taken into the webserver and uses when a response is required in the web. This results in a smaller or low bandwidth usage without giving up the real or the original function of the files.

There are a bunch of plugins one could use in minifying codes. If it is a WordPress website, using plugins can greatly help in minifying the code. In a situation when one doesn’t have a WordPress website, there are still some other tools that can help in minifying all kinds of codes used on your web.

  • For HTML – the HTML Minifier will work perfectly
  • For CSS – you can use the  CSS Nano for it
  • While for JS – the Uglify JavaScript will work perfectly.  

One of the best paybacks of the minification is the ability for it to be only performed when there is a change in the source file. If minification is used with some compression methods, it will significantly help in decreasing the bandwidth for all the users and also for the enterprise itself. In this present era, no one wants to spend minutes or hours loading a page while it could be done for a short or split second, minification is what is needed. 


Minification Methods And Tools

Minification is the process of reducing unimportant codes in your script files and your web pages. It reduces loads and loading times. There are a plethora of ways, methods that could be used in minifying code files. In this section we will be explaining those ways in details, among them, is:

The Manual Minification –

This process is straightforward, it only requires the developer or the programmer to remove all codes that are not that important in the file. After minifying the codes, it looks shorter, easier, and brief but very hard to understand for humans. A computer interprets the codes and produces the same function if it is minified and if it isn’t, but because we do want our webpage to load faster, we consequently opt-in for a minified version. Manual minification involves removing the breaks, whitespace, comments from the code file without altering or changing the function of the general code.

Minification By Online Tools – 

To save yourself from deep stress, and time-consuming activity like the manual minification process when designing your website, there's a bunch of tools that are specially designed to help do the needful. The different mack-up language uses a different minifier. This includes:

CSS Minification - this is the process of removing unnecessary codes from your general code files, to reduce the size of the file. You can use online tools like: CSSminifier.com – These tools simply allow users to minify their codes by copying and pasting their codes on the website, this website then gives them in return a minified version of their file. It is very easy and saves time one would have spent doing the Manual edit by oneself. Some other internet tools allow instant minification, there are a lot of them out there. Feel free to explore them yourself.

HTML minification

HTML minification is a way of reducing the size of HTML files into smaller sizes. This reduction increases the loading time and saves time. You can minify HTML codes by using HTML minifiers, it is one of the best to use and can be adapted into one’s project, easily. Other website tools can help minify the HTML file. They include; HTMLcompress.com This online tool allows users to minify their HTML, JS, and CSS file – Altogether! 

Examle:

before

<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<meta name='robots' content='max-image-preview:large' />
<!-- This site is optimized with the Yoast SEO Premium plugin v15.6.2 - https://yoast.com/wordpress/plugins/seo/ -->
<title>Wallarm blog - Cloud-Native Application Security</title>
<meta name="description" content="Cloud-Native Application Security" />
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
<link rel="canonical" href="https://lab.wallarm.com/" />
<link rel="next" href="https://lab.wallarm.com/page/2/" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Wallarm Blog - Cloud-Native Application Security" />
<meta property="og:description" content="Cloud-Native Application Security" />
<meta property="og:url" content="https://lab.wallarm.com/" />
<meta property="og:site_name" content="Wallarm Blog" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@Wallarm" />

after

<head><meta charset="UTF-8" /><meta http-equiv="x-ua-compatible" content="ie=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="profile" href="http://gmpg.org/xfn/11" /><meta name='robots' content='max-image-preview:large' /><!-- This site is optimized with the Yoast SEO Premium plugin v15.6.2 - https://yoast.com/wordpress/plugins/seo/ --><title>Wallarm blog - Cloud-Native Application Security</title><meta name="description" content="Cloud-Native Application Security" /><meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" /><link rel="canonical" href="https://lab.wallarm.com/" /><link rel="next" href="https://lab.wallarm.com/page/2/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="website" /><meta property="og:title" content="Wallarm Blog - Cloud-Native Application Security" /><meta property="og:description" content="Cloud-Native Application Security" /><meta property="og:url" content="https://lab.wallarm.com/" /><meta property="og:site_name" content="Wallarm Blog" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@Wallarm" />

JS Minification - the JavaScript minifier is very much accessible. The closure compiler is used to minify the code if a programmer alters or changes the JS file. One can use JS minification tools, like; Jscompress.com or yui.github.io. 

Jscompress.com: This is a JS minification means, that allows users to copy their codes and paste them directly on the tool and receive the minified version of the code. It is easy and less stressful than the manual method.  yui.github.io:  This tool is created to be used during the development process.

If it is a WordPress you are using, there are lots of plugins that can serve this purpose easily. These plugins can even be used by non-developers.

The Advantages Of Minification

As we have sailed through the thick of this topic, we should have learned that by now, minification comes with a bunch of advantages. In this section, we have organized some of the obvious advantages of minification:

  • Minification improves loading time – minification helps in reducing the amount of time one spends loading a particular page. The page has already been minified, it gives faster response than a webpage that hasn’t been minified. Minification is said to help in increasing the time a page needs to load by 60% or more. This shows how important minification is to web or app development.   
  • There is no need of downloading unnecessary data – after removing the unwanted codes like; comments, line breaks, the code files. This helps in reducing the file size and only important codes are found within the general codes. Minification saves one from downloading some unnecessary files – you only download what you need at the moment.
  •   The Enterprises get lower resource usage – this is because the amount of data used by users when getting a request is not much compared to that of an un-minified page. These minified pages only require to be generated once and can be used in a plethora of requests without having to load them from the start. 
  • Gives Better Users’ experience – minifying a website increases how users interact with your website or app. In reality, nobody wants to use a web that requires minutes or heavy data usage to load. This will increase the performance gain of the website when more users find your web very responsive and easy to load.  Minification will help place your website in a good ranking because of its user’s friendliness.

In the previous sections of this explorative piece, I used an analogy that explained how minification works. To explain the real importance or the benefits of minification. Imagine you and your three friends visited one of your friends and he wants to offer you all beers to chill within the evening, he would have to walk down to the fridge at least two times to get you all your desired beers, this is because he only has two hands to carry two beers. In this simple analogy, you and your friends are the web browsers while your friend who is the beer carrier is the webserver. This can be time-consuming because of the time he would invest in walking to and fro to get those beers from the fridge. 

But in a situation when there is a tray that can carry this beer all at once without having to stress your friend from walking to and fro – he would pick all four beers all at once, this saves time and saves him from the energy he would use in walking around. Now, in relation to minification, your friend who is the carrier of the beers can only handle some amount of beers at once, same with your browser it can only handle some amount of files at a time, you tends to send the webserver (Your friend who is the carrier) to help you fetch more files(beers from the fridge). In this era, websites use a bunch of files at once. This is where concatenation helps in joining numerous files together, in other for the server to send fewer files to the browser, this is a quicker procedure.


Does It Really Help?

In a brief conclusion, one would eventually have to ask the obvious question, which is, does minification deserves all these efforts? Well, to be sincere, it is not a rocket science process or a cheating process. It won’t give your website a super gain. It is like the finishing-tuning stage. You only use your minification after you have successfully written your code. It is the last stage of tuning. There will be a slight change in web pages, but do not expect a speed of light kind of speed.

Using the CSS minification helps in debugging easily while using a JS minification comes with stress, it is not easy to debug, this is because those files that are marked to be omitted are not intuitive enough, so this tends to consume a whole lot of time to phantom it out. Doing this might not worth the stress if one is not a programmer or a web developer.


Learning Objectives
It’s demo time