Pular para conteúdo

Apêndice

Material de referência em que todas as edições do curso se apoiam. O apêndice reúne a base que as aulas e os labs dão por sabida: como uma requisição encontra um servidor, como as chaves a protegem, como uma API é desenhada e versionada, e as ferramentas que constroem e entregam o código. Leia uma página quando uma aula ou um lab a pressupuser. Cada página se sustenta sozinha, tem simuladores interativos onde um conceito é mais fácil de ver do que de ler e termina com seus pontos-chave.

Uma requisição, de ponta a ponta

Quase todo o apêndice cabe no caminho de uma única requisição, do navegador até um microsserviço, e do código que a atende. Aperte play e acompanhe:

sequenceDiagram
    participant B as Navegador
    participant D as Resolvedor DNS
    participant N as Roteador / NAT
    participant S as Microsserviço
    B->>D: 1 · api.example.com?
    D-->>B: 203.0.113.10 (em cache pelo TTL)
    B->>N: 2 · handshake TCP com 203.0.113.10:443
    N->>S: repassado a um endereço privado, 10.0.1.5:8080
    S-->>B: 3 · TLS: um certificado assinado com RSA ou Ed25519
    B->>S: 4 · GET /v2/orders (REST) ou POST /graphql
    S-->>B: 200 OK + JSON
  1. O DNS transforma o nome em um endereço IP, guardado em cache por um TTL: DNS.
  2. O TCP abre uma conexão com uma porta. Os pacotes atravessam roteadores públicos e chegam a uma rede privada por meio do NAT: portas, TCP e UDP e endereçamento e NAT.
  3. O TLS prova a identidade do servidor com assinaturas de chave pública e combina uma chave simétrica: RSA e Ed25519.
  4. A API responde no estilo e na versão que o cliente pediu: REST vs GraphQL e versionamento de APIs REST.

O código por trás do serviço foi construído em um ambiente de desenvolvimento, versionado com Git (às vezes entre submódulos) e entregue por um pipeline do GitHub Actions.

Seções

Além do curso: leituras complementares, uma lista curta de artigos, RFCs e projetos que vale conhecer.

Como usar os simuladores

Todos os simuladores têm os mesmos controles. Play roda, → avança um passo, recomeçar volta ao início e 1× muda a velocidade; com o simulador em foco, a barra de espaço reproduz e as setas avançam. A caixa Experimente abaixo de cada simulador propõe um experimento curto, com os números que você deve ver.