Perhaps the most popular platform for applications is the web. There are many reasons for this including portability across platforms no need to update the program data backup sharing data with others and many more. This popularity has driven many of us to the platform.
Unfortunately the platform is a bit complex. Rather than developing in a particular environment with web applications it is necessary to create two halves of a program utilizing vastly different technologies. On top of that there are many additional challenges such as the communications and security between the two halves.
A typical web application would include all of the following building blocks.
All these don8217t even touch on all the other pieces that are not part of your application proper such as the server Apache tomcat etc the database server PostgreSQL MySQL MongoDB etc the OS Linux etc. domain name DNS yadda yadda yadda.