Quando um usuário acessa um website envolve o processo de uma solicitação HTTP pelo cliente-servidor. Essa resposta HTTP que é enviada de volta ao cliente são mensagens baseadas em texto, que significa que as mensagens trocadas entre o cliente (geralmente navegador web) e servidor são escritas em textos simples e não codificadas de forma binária ou de alguma outra forma não legível para o ser humano.
Esse protocolo é a base da comunicação de dados e age em conjunto com outros dois protocolos de redes, o TCP e IP. Então, quando o cliente (navegador) quer se comunicar com o servidor é aberta uma conexão TCP/IP e a requisição é enviada para o servidor.
Dinâmica cliente-servidor
Cliente é o dispositivo como um computador ou tablet que solicita os recursos, como da página web para um Servidor é o computador remoto que hospeda esses recursos e os fornece quando solicitados pelos clientes.
O cliente inicia a interação enviando uma solicitação (request) HTTP para o servidor. Esta solicitação geralmente contém informações sobre o recurso desejado, como o URL da página da web, parâmetros de consulta (se houver) e quaisquer cabeçalhos necessários para a comunicação, como informações de autenticação.
Após isso, o servidor recebe a solicitação e faz o processamento do cliente. Nessa etapa que é determinado o recurso solicitado e várias etapas de desenvolvimento, autenticação, cálculos, scripts e consultas em bancos de dados para gerar o conteúdo dinâmico.
O servidor então, após processar a requisição enviada pelo cliente devolve uma resposta (response) **HTTP, nessa resposta tem as informações sobre os recursos solicitado e informações adicionais do status dessa requisição, cabeçalhos de respostas ou corpo da mensagem.
Natureza Stateless
Existem algumas características e soluções para atender diferentes necessidades e funcionamento desse protocolo na web. Essas características agem em conjunto e faz com que o protocolo funcione com maior eficiência.
Quando dizemos que o HTTP é stateless (sem estado) significa que o protocolo não mantém o mesmo estado entre diferentes solicitações cliente-servidor. Permite então, que o protocolo seja simples e eficiente, tratando cada requisição com independência. Essa independência faz com que cada transação seja tratada separadamente sem interferir outras, gerando uma ausência de conhecimento sobre requisições anteriores, evitando a necessidade de manter informações do contexto ou histórico, com isso temos redução no uso de memória no servidor especialmente em ambientes com grande volume de tráfego e clientes simultâneos. Além disso, a natureza stateless elimina problemas de sessões expiradas, já que não tem uma sessão ativa no servidor.
O conjunto dessas características foram projetadas para simplificar a comunicação entre cliente-servidor e melhorar a eficiência do protocolo, garantindo uma melhor experiência, mais rápida, consistente e confiável na web.
Top comments (0)