Com certeza, ao navegar na internet, você já viu no começo da URL o protocolo HTTPS. Mas, você sabe para que serve e como funciona esse protocolo?
Primeiramente, antes de falarmos sobre HTTPS precisamos entender o que é o HTTP.
O que é HTTP?
HTTP é uma sigla para Hypertext Transfer Protocol (em português, Protocolo de Transferência de Hipertexto).
Trata-se do principal protocolo de comunicação utilizado para transferência de dados entre computadores utilizados na internet. Essa comunicação entre as máquinas envolvidas ocorre baseada em informações que trafegam como texto.
Para que esse sistema de comunicação em rede baseada em textos seja possível, o HTTP precisa trabalhar em conjunto com o TCP (Transmission Control Protocol), responsável pela transferência das informações; e com o protocolo IP (Internet Protocol), que cuida do encaminhamento dos dados. Juntos, os protocolos TCP e IP formam o modelo TCP/IP, modelo sob o qual o protocolo HTTP é executado.
Curso MySQL - Desenvolvedor
Conhecer o cursoComo o HTTP funciona?
A comunicação realizada pelo HTTP segue o modelo cliente-servidor, baseando-se nos conceitos de request (pedido) e response (resposta). Um request corresponde a um pedido feito ao servidor. Uma mensagem de requisição do cliente é composta pelos seguintes campos de maneira geral:
• Linha de pedido: formada pelo identificador do método HTTP (GET, POST, PUT, DELETE, etc.), URI do recurso (endereço para o qual será enviado o pedido) e versão do protocolo (geralmente, HTTP 1.1 e HTTP 2);
• Cabeçalho: contém meta-informações sobre a requisição, como a identificação do cliente que está fazendo o pedido;
• Corpo: contém os dados da requisição.
Já o response corresponde à resposta que é enviada pelo servidor. Geralmente, ele é composto dos seguintes componentes:
• Linha de status: contém informações como a versão do protocolo utilizado no servidor, código numérico do status da resposta e o texto associado ao status;
• Cabeçalho: é bem similar ao cabeçalho do pedido, ou seja, contém meta-informações e informações adicionais sobre o seu pedido e conteúdo de resposta;
• Corpo: conteúdo de resposta para a requisição realizada (no caso de acesso a um site, seria o HTML para que o browser renderize a página, por exemplo).
De fato, essa comunicação baseada nesse modelo cliente/servidor é extremamente rápida e eficiente. Porém, existe um problema grande: toda essa comunicação que ocorre através do protocolo HTTP é baseada em texto puro, o que é completamente inseguro. E aqui entra o HTTPS.
HTTPS
O HTTPS é uma extensão do protocolo HTTP com a adição de uma camada de segurança na comunicação entre cliente/servidor, fazendo o uso do protocolo SSL (Secure Socket Layer).
Essa camada adicional permite que os dados sejam transmitidos por meio de uma conexão criptografada, além de garantir a verificação da autenticidade do servidor e do cliente por meio de certificados digitais.
Essas técnicas de criptografia servem para proteger os dados trafegados contra ataques de terceiros, minimizando bastante a possibilidade de que outras pessoas consigam ter acesso a informações que são trafegadas.
Por exemplo, quando você está em uma página servida através de HTTPS onde você precisa colocar seus dados (como uma página de login, por exemplo), esses dados são criptografados através de certificados digitais.
Nesse sentido, o fato de que o HTTPS em conjunto com o SSL pode prover aspectos de segurança adicionais faz com que até mesmo sua utilização seja praticamente obrigatória em alguns nichos (em e-commerces, por exemplo, é obrigatório o uso do certificado SSL para que seja possível autorizar compras com o cartão de crédito).
Afinal, o HTTPS realmente garante nossa segurança ao navegar pela web?
Definitivamente, protocolo HTTPS é considerado mais seguro porque ele faz uma criptografia forte dos dados trafegados ente clientes e servidores. Por isso, podemos concluir que o protocolo HTTPS de fato representa segurança. Porém, tal segurança se aplica somente ao âmbito da conexão e da comunicação entre clientes e servidores.
Uma conexão segura não significa necessariamente um site seguro: existem muitos outros tipos de brechas que podem ser exploradas em aplicações web que não envolvem necessariamente aspectos relacionados à conexão.