AULA 20 MÓDULO 1 fundamentos web ⏱ 50 min

HTTP: o Protocolo da Web

Anatomia de request e response HTTP. Headers essenciais. HTTPS. Evolução do protocolo. Tudo que acontece nos bastidores de cada requisição.

HTTPHTTPSrequestresponseheadersContent-TypeAuthorization

HTTP — o protocolo da web

HTTP (HyperText Transfer Protocol) é o protocolo de comunicação entre cliente e servidor na web. Todo o tráfego web que você vê — APIs JSON, páginas HTML, upload de imagens — é HTTP (ou HTTPS, sua versão criptografada).

📬
analogia — carta
HTTP é como trocar cartas: o cliente envia uma carta (request) com endereço, assunto e conteúdo. O servidor lê e responde com outra carta (response). Sem conexão persistente por padrão.
REQUEST
Método: GET
URL: /users/42
Headers: Accept, Auth...
Body: (payload JSON)
RESPONSE
Status: 200 OK
Headers: Content-Type...
Body: {"id":42,...}

Headers importantes

Headers são metadados da requisição/resposta. Eles controlam caching, autenticação, tipo de conteúdo, CORS e muito mais.

REQUEST HEADERS
Authorization
Bearer token, Basic, API Key
Content-Type
application/json, multipart/form-data
Accept
Tipo esperado na resposta
Origin
De onde veio a requisição (CORS)
RESPONSE HEADERS
Content-Type
Tipo do body da resposta
Cache-Control
Por quanto tempo cachear
Set-Cookie
Define cookies no browser
Access-Control-Allow-Origin
Controle CORS

HTTP/1.1, HTTP/2, HTTP/3

O protocolo evoluiu muito. HTTP/2 multiplexou conexões. HTTP/3 trocou TCP por UDP (QUIC).

🚀
o que você precisa saber
Na prática: use HTTPS sempre. Servidores modernos fazem HTTP/2 automaticamente. Para WebSockets, é HTTP/1.1 com Upgrade. Para streaming, use HTTP/2 ou SSE.
javascript
// Inspecionar request e response em Express
const express = require('express')
const app = express()
app.use(express.json())

app.post('/echo', (req, res) => {
  // Inspecionar a requisição
  console.log('Método:',  req.method)      // POST
  console.log('URL:',     req.url)         // /echo
  console.log('Headers:', req.headers)    // { content-type:...}
  console.log('Body:',    req.body)       // { nome: "Fulano" }

  // Construir a resposta
  res
    .status(200)
    .set('X-Custom-Header', 'aula-20')
    .json({
      message: 'Recebido!',
      dados: req.body
    })
})
quiz · aula 20
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
O que são Headers HTTP?
QUESTÃO 02
Qual header indica que o body da requisição é JSON?
QUESTÃO 03
HTTPS é diferente de HTTP porque...
0/3