What is the fundamental difference between client-side and server-side routing?

You know server routing fetches HTML pages, while client routing runs in the browser.
Server routes return full documents and reload; client routes swap JS views and use the History API without server requests.
WHAT THIS TESTS: This question checks whether you understand the architectural boundary between the server and the browser in modern web applications. Interviewers want to see that you recognize the web began as static documents delivered by servers, and that client-side frameworks shifted much of that responsibility into the browser. It is not enough to name the technologies; you must explain who owns the navigation lifecycle and the document.
A GOOD ANSWER COVERS: A strong response hits four things in order. First, it defines server-side routing as a model where every URL change sends an HTTP request to the server, which responds with a complete new HTML document and triggers a full page reload. Second, it defines client-side routing as a model where the browser intercepts navigation, dynamically swaps rendered components using JavaScript, and updates the visible URL via the History API without requesting a new document from the server. Third, it notes that frameworks provide opinions and structure for this behavior, bringing predictability and maintainability to an otherwise complex client-driven architecture. Fourth, it mentions the trade-offs, such as the need for a server fallback to handle initial page loads or deep links correctly.
COMMON WRONG ANSWERS: Red flags include describing the difference as only speed or claiming that client-side routing eliminates the server entirely. Another weak pattern is saying that React Router changes the URL in the address bar but failing to explain that the browser does not fetch a new HTML document. Some candidates also confuse routing with rendering and talk about virtual DOM diffing instead of navigation ownership.
LIKELY FOLLOW-UPS: An interviewer might ask how to handle deep linking or direct URL access in a client-side routed application, which requires server configuration to serve the same bootstrap HTML for all routes. They may also ask about the History API and how pushState or replaceState enable URL changes without reloads. Another common follow-up is the impact on accessibility and how to announce route changes to screen readers.
ONE CONCRETE EXAMPLE: Imagine a user clicking a navigation link in a React application. With client-side routing, React Router prevents the default browser request, renders the new component tree, and calls history.pushState to update the URL to slash products. The server is never contacted for a document; only subsequent API calls for data might hit the network. In a server-side routing model, that same click would request slash products from the server, which would return a wholly new HTML page and the browser would tear down and rebuild the entire document context.
Source: developer.mozilla.org
Read the original → developer.mozilla.org
Get five bites like this every day.
Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.