3 ms·
It gets even more complicated because your server is often a client, too. Modern backend code will usually connect to databases and call REST APIs. The databas
by kijin 8y ago
It gets even more complicated because your server is often a client, too.
Modern backend code will usually connect to databases and call REST APIs. The databases themselves might be part of a cluster. Moreover, the backend code is rarely exposed directly to the public; there's usually a proper http server sitting in front of it, and there might be another load balancer or CDN between the user and your http server. Every connection has a client and a server, and sometimes the same component plays both roles. Remembering which role(s) each component is playing in any given context is very important for security, not to mention debugging.
- aryamaan 8y agoWhy don't people put backend + load balancer servers directly in front of the public? What all use cases are of using web servers?
- therealdrag0 8y agoI'm not sure what OP meant. But for Java, your app runs inside an application server like Tomcat which handles the low level networking for you, I believe this fulfills a similar role as web servers fill for other languages like PHP. Basically these severs provide a separation of concerns and are built to be more scale-able than a naive application listening on a port for requests.