Client Server
Back End
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.
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.
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:
Content-Type | Description |
---|---|
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. |
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-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:
Response code | Description |
---|---|
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:
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: