Full stack web Development, Easy or Rocket science?

Full stack web Development, Easy or Rocket science?

 Full stack Web Developer

Many have at least heard the term but even amongst developers there is no one certain definition to the tittle. For the uninitiated its difficult to even grasp the meaning of the definition even after a thorough explanation. Its inevitable that any attempt at making such a description will be filled with technical terms and concepts that themselves require an explanation. I wont go as far as to say that this is a complete guide but I believe it will connect some dots as to what's going on in the background when a user visits a web page.


Server

A common term that is widely heard of but little is known about is a server. A server is what “contains” a website and all the data pics, images, etc. that a user can access therein. Every phone, CPU, or hand held device makes a request to a server to get data. The data can be images or the styling for a website, fonts etc. Also data base info like users, friends list, user likes/recent posts. A web server is a process running on a CPU that continuously listens for incoming traffic and sends a response based on what it receives. The response is of course the contents of the web site that your device uses to display the site that the user interacts with. A large company like amazon that handles lots of traffic may on 1000’s of CPU's on what's known as server farms, but you can use any desktop CPU as a server.

Once upon a time all the CPU’s in the world were connected via a web of cables and when a CPU accessed the internet it would make a request to another CPU that contained the website or content. This connection still occurs today however in most cases they are wireless. The engineering involved in creating the devices that make this possible delves into the deep world of semiconductor physics and transmission protocols. The RFC standards guide electronics and hardware engineering practices so wired or wireless internet transmission standards remain compatible and determine best security practices. In their own words:

“RFCs produced by the IETF cover many aspects of computer networking. They describe the Internet's technical foundations, such as addressing, routing, and transport technologies. ”

 

Although this is beyond the scope of this article (and the authors understanding) I mention it to acknowledge the many processes involved in the entire ecosystem of technology involved in making the devices that we use everyday. These areas of specialization are so great across this broad spectrum that even as a developer I myself feel as though I am a consumer or user in some respects.


All this fancy styling is making this page load slow!

Not necessarily. A page loads its layout almost instantly, however depending on how a website is designed a layout wont update until certain other data loads first. This usually isn't the case with static websites.

Static websites – websites that self contains everything that it will serve to a client, all images and relevant data. The site wont receive anything nor will it update or change anything. It basically has a stagnate back end.

A face book page that uploads the most recent user posts would be more dynamic requiring user data and maybe advertisements to load. Many Frame works are developing techniques to solve this issue and allow for faster loading. React uses a one page web page design where everything is loaded as needed on a single page, reducing redundant renders to cut down on reloading. Others like Next focus on routing techniques and server side rendering to accomplish the same.

Data

The data we store on our user is stored in a database. There are basically 2 main types of database. Relational or non-relational. Relational databases are organized into tables and rows while no are organized with key value pairs(non relational)


Authorization and Authentication

Databases contain info that is crucial to the proper functioning of an application. However because our applications are open to the public on the world wide web, security measures must be put into place to ensure that only those with permission may access it.

Once proper authentication measures are in place, u can now filter content to diff users based on rather or not they meet certain criteria.

For example: VIP access to certain content or some other user based tier structure.

When building a backed a developer considers how this application will need to access and manipulate the data. The term CRUD, create, read, update, delete, is an acronym describing the general operations carried out on a database.

JSON DATA


All the worlds databases from the largest server farms to the Jeremys server in his grandmas basement needed a common language structure. Without that even though the data accessible because CPU's can be connected via the internet, there wouldn't be a way for us to read through it in an efficient manner. When u add the different languages and cultures some of which use symbols instead of words their needed to be a way to pro grammatically analyze the data so we can all learn and utilize knowledge from around the world. So an organization known as ECMA International decided to make this the standard (java script object notation). All websites use this format to share their data, some popular examples include Netflix, Facebook, and twitter. All of the user data or image posts are held on a machine somewhere and when a device makes a request to a server the and the response the server gives is all in JSON data format. Our devices then are able to read the JSON data and then make the appropriate request.


URL

The way that servers actually communicate this information is via what is known as the hyper text transfer protocol or HTTP. Http allows 2 way communication between servers and the many devices that connects to them using its request and response procedure. This is why we see the Http: before each website we visit. There are many additional protocols that utilize Http to make communication in the world wide web efficient and secure, TLL and SSL being among many involved in handling authentification for cokkies

Urls are apart of the http protocol that is used to determine the relative path on a server including any additional queries. The queries are specified via a global standard, as defined in the URL standard abstract.


Terminals

The terminal is where it all comes together. In most cases the servers that are being used are actually headless devices that have no human interface on them. (the servers on the image above) these CPU’s can only be accessed via a terminal and the tools that interact with them must be compatible eith that interface. A terminal is where a developer is able to utilize the architecture and the capabilities of a machine to create applications that interact with devices that a user interacts with. The by typing commands in a terminal connections are made using protocols specified in the RFC that make the gears and levers turn deep inside the computer. It is here that our human readable programming languages are compiled into the 1’s and 0’s and matrices that a CPU devices use to produce the signals that are sent across the airwaves and through cables as signals.


Cookies

I think this one may be next to server on the list of commonly heard but rarely know web development terms. Digital cookies however are not as sweet as their digestible counterparts. Websites use cookies to store information on a users device to enhance their user experience by storing your data. It sounds bad but something like a profile pic or a friends list definitely make or break a social media app. The cookies store files on your device that it can check when your app makes a request to the server to send it the website your visiting. Some websites store things like logos or simple animations using cookies so that it wont have to keep sending the same thing over and over. Of course cookies can be used to track more sensitive information as well.


I hope this article shed a bit of light on some of the concepts involved in full stack web development.

Great article!! You explained many technical terms in a easy to understand way.

Like
Reply

To view or add a comment, sign in

More articles by Monty Williams

  • Libraries in C

    CPU programs consist of many small pieces of code or instructions that are used to make a CPU give some type of output…

  • Compiler for C programming language

    What exactly is a computer program? I doubt there is anyone who cant come up with answer to that question,. Everyone…

Others also viewed

Explore content categories