Article image
Camila Freitas
Camila Freitas16/09/2023 08:49
Compartilhe

EU TENHO UMA DÚVIDA!

    Pessoal, pode parecer bem besta para vocês, mas é algo que já procurei no google várias vezes e de várias maneiras, mas não consegui uma resposta direta

    Partindo do ponto de vista de que se eu criar uma página HTML e quero fazer requisições para meu servidor com a finalidade ,por exemplo, de fazer login como eu crio esse servidor onde ficaram armazenadas as informações do meu site?

    Compartilhe
    Comentários (10)

    MF

    Matheus Filgueiras - 16/09/2023 09:14

    Vamos lá, primeirro, não existe dúvida ou pergunta besta, dúvida é dúvida.


    Do ponto de vista de estudos, é entender a relação Cliente x Servidor.


    Um Servidor é um "computador" que estará sempre ligado a internet atendendo as requisições que os navegadores (chrome, firefox, edge, safari, etc) na web solicitarem.


    1. Para a criação de servidores, não usamos HTML (html é uma linguagem que define apenas a estrutura de uma página web), e sim nós usamos linguagens como java, node.js, python, php e outras.
    2. Para o armazenamento dessas informações, elas não vão ficar no seu site, e sim num banco de dados (mysql, postgresql, mongodb e outros).
    3. Tendo escolhido em qual linguagem você irá construir o seu servidor e qual banco de dados irá utilizar vem a parte lógica da aplicação. Nesta etapa este código será responsável por receber as solicitações de login, verificar as credenciais do usuário no banco de dados e responder ao navegador autorizando a autenticação ou não.
    4. A partir daí, vamos para a API (API é o que permite que diferentes softwares/tecnologias se comuniquem entre si através de regras e protocolos estabelecidos). Neste teu contexto, é a API que será responsável por receber a solicitação (sua página HTML) de login, processar essas informações (lógica do seu servidor com o banco de dados) e responder ao cliente (sua página HTML).
    • Esta API será construída na sua pagina HTML utilizando JavaScript, o JS que será responsável pelo código que fará as requisições para a API do seu servidor.


    Espero que essa sequência te ajude a ter maior entendimento sobre o assunto.

    Se continuar com dúvidas, só falar.


    Camila Freitas
    Camila Freitas - 16/09/2023 09:12

    Lucas, mesmo pensando em um site acessado por milhares de pessoas como o da dio?

    LK

    Leandro Kober - 16/09/2023 09:37

    Bom dia Camila. Os dados para validação do seu login precisam estar em um banco de dados.

    O ideal é criar um DTO (Data Transfer Object) para que os dados da classe modelo não sejam expostos (encapsulamento) durante o processo de validação.

    Marcio Santos
    Marcio Santos - 16/09/2023 11:09

    Olá Camila,

    Do ponto de vista HTML, basicamente será apenas a pagina, a aparência. A parte de validar login para ter acesso a outras partes de um sistema, ou de um site, já será com métodos que utilizam alguma linguagem de programação, geralmente rodando no back-end. O servidor é quem vai gerenciar as solicitações e normalmente eles ja estão prontos, vc só precisa baixar e configurar eles para gerenciarem suas paginas.

    Gabriel Gonçalves
    Gabriel Gonçalves - 16/09/2023 11:12

    Nesse exemplo de fazer login, creio que o ideal seria criar um banco de dados no servidor, onde ficaria guardada as informações do usuario e do login.

    Imagina que ao fazer o login, o email e senha inserido pelo usuário será enviado para o backend para ser tratado e fazer a busca no banco de dados sobre aquele usuario.

    Para criar o servidor, recomendo usar o Apache, mais fácil para subir o site, depois só configurar os endpoints e o banco de dados.

    Vitor Oliveira
    Vitor Oliveira - 16/09/2023 11:34

    Oi Camila, é complexo entender no começo esse ambiente "fullstack" e como o backend da aplicação conversa com o frontend. Mas é algo parecido com isso: Ao preencher os campos de login (usuario e senha), esses dados são enviados por meio de uma requisição para o backend que então cuida de enviar os dados para um outro servidor que cuida do banco de dados (uma estrutura permanente de dados em forma de tabelas ou não). É preciso ter a noção de que servidor é apenas um computador que presta um serviço, portanto o banco de dados normalmente é executado como um servidor que também recebe requisições e envia respostas. O protocolo de comunicação usado na web é o http (ou https em sua versão mais segura). Entao o usuario e senha digitados no frontend vão por meio de uma requisição http para o servidor (pesquise sobre endpoints da aplicação depois). O servidor recebe esses dados, manipula e armazena fazendo uma requisição para um outro servidor de banco de dados ou talvez o banco de dados esteja integrado no próprio servidor. Exemplo: um site em html, css e js usando a biblioteca React, que envia (usando o axios por exemplo) um objeto do tipo {username:'Vitor',senha:'banana123'} para o backend que recebe esses dados com o express (biblioteca que cria um servidor e escuta alguma porta) e trabalha com eles. Você pode criar um servidor em node (javascript para servidor) puro ou usar bibliotecas como o express que facilita o trabalho. Aprender sobre redes de computadores, protocolo http, servidores pode ajudar a entender mais conceitualmente tudo isso. Boa sorte!

    Thiago
    Thiago - 16/09/2023 18:15

    Boa tarde Camila,

    Partindo do ponto onde nossos colegas comentaram, e em relação ao seu questionamento sobre um site acessado por talvez milhares de pessoas, cabe salientar que a aplicação cliente interage com vários tipos de servidores, cada um com uma função, por exemplo.

    Entre a aplicação cliente e o servidor onde está o recurso, existe:

    • Servidor de DNS, que traduz o endereço ip para o nome do domínio.
    • Load Balancer, que levanta mais instâncias do back-end se for necessário para atender um aumento no número de requisições.
    • Discovery Server, por exemplo Netflix Eureka, onde se registram as aplicações, no caso microsserviço, que precisam interagir entre si.
    • Authentication Server, por exemplo OAuth2 , quando se implementa autenticação com JWT token, precisa levantar um servidor de autenticação que recebe e trata requisições que necessitam de autorização, e que não é o mesmo servidor onde se encontra o recurso que se busca.

    Normalmente essa estrutura vai ficar hospedada em algum serviço de nuvem, como por exemplo o S3 que é um serviço de storage da AWS, aonde vai ficar a instância do seu banco de dados.


    Espero ter contribuído, fica na paz.

    Paulo Tuppy
    Paulo Tuppy - 16/09/2023 10:37

    Geralmente, isso envolve o uso de um banco de dados. Você pode escolher um banco de dados SQL (por exemplo, MySQL, PostgreSQL) ou NoSQL (por exemplo, MongoDB, Firebase) com base nas necessidades do seu aplicativo.

    Camila Freitas
    Camila Freitas - 16/09/2023 09:20

    Matheus, nesse caso seria necessário criar uma API e conecta-la a um banco de dados, correto?

    LF

    Lucas Ferreira - 16/09/2023 09:02

    No cache, geralmente essas requisições ficam armazenadas no cache. É uma memória que existe em aplicações e o próprio browser tem também. Inclusive facilita quando você vai fazer a mesma requisição de novo, porque ao invés de buscar no banco de dados, a requisição já vai estar mais perto da porta de serviço. Se não me engano é isso, espero ter respondido sua pergunta!! E as informações do site ficam no hardware mesmo...