O que significa lado do cliente e lado do servidor? | Lado do cliente X lado do servidor

O lado do cliente e o lado do servidor descrevem onde o código do aplicativo web é executado.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Entender o modelo cliente-servidor
  • Saber sobre os tipos de processos que ocorrem nos clientes e servidores
  • Explorar como clientes e servidores se relacionam com o front-end e o back-end do aplicativo
  • Descobrir como o uso de uma arquitetura sem servidor afeta os processos do lado do servidor

Copiar o link do artigo

O que é lado cliente e lado servidor?

Lado do cliente e lado do servidor são termos de desenvolvimento da web que descrevem onde o código do aplicativo é executado. Os desenvolvedores da web também se referem a essa distinção como front-end X back-end, embora lado do cliente/lado do servidor e front-end/back-end não sejam exatamente os mesmos. Em uma arquitetura sem servidor, o fornecedor sem servidor hospeda e atribui recursos a todos os processos do lado do servidor e os processos aumentam conforme aumenta o uso do aplicativo.

O que é o modelo cliente-servidor?

Grande parte da internet é baseada no modelo cliente-servidor. Nesse modelo, os dispositivos do usuário se comunicam por meio de uma rede com servidores localizados centralmente para obter os dados de que precisam, em vez de se comunicarem entre si. Dispositivos de usuários finais, como notebooks, smartphones e computadores desktop, são considerados "clientes" dos servidores, como se fossem clientes obtendo serviços de uma empresa. Os dispositivos clientes enviam solicitações de páginas web ou aplicativos aos servidores e os servidores fornecem respostas.

O modelo cliente-servidor é usado porque os servidores são normalmente mais poderosos e confiáveis do que os dispositivos dos usuários. Eles também são constantemente guardados e mantidos em ambientes controlados para garantir que estejam sempre ligados e disponíveis; embora servidores individuais possam ficar inativos, geralmente há outros servidores servindo de apoio para deles. Enquanto isso, os usuários podem ligar e desligar seus dispositivos, ou perdê-los ou quebrá-los e isso não deve afetar o serviço de internet para outros usuários.

Os servidores podem servir a vários dispositivos clientes ao mesmo tempo e cada dispositivo cliente envia solicitações a vários servidores durante o acesso e a navegação na internet.

Vários clientes e servidores interagem:

relacionamento muitos para muitos dentro do modelo cliente-servidor

Cada cliente se comunicará com vários servidores e vice-versa.

Suponha que um usuário esteja navegando na internet e digite "netflix.com" na barra do navegador. Isso resulta em uma solicitação para os servidores DNS para o endereço de IP da netflix.com e os servidores DNS respondem a essa solicitação enviando o endereço de IP para o navegador. Em seguida, o navegador do usuário faz uma solicitação aos servidores da Netflix (usando o endereço de IP) para o conteúdo que aparece na página, como as imagens em miniatura do filme, o logotipo da Netflix e a barra de pesquisa. Os servidores da Netflix entregam isso ao navegador e o navegador carrega a página no dispositivo cliente.

O que significa lado do cliente?

No desenvolvimento da web, "lado do cliente" refere-se a tudo em um aplicativo web que é exibido ou ocorre no cliente (dispositivo do usuário final). Isso inclui o que o usuário vê, como texto, imagens e o resto da IU, junto com quaisquer ações que um aplicativo execute no navegador do usuário.

Linguagens de marcação como HTML e CSS são interpretadas pelo navegador no lado do cliente. Além disso, muitos desenvolvedores contemporâneos estão incluindo processos do lado do cliente em sua arquitetura de aplicativos e deixando de fazer tudo no lado do servidor; a lógica de negócios para páginas web dinâmicas*, por exemplo, geralmente é executada no lado do cliente em um aplicativo web moderno. Os processos do lado do cliente quase sempre são escritos em JavaScript.

No exemplo da netflix.com acima, o HTML, CSS e JavaScript que ditam como a página principal da Netflix aparece para o usuário são interpretados pelo navegador no lado do cliente. A página também pode responder a "eventos": por exemplo, se o mouse do usuário passar sobre uma das imagens em miniatura do filme, a imagem se expande e as miniaturas adjacentes se movem ligeiramente para um lado para abrir espaço para a imagem maior. Este é um exemplo de processo do lado do cliente; o código dentro da própria página web responde ao mouse do usuário e inicia essa ação sem se comunicar com o servidor.

O lado do cliente também é conhecido como front-end, embora esses dois termos não signifiquem exatamente a mesma coisa. O lado do cliente se refere apenas ao local onde os processos são executados, enquanto o front-end se refere aos tipos de processos que são executados no lado do cliente.

*Uma página web dinâmica é aquela que não exibe o mesmo conteúdo para todos os usuários e muda com base na entrada do usuário. A página inicial do Facebook é uma página dinâmica; a página de login do Facebook é, em sua maior parte, estática.

O que significa lado do servidor?

Muito parecido com o lado do cliente, o "lado do servidor" significa tudo o que acontece no servidor, em vez de no cliente. No passado, quase toda a lógica de negócios era executada no lado do servidor e isso incluía renderizar páginas da web dinâmicas, interagir com bancos de dados, autenticação de identidade e notificações push.

O problema de hospedar todos esses processos no lado do servidor é que cada solicitação envolvendo um deles tem que viajar desde o cliente até o servidor, todas as vezes. Isso apresenta uma grande quantidade de latência. Por esse motivo, os aplicativos contemporâneos executam mais códigos no lado do cliente; um caso de uso é renderizar páginas da web dinâmicas em tempo real, executando scripts no navegador que fazem alterações no conteúdo que o usuário vê.

Como com "front-end" e "lado do cliente", back-end também é um termo para os processos que ocorrem no servidor, embora back-end se refira apenas aos tipos de processos e lado do servidor se refira ao local onde os processos são executados.

O que é script do lado do cliente? O que é script do lado do servidor?

O script do lado do cliente significa simplesmente executar scripts, como JavaScript, no dispositivo do cliente, geralmente em um navegador. Todos os tipos de scripts podem ser executados no lado do cliente se forem escritos em JavaScript, porque o JavaScript é universalmente suportado. Outras linguagens de script só podem ser usadas se o navegador do usuário for compatível com elas.

Os scripts do lado do servidor são executados no servidor em vez de no cliente, geralmente para entregar conteúdo dinâmico a páginas web em resposta às ações dos usuários. Os scripts do lado do servidor não precisam ser escritos em JavaScript, uma vez que o servidor é compatível com várias linguagens.

Os scripts são executados no lado do cliente e no lado do servidor:

Scripts do lado do cliente e scripts do lado do servidor

Os dados passam de um lado para outro entre o cliente e o servidor e os scripts podem ser executados em ambos os lados.

Como os processos do lado do servidor funcionam em uma arquitetura sem servidor?

Na computação sem servidor, todos os processos do lado do servidor ou back-end ainda são executados em servidores em vez de dispositivos clientes, mas não são implantados em nenhum servidor específico ou conjunto de servidores. Os processos de back-end são divididos em funções, que são executadas sob demanda e aumentam automaticamente. Os desenvolvedores ainda podem construir todas as funcionalidades que normalmente são executadas no lado do servidor em uma arquitetura sem servidor.

O Cloudflare Workers é executado no lado do servidor ou no lado do cliente?

O Cloudflare Workers são funções JavaScript sem servidor que são executadas sob demanda e na Rede de borda que a Cloudflare usa para armazenamento da CDN em cache, entre o cliente e o servidor de origem. Isso permite que os desenvolvedores criem back-ends sem servidor que, embora tecnicamente do lado do servidor, estejam localizados o mais próximo possível do dispositivo cliente, o que reduz a latência e faz com que os aplicativos respondam mais rapidamente às interações dos usuários.

Para começar a usar o Cloudflare Workers, confira nossa Documentação para desenvolvedores.