AULA 18
MÓDULO 1
fundamentos web
⏱ 45 min
Cliente Gordo vs Magro
Thin client vs Fat client. SPA vs SSR vs SSG. Quando o frontend é React e o backend é API pura. Implicações para arquitetura do backend.
thin clientfat clientSPACSRSSRSSGNext.js
Thin vs Fat Client
A decisão de onde processar a lógica — no cliente (browser) ou no servidor — é uma das mais fundamentais em arquitetura web. Ela define performance, segurança, manutenibilidade e custo.
🧱 Thin Client (magro)
Lógica toda no servidor
Browser só renderiza HTML
Ex: PHP/LAMP clássico
✓ Simples / seguro
✗ Navegação recarrega página
Browser só renderiza HTML
Ex: PHP/LAMP clássico
✓ Simples / seguro
✗ Navegação recarrega página
💪 Fat Client (gordo)
Lógica no browser (JS)
Servidor fornece só dados (API)
Ex: React, Vue, Angular
✓ Experiência fluida (SPA)
✗ Bundle JS maior / SEO
Servidor fornece só dados (API)
Ex: React, Vue, Angular
✓ Experiência fluida (SPA)
✗ Bundle JS maior / SEO
SPA — Single Page Application
SPA é o modelo fat client moderno. O browser baixa o app JavaScript uma vez; depois, toda navegação é feita com AJAX/fetch — só os dados mudam, não a página inteira.
por que importa para o backend
Se o frontend é um SPA, o backend é pura API REST/JSON. Nenhum HTML gerado no servidor. Isso muda completamente como você escreve o backend Node.js — só endpoints, não templates.SSR vs CSR vs SSG — as 3 estratégias
CSR
Client-Side Rendering. React/Vue. Bundle JS. Ótimo para apps autenticados.
SSR
Server-Side Rendering. Next.js. HTML no servidor. Melhor SEO e performance inicial.
SSG
Static Site Generation. HTML pré-gerado. Ultra rápido. Bom para conteúdo estático.
Quando usar cada abordagem
A escolha não é binária — sistemas modernos combinam as abordagens por rota.
regra prática
Dashboard e área logada → CSR (SPA). Landing page e blog → SSG. E-commerce com SEO → SSR. API pura → REST/GraphQL. Next.js permite misturar tudo isso no mesmo projeto.
javascript
// CSR — React busca dados via API function UserProfile({ userId }) { const [user, setUser] = useState(null) useEffect(() => { // Só dados — sem HTML do servidor fetch(`/api/users/${userId}`) .then(r => r.json()) .then(setUser) }, [userId]) if (!user) return <Skeleton /> return <div>{user.name}</div> } // SSR — Next.js gera HTML no servidor export async function getServerSideProps({ params }) { const user = await fetchUser(params.id) return { props: { user } } }
quiz · aula 18
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
Em um fat client (SPA), o que o servidor backend fornece?
QUESTÃO 02
SSG (Static Site Generation) é mais adequado para...
QUESTÃO 03
Qual é a principal vantagem do SSR para e-commerce?
0/3