4Geeks logo
4Geeks logo

Bootcamps

Explore our extensive collection of courses designed to help you master various subjects and skills. Whether you're a beginner or an advanced learner, there's something here for everyone.

Academy

Learn live

Join us for our free workshops, webinars, and other events to learn more about our programs and get started on your journey to becoming a developer.

Upcoming live events

Learning library

For all the self-taught geeks out there, here is our content library with most of the learning materials we have produced throughout the years.

It makes sense to start learning by reading and watching videos about fundamentals and how things work.

Full-Stack Software Developer - 16w

Data Science and Machine Learning - 16 wks

Search from all Lessons


LoginGet Started
← Back to Lessons

Weekly Coding Challenge

Every week, we pick a real-life project to build your portfolio and get ready for a job. All projects are built with ChatGPT as co-pilot!

Start the Challenge

Podcast: Code Sets You Free

A tech-culture podcast where you learn to fight the enemies that blocks your way to become a successful professional in tech.

Listen the podcast
  • Client Server

  • Back End

Edit on Github

Knowing What is Behind a Back-End Developer

The Back-End Side of the Web

The Back-End Side of the Web

Not so long ago, browsers were very dumb. All they did was render HTML documents in a very early version of HTML. There was no CSS, nor JS. That means that front-end web developers did not exist!

All the work was done by the server: since there was no JavaScript, the DOM could not be updated during the website's runtime. That means that the initial HTML source code that the browser received while loading the website was also going to be the LAST version of it. No DOM modifications.

The Client-Server Architecture

Remember how the Internet works? Every domain points to a single IP address/server, and that server is ready to give back a text answer to any HTTP request that comes from any client.

Think of the server like a "document generator." It can be an image, a video, a text document, JSON, HTML, CSS, etc. The server’s responsibility is to respond with content each time a client requests it.

backend developer

Along with the generated document content, the server can also specify what type of content is responding, allowing the browser to read and interpret the response in an accurate way. The response formats available can be hundreds, but these are the most common:

Server Response Content-Types

Content-TypeDescription
text/plainThis is the default value for text files. Even if it really means an unknown text file, browsers assume they can display it
text/cssAny CSS files that have to be interpreted as such in a web page must be text/css files. Often, servers do not recognize files with the .css suffix as CSS files and instead send them as text/plain.
text/htmlAll HTML content should be served with this type.
image/gif
image/jpeg
image/png
image/svg+xml
Only a handful of image types are widely recognized and considered web safe (ready for use in a web page).
audio/wav
audio/mpeg
For audio files like .wav .mp3
multipart/form-dataThe multipart/form-data type can be used when sending the content of a completed HTML form from the browser to the server.
application/jsonA JSON formatted response.

In addition to the document content and the content-type, the server also appends a response code to the header. There are dozens of response codes, but these are the most popular ones:

Server Response Codes

Response codeDescription
2xx Success200 OK, 201 Created, 204 No Content, 203 Non-Authoritative Information
3xx Redirection301 Moved Permanently, 307 Temporary Redirect, 304 Not Modified
4xx Client Error404 Not Found, 400 Bad Request, 403 Forbidden, 401 Unauthorized
5xx Server Error500 Internal Server Error, 503 Service Unavailable

🔗 Here you can find more detailed information about server response codes.

The Role of the Back-End Language

The cool thing about a back-end language is that it runs on a real machine (not in a browser like the front-end language). With a back-end language, you can do things like:

  • Generate PDFs, Word or Excel documents.
  • Connect to one or several databases at the same time and retrieve/process data.
  • Stream video and audio files.
  • Open/Create/Delete local files from the machine and update them with new content.
  • Compress images, videos or any kind of file.
  • Access any program installed in the local machine and use it for your website (e.g. you can open a zip program and extract a zip file).
  • You can interact with any hardware connected to the main server (like a vending machine, fingerprint reader, Virtual Reality googles, credit card reader, etc.).
  • You can combine any of the operations already mentioned in your own back-end application flow.

So.. what does a Back-End Web Developer do?

As a back-end developer, you will need to write all the code to generate and/or respond to those static and dynamic documents as clients request them.

The back-end web developer code needs to fulfill 4 main requirements:

  • Receive and process client requests: Understand what the client is asking, validate the inputted data (parameters), and reject potential security breaches.
  • Work with the data: Get what you need from the database and update what you need from the database.
  • Develop and execute the logic side of the business needs: Connect with 3rd party apps, external hardware, and any other business needs.
  • Respond to the client: Prepare the response in the proper format and send it back to the client.