Ciclo de vida de uma requisição HTTP
1. O cliente envia a requisição
- Criação da requisição HTTP: o cliente (geralmente um navegador web) cria uma requisição HTTP.
- Método HTTP: GET, POST etc.
- Recurso solicitado: por exemplo,
/index.html.
- Versão do protocolo: HTTP/1.1 etc.
- Cabeçalhos e corpo: inclui cabeçalhos no formato
key: value e um corpo de mensagem opcional.
2. Consulta DNS
- Conversão do nome de domínio: converte um nome de domínio legível por humanos (
www.example.com) em um endereço IP (93.184.216.34).
- Consulta ao servidor DNS: o cliente envia uma consulta ao servidor DNS para converter o nome de domínio em endereço IP.
3. Handshake TCP
- Estabelecimento da conexão TCP: o cliente estabelece uma conexão TCP com o servidor.
- Handshake de 3 etapas:
- SYN: o cliente envia uma solicitação de conexão.
- SYN-ACK: o servidor confirma a solicitação.
- ACK: o cliente envia a resposta de confirmação.
4. Envio da requisição HTTP
- Envio da requisição HTTP: quando a conexão TCP é estabelecida, o cliente envia a requisição HTTP propriamente dita.
5. Roteamento de pacotes pela internet
- Transmissão de pacotes: os pacotes de dados são roteados até o servidor por meio de vários dispositivos de rede.
- Papel do roteador: o roteador determina o melhor caminho para os pacotes.
6. Resposta do servidor
- Criação da resposta HTTP: o servidor processa a requisição HTTP e gera uma resposta.
- Conteúdo da resposta:
- Protocolo: a versão HTTP utilizada.
- Informações de status: código de status HTTP (ex.: 200, 404).
- Cabeçalhos de resposta: semelhantes aos cabeçalhos da requisição.
- Corpo da resposta: o conteúdo solicitado (ex.: página HTML, dados JSON).
7. Renderização do conteúdo
- Processamento da resposta HTTP: o cliente recebe e processa a resposta HTTP.
- Renderização no navegador: o navegador interpreta o HTML e renderiza o conteúdo na tela.
- Solicitação de recursos adicionais: solicita recursos adicionais, como imagens, CSS e JavaScript.
HTTPS = HTTP + criptografia
Handshake TLS
- Handshake TLS: o cliente e o servidor trocam chaves de criptografia e autenticação.
- Comunicação criptografada: após o handshake TLS, cliente e servidor trocam mensagens criptografadas usando HTTP.
Handshake TLS 1.3
- Processo simplificado: o TLS 1.3 oferece menos opções, sendo mais simples, seguro e rápido.
- Etapas principais:
- Client Hello: o cliente envia ao servidor os cipher suites e a versão TLS que suporta.
- Server Hello: o servidor envia ao cliente o cipher suite e a versão TLS escolhidos.
- Validação do certificado: o cliente valida o certificado SSL do servidor.
- Geração do pre-master secret: o cliente gera o pre-master secret e o envia ao servidor.
- Geração da chave de sessão: cliente e servidor geram a chave de sessão.
- Comunicação segura: usam a chave de sessão para se comunicar com criptografia simétrica segura.
Opinião do GN⁺
- Entendimento da comunicação na internet: compreender os conceitos básicos de HTTP e HTTPS ajuda a consolidar bem os fundamentos da comunicação em rede.
- Importância da segurança: é importante aumentar a segurança da transmissão de dados por meio de HTTPS.
- Vantagens do TLS 1.3: recomenda-se usar TLS 1.3, que é mais simples, rápido e seguro.
- Aplicação prática: em projetos reais, é necessário aplicar HTTPS para reforçar a segurança.
- Aprendizado adicional: estudar mais sobre camadas de rede e protocolos pode proporcionar uma compreensão mais profunda.
1 comentários
Comentários do Hacker News