React Server Components split rendering between server and client. Server Components run only on the server, ship zero JavaScript to the browser, and can access backend resources directly. Client Components handle interactivity.
Server Components are React components that execute exclusively on the server. They can use async/await, access databases and file systems directly, and their code never reaches the browser bundle.
Client Components are marked with 'use client' at the top of their file. They run in the browser (and optionally on the server for SSR) and can use hooks like useState, useEffect, and event handlers.
The RSC protocol serializes the server render output into a streaming payload: HTML chunks for server-rendered content, client references for 'use client' components, and serialized props at the boundary between server and client.
Interview framing: define Server Components in one sentence, then explain one concrete runtime behavior and one common pitfall with a short code example.