O esquema escolhe a porta
Lição 39 de 47 do curso Redes com o Terminal da Coddy.
http:// e https:// diferem em mais do que uma letra. O esquema decide duas coisas: qual porta padrão usar, 80 ou 443, e se deve iniciar um handshake TLS antes de enviar qualquer coisa.
Esse handshake é a primeira coisa que acontece, antes de qualquer linha de requisição ser escrita. Ambos os lados concordam sobre a criptografia, e o servidor apresenta seu certificado. Só então o HTTP que você conhece é enviado, dentro do canal criptografado.
Portanto, uma porta fala TLS ou não fala. Solicite https:// a partir de uma porta HTTP simples, e não haverá um fallback educado: o handshake falha imediatamente, e o curl relata o código de saída 35, um erro de conexão SSL.
Vale a pena reconhecer isso, porque parece que o servidor está fora do ar quando, na verdade, ele está servindo HTTP simples tranquilamente em outro esquema.
Desafio
DifícilPeça TLS a um servidor HTTP simples e observe-o recusar.
- Sirva uma pasta na porta 9129 da maneira usual, que usa HTTP simples
- Faça uma solicitação para
https://127.0.0.1:9129/e imprimatls=seguido pelo código de saída do curl
Saída esperada:
tls=3535 é o código do curl para um erro de conexão SSL.
Experimente você mesmo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Redes com o Terminal
2Nomes e DNS
Por que os nomes existemO arquivo hostsConsultando um nomeTipos de registrosRecapitulação: nomes5HTTP na Prática
Anatomia de uma RequisiçãoMétodos de RequisiçãoCódigos de StatusCabeçalhos de RespostaEscrevendo uma RespostaRecapitulação: Fundamentos de HTTP8HTTPS e TLS
Por que HTTPSO esquema escolhe a portaCertificados e confiançaQuando o TLS falhaRecapitulação: HTTPS3Portas e Sockets
O que é uma portaPortas conhecidasLocalhostEscutando vs. conectandoRecapitulação: portas6curl em Detalhes
Visualizando os CabeçalhosSalvando RespostasCabeçalhos PersonalizadosStatus e TempoCódigos de Saída do curlRecapitulação: Opções do curl9Autenticação e Depuração
Chaves de API e BearerO User AgentTimeouts e Novas TentativasLendo uma FalhaRevisão: DepuraçãoPratique por conta própria: Playground de Terminal