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!
be updated during the website 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.
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 about 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.
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 this are the most common:
|text/plain||This is the default value for text files. Even if it really means an unknown text file, browsers assume they can display it|
|text/css||Any 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/html||All HTML content should be served with this type.|
|Only a handful of image types are widely recognized and are considered web safe (ready for use in a web page).|
|For audio files .wav .mp3|
|multipart/form-data||The multipart/form-data type can be used when sending the content of a completed HTML form from the browser to the server.|
|application/json||A 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:
|2xx Success||200 OK, 201 Created, 204 No Content, 203 Non-Authoritative Information|
|3xx Redirection||301 Moved Permanently, 307 Temporary Redirect, 304 Not Modified|
|4xx Client Error||404 Not Found, 400 Bad Request, 403 Forbidden, 401 Unauthorized|
|5xx Server Error||500 Internal Server Error, 503 Service Unavailable|
🔗 Here you can find more detailed information about server response codes.
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 PDF’s, 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 the 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.
As a back-end developer, you will need to write all the code to generate and/or to respond to those static and dynamic documents as clients request them.
The back-end web developer code needs to fulfill 4 main requirements: