Server Components render on the server, can access backend resources directly, and don’t ship their code to the browser; they can’t use React client hooks. Client Components are marked with 'use client', run in the browser, support hooks/state and interactivity, but add to the JS bundle.
Expanding on the short answer — what usually matters in practice:
A tiny example (an explanation template):
// Example: discuss trade-offs for "server-components-vs-client-components-in-next.j"
function explain() {
// Start from the core idea:
// Server Components are the default; they run on the server, can access the DB directly, and
}