Performance is determined by the location of the server, the number of trips / HTTP request, size of the files are all important factors.
CDN content delivery network
AJAX allows you to fetch information while the user is still browsing the website get information back from the server as JSON and update website in real time.
HTTP is a language that both front end and backend speak and use to communicate with each other.
Backend developer is in charge of working with servers and databases.server determines what you get in the browser.
A server is a powerful computer that is somewhere in the world listening for requests via a HTTP connection.
The most basic of servers uses something called a LAMP STACK e.g. Hostgator. Consists of an APACHE server running a Linux os that uses PHP to interact with a MySQL database and is attached to a file system.
Can serve up a simple informational website like a Wordpress website where nothing complex is happening. Uses a Linux-based server which is the operating system. Apache server is a program that is good at accepting requests and sending out responses of files. The LAMP STACK uses a MySQL database. Say for example you had a blog site and you want to store comments on each post. PHP is a language used to have some logic in your servers. Server also has a filesystem where all the files of the server are stored.
You are probably wondering, if a server is just a computer, is my computer a server? Without having a server software, our computer is unreachable so nobody over the interwebs can access our computer
You could just download APACHE server and run your own server from your computer. On your computer you can create fake servers to test our websites. This was the old way of doing things. There wasn’t much logic to it and not expandable. Couldn’t have a website like facebook or amazon hosted on this type of server.
A new stack i.e. an Application Server looks something like this.
Can you believe that there is even more that a backend server infrastructure can do? The infrastructure at a large organization would look more like this
This may look complex, but in summary, you are essentially making copies of your computer( each application server is a computer). Since these orgs had a massive user base copies are distributed to different offsite locations (example one in US, one in Asia, one in Europe, one in Africa). So that folks from around the world can access the website but go through different servers, hence splitting/balancing the load. Load balancing is taken care of by something like Apache or Engine X. The load balancer determines where to send each request depending on how busy each server is at that moment.
All copies use the same DB so that if someone in Africa updates their information, users in Europe will have access to that updated information. You can continue to scale as you gain more users by adding more servers or more databases(where each database contains a copy of all others).
In summary, the task of a backend developer is to ensure that when a user makes an HTTP request from the frontend we get a response back as fast as possible with correct data. So that our frontend team can be confident that they will get exactly what they need when they need it.