HTTP, recursos e estado da aplicação

Pedidos e respostas, métodos, sessões, cache, origem e permissões no navegador.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

URL, pedido e resposta

Em https://loja.example:443/sessoes/12?idioma=pt#preco, esquema, host e porta definem a origem. Caminho e query chegam no alvo HTTP; o fragmento fica no cliente. O caminho não tem de ser um ficheiro.

Um pedido contém método, alvo, cabeçalhos e eventualmente corpo. Accept indica representações aceites; Content-Type descreve o corpo enviado. Cabeçalhos e campos do cliente precisam de validação.

Semântica dos métodos

Seguro não pretende alterar estado. Idempotente tem o mesmo efeito pretendido ao repetir, sem exigir respostas iguais.

MétodoSeguroIdempotente
GET, HEADSimSim
PUT, DELETENãoSim
POST, PATCHNãoNão garantido pelo método

DELETE pode responder 204 e depois 404 mantendo o efeito idempotente. GET que apaga conta viola a semântica e pode ser acionado por pré-carregamento ou crawler.

CódigoDecisão
200, 201, 204Sucesso, criação, sucesso sem corpo, respetivamente.
303Consultar outro endereço por GET, indicado em Location.
304Cache validada, sem corpo completo.
400, 422Pedido inválido; 422 pode descrever conteúdo semanticamente inválido.
401, 403Autenticação válida necessária com desafio adequado; operação recusada.
404, 409Ausência ou existência ocultada; conflito de estado.
500Falha interna, sem expor detalhes técnicos.

Sessão e cookies

HTTP não exige memória de interações anteriores. A aplicação pode guardar sessão no servidor e enviar um identificador opaco em cookie.

  • Secure restringe transporte; HttpOnly impede leitura do cookie por JavaScript, mas não ações de XSS com a sessão.
  • SameSite limita certos envios entre sites e complementa proteção CSRF.
  • Path, domínio e expiração delimitam envio, sem conceder autorização.
  • Regenera o identificador após login; termina a sessão no servidor ao sair.

Compra repetida e cache

POST /compras cria; 303 Location: /compras/1043 leva a GET de confirmação. Recarregar faz GET. 303 não elimina duplicados de rede: guarda um identificador de operação único por comprador atomicamente com a compra. Repetição com mesmos dados devolve o resultado; mesmos identificador e dados diferentes dão conflito.

no-store pede ausência de armazenamento. no-cache permite guardar, mas exige validar antes de reutilizar. ETag com If-None-Match permite 304; cache não dispensa permissões.

Origem, CORS e REST

CORS autoriza certas leituras de respostas entre origens no navegador, por vezes após preflight OPTIONS. Não autentica, não limita clientes fora do navegador e não impede por si só CSRF. HTTPS protege transporte.

REST exige, entre outras condições, interface uniforme e pedidos sem contexto de sessão guardado no servidor. Estado dos recursos pode estar na base de dados. Uma aplicação com sessão pode usar HTTP corretamente sem cumprir REST estritamente.

Especifica método, caminho, parâmetros, permissões, códigos, tipo e estrutura do corpo, incluindo falhas. AJAX pode receber HTML ou JSON conforme esse contrato.

Diálogo completo de compra.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.