Seja bem vindo a programação Web, nesse artigo de introdução você vai aprender alguns os conceitos básicos da programação para web e algumas técnicas desenvolvidas para facilitar a sua vida no desenvolvimento web. Algumas coisas que você vai ler por aqui provavelmente você já teve contato, porém, nunca se atentou a sua importância. Iremos explorar um pouco do que é o protocolo HTTP, quais são seus métodos principais. Além disso, iremos explorar um pouco da teoria por trás da arquitetura cliente e servidor. Exploraremos ainda algumas ferramentas feitas para desenvolvedores dentro dos navegadores e acompanhar requisições.
Esse artigo faz parte de uma sequência de artigos que eu publiquei sobre esse assunto. Clique aqui para ver mais sobre isso.
Dentro do contexto de introdução a Programação web, não poderiamos falar desse protocolo. O HTTP é uma sigla de HyperText Transfer Protocol que em português significa “Protocolo de Transferência de Hipertexto”. É um protocolo de comunicação entre sistemas de informação que permite a transferência de dados entre redes de computadores, principalmente na World Wide Web (Internet).
O HTTP é o protocolo utilizado para transferência de páginas HTML do computador para a Internet. Por isso, os endereços dos websites (URL) utilizam no início a expressão “http://”, definindo o protocolo usado. Esta informação é necessária para estabelecer a comunicação entre a URL e o servidor Web que armazena os dados, enviando então a página HTML solicitada pelo usuário.
Para que a transferência de dados na Internet seja realizada, o protocolo HTTP necessita estar agregado a outros dois protocolos de rede: TCP (Transmission Control Protocol) e IP (Internet Protocol). Esses dois últimos protocolos formam o modelo TCP/IP, necessário para a conexão entre computadores clientes-servidores.
O protocolo disponibiliza aos usuários alguns métodos que dão uma “dica” ao servidor qual a intenção do usuário com aquela requisição. Na versão 1.1 do HTTP existem 9 verbos disponíveis para serem utilizados. É importante que o desenvolvedor compreenda qual a semântica da utilização destes métodos para que sejam utilizados corretamente.
Os métodos apresentados acima são considerados “comuns” dentro do protocolo, no entanto, o HTTP possui vários outros métodos mais “obscuros” que podem ser utilizados normalmente. Por exemplo:
Você quer saber mais sobre outros métodos? veja esse artigo com uma explicação mais detalhada.
A arquitetura cliente-servidor pode parecer complexa, mas acredite, não é. Essa arquitetura descreve algo que você utiliza diariamente e basicamente define como uma aplicação web deve se comportar. Quando falamos “servidor” queremos nos referir a uma máquina que fornece uma função ou serviço a um ou mais clientes. Ao mesmo tempo, os clientes são aqueles que consomem serviços do servidor. Pense nisso como uma troca de e-mails, você manda dados para um servidor que automaticamente te avisa que seu e-mail foi enviado, a seguir, o destinatário também é avisado que ele possui uma nova mensagem.
Essa arquitetura “cliente-servidor” tornou-se uma das ideias centrais de computação de rede. Muitos aplicativos de negócios, escritos hoje, utilizam essa arquitetura e o termo também tem sido utilizado para distinguir a computação distribuída por computadores dispersos (essa é uma outra história). Cada instância de software do cliente pode enviar requisições a vários servidores. Por sua vez, os servidores podem aceitar esses pedidos, processá-los e retornar as informações solicitadas para o cliente. Embora este conceito possa ser aplicado por uma variedade de razões e para diversos tipos de aplicações, a arquitetura permanece fundamentalmente a mesma.
Após vários modelos estudados de cliente-servidor caracterizou-se chamar tecnicamente de arquitetura multicamada, inspirado nas camadas no Modelo OSI, o processo de dividir a arquitetura de cliente-servidor em várias camadas lógicas facilitando o processo de programação distribuída, existe desde o modelo mais simples de duas camadas, e o mais utilizado atualmente que é o modelo de três camadas que é paralelo ao modelo de arquitetura de software denominado MVC (Model-view-controller). [1]
Agora vamos entender como o cliente faz suas requisições, para isso vamos estipular um “passo-a-passo” que toda requisição segue:
É importante notar que o cliente geralmente possui um número máximo de conexões simultâneas e geralmente esse número tende a ser reduzido. Normalmente, o cliente interage diretamente com os servidores através de seu software aplicação especifico, que lhe possibilita a comunicação com o servidor (o famoso navegador).
Ao mesmo tempo temos também as características de um servidor:
Assim como toda arquitetura, o cliente-servidor possui vantagens e desvantagens. Veja algumas delas:
Para identificar uma requisição feita os navegadores criam uma estrutura de texto chamada de “cabeçalho”. O cabeçalho é enviado em todas as requisições para o servidor para que seja possível receber uma resposta adequada. Veja um exemplo:
Request URL: https://www.globo.com/
Request Method: GET
Status Code: 200
Remote Address: 186.192.81.5:443
Referrer Policy: no-referrer-when-downgrade
Basicamente, um Cookie é um arquivo de texto muito simples, cuja composição depende diretamente do conteúdo do endereço Web visitado. Por exemplo, a maioria do sites armazenam informações básica, como endereços IP e preferências sobre idiomas, cores, etc. Contudo, em portais como o Gmail e o Hotmail, nomes de usuários e senhas de email também fazem parte dos Cookies.
Quando você visita um site pela primeira vez, este envia um Cookie como resposta para o seu navegador, contendo as suas preferências, em formato de texto. Este pequeno arquivo ficará armazenado em seu computador até que perca sua validade.
Enquanto o cookie estiver salvo em seu PC, toda vez que você digitar o endereço do site, o seu navegador irá enviar este arquivo para o site que você está conectado. Desta maneira, as suas configurações serão aplicadas de maneira automática.
Na maioria dos navegadores você encontra uma opção avançada de navegação nos códigos fonte de uma página. Se você utiliza o Google chrome, por exemplo, apenas apertando a tecla F12, uma janela adicional será aberta:
Observe que nessa janela você encontra várias abas. Em cada uma delas existem ferramentas muito legais para visualizar algumas características da página e da requisição feita.
Você pode por exemplo clicar na aba NETWORK você poderá acompanhar todo trafego dentro do seu navegador. Ao clicar em uma das requisições você encontra os cabeçalhos e outras informações interessantes sobre as requisições.
[1] https://pt.wikipedia.org/wiki/Modelo_cliente%E2%80%93servidor
Esse post foi modificado em 16 de junho de 2021 12:02
This website uses cookies.