What is Back-end Web Development (in plain english)?
If Front-end Web Development is about developing the user interfaces on the web, then Back-end Web Development is about everything else invisible to users but critical for any web applications. What happens when you click on the “Post” button when you make a new post on Facebook? How does your post get stored in a way that your friends can access and read your posts from anywhere in the world?
It’s all about creating / retrieving / modifying / deleting information
Regardless of being analog or digital, tools we’ve built in history, from paper and ink to smartphones, have been designed to help us create, retrieve, modify and delete information, or, simply put, manage information. The internet has made it insanely fast and scalable to manage information.
So, let us consider the following analogy. You happen to have a phone service provider where you can manage your information (mostly in text form) by phoning them. The process goes like this:
- You call them with a given phone number, say 1–800-MANAGE-INFO
- They verify your identity with specific identification method (i.e. Personal ID / Password)
- You tell them whether you want to 1) get previously stored info 2) create new info 3) modify existing info 4) delete info
This process we’ve described is the backbone of modern internet in a simplified form. For modern internet, the process works in a much more efficient and faster manner because computers can do this same task repeatedly without the cost of human resources. So, how do computers do this?
Making a Phone Call vs. Making an API call
Now, let us consider a new information managing service via the internet doing the same thing. The process would now go like this:
- Using a computer, you make a HTTP request (as opposed to a phone call) to another computer (as opposed to another human being) with a URL (as opposed to a phone number)
- The computer verifies your identity with specific identification method (same as before)
- You tell them how you want to manage info (same as before)
Tell me more about this Internet Protocol that’s much faster and more efficient than phone calls in managing information
Now, there’s only one protocol for phone calls, where you dial a specific number and start talking via voice. For modern internet, there are many different protocols. The internet protocol we mostly use is called HTTP, Hypertext Transfer Protocol. Same as making a phone call, you need to know the destination, the content of the information and what to do with that information for making a HTTP request.
The basic components of making a HTTP request to a server is
- The destination of the computer is defined by either an IP Address (i.e. 192.168.0.1) or a URL (i.e. https://www.google.com)
- The type of request: GET/POST/PUT/DELETE request to retrieve/create/modify/delete information
- The content of the information you want to store
This process is what we call the “back-end” of an application or an “API”, Application Programming Interface. In the context of web development, an API is typically defined as a set of HTTP requests. The difference between a phone call and an API call is merely in the protocol of communication. So, you can make API calls to a server through the internet to read/create/modify/delete information.
The difference between a phone call and an API call is merely in the communication protocol.
So, what’s Back-end Development?
“Back-end Development is the development of a piece of software enabling information management upon authorized requests.”
After the API calls/HTTP requests arrive at the computer, the software as a result of back-end development begins its job. Back-end Development is the development of a piece of software enabling information management upon authorized requests.
5 Main Components of Back-end Development:
- User Authentication: Verify your identity with authentication methods like password (i.e. you need the right key to unlock the door)
- Data Validations: Length of words (i.e. Twitter limits 140 characters per tweet); Acceptable inputs (i.e. only accept numbers in the field); Frequency of actions (i.e. you can only send a Tweet every 10 seconds)
- Data Storage: Different ways to store data that persist permanently (i.e. spreadsheets are good for storing structured data, while text files are good for storing essays)
- Security: Process user inputs and internal procedures in a secure manner where others cannot tamper with (i.e. banks will conduct internal audits when you transfer money online)
- Automated Testing: Continuously run tests on your software as you make changes to make sure nothing breaks
Front-end Development has hidden these API calls through user interfaces to enhance user experiences. So, most users don’t know what goes on behind visible web pages, and they don’t need to know.
You can pick from a variety of programming languages (i.e. Ruby, Node.js, PHP, C#) to begin building an API with different frameworks (i.e. MVC). Follow us on Facebook and Medium to see more articles like this.