terça-feira, 9 de abril de 2024

As principais etapas de uma requisição web

Tudo começa com você...
Você precisa procurar algo por exemplo no "Google", então vai para o computador, digita no browser/navegador: www.google.com, o site abre e segue-se dali. Simples, não?!

Nem tanto!

Vamos entender agora o que acontece durante esse processo que é chamado de requisição web.

Basicamente, requisição web é:

  • Espera da URL e Redirecionamento;
  • Cache;
  • DNS;
  • Requisição;
  • Resposta;
  • Processamento;
  • Carregamento da Página.

Vamos entender graficamente como tudo isso funciona e depois vamos para teoria:

conteúdo hotspot

  1. O usuário clica em um link ou digita algo no navegador de um computador conectado a internet.
  2. O browser (navegador) formata a solicitação garantindo que verificou se não existe um protocolo seguro a disposição, nem uma cópia do site já disponível no cache.
  3. Através de loteamentos pela rede mundial de computadores o servidor encontra a página solicitada!
  4. O browser pega primeiro os pacotes de HTML, depois CSS e por fim JS e compila em formato visual para o usuário.
  5. O servidor formata a resposta e envia para o browser.
  6. O código escrito em HTML, CSS, JS e qualquer outra linguagem fica disponível para compor uma resposta feita pelo usuário.

Espera da URL e Redirecionamento
Antes de mais nada, temos que entender uma coisa importantíssima. Você sabe o que é URI? E URL?

Vamos entender a diferença:

  • URI – Uniform Resource Identifier.
  • URL – Uniform Resource Locator.

Evidentemente a URI é o identificador, ou seja, o destino (página) ao qual você quer ir na internet. É o texto que você digitou na barra de busca do navegador:

skillsbuild.org

Todavia, a URL é mais complexa. Ela tenta localizar o endereço que você digitou e encaminha o destino para os próximos passos da requisição.

Portanto, URI precisa da URL por causa do protocolo, pois é por meio do protocolo que o navegador consegue dar prosseguimento à conexão com o destino do endereço.

protocolo://skillsbuild.org

Assim, quando nós digitamos apenas o endereço do site, automaticamente o navegador atribui o HTTP (Hypertext Transfer Protocol) como protocolo padrão para fazer a conexão.

Contudo, antes disso, o navegador verifica se existe um metadado chamado HTTP Strict Transport Security ou HSTS. Isto quer dizer que o navegador permite que o site seja exibido de uma forma mais segura, caso tenha o protocolo HTTPS (Hypertext Transfer Protocol Secure).

{esse é o caso, por exemplo, da plataforma do SkillsBuild. Repare que se você clicar na URL no navegador, ela aparece com https na frente}

Desse modo, o navegador sempre dará preferência para acessar um endereço com protocolo HTTPS, caso a página o tenha, pois garante mais segurança à conexão. Depois que o navegador tem um endereço válido e um protocolo, ele precisa chegar até onde está a página. Para isso, ele tem que requisitar as informações da página diretamente no local em que ela está hospedada (servidor).

Mas, CALMA, essas já são cenas dos próximos capítulos....

Resumindo, toda a requisição começa com a inserção do endereço que você digita ou clica em algum lugar do navegador.

Depois, ele começa o trabalho que é reconhecer se aquele endereço (URI) que você deu é válido, se existe, onde ele está (URL), através do protocolo.

Cache
Agora, imagine que você já acessou aquele site, seria muito legal se o navegador lembrasse da última resposta e pudesse usá-la imediatamente. A performance de websites e aplicações podem ser melhoradas significativamente ao reusar recursos previamente buscados.

Formalmente, damos o nome de Caches. Eles reduzem latência e o tráfego de rede e assim diminuem o tempo necessário para exibir uma representação do recurso. Ao usar caching em HTTP, websites se tornam mais responsivos.

Caching é uma técnica que guarda uma cópia de dado recurso e mostra de volta quando requisitado. Quando um web cache tem um recurso requerido em seu armazenamento, ele intercepta a solicitação e retorna sua cópia ao invés de fazer o download novamente do servidor original.

Isto alcança vários objetivos:

⟶ facilita o balanceamento do servidor que não precisa servir todos os clients sozinho;

⟶ melhora a performance por estar próximo do client,  por exemplo, ele leva menos tempo para transmitir o recurso de volta.

Mas atenção, ele deve ser configurado devidamente, pois não são todos os recursos que ficam idênticos para sempre: é importante colocar um recurso em cache somente até que ele mude, não mais que isso. Por isso, durante a sua jornada de suporte tecnológico, você vai pedir que as pessoas limpem o Cache delas.

{você ainda vai se lembrar dessa seção! C-E-R-T-E-Z-A}

DNS
Indo direto ao ponto: o DNS (Domain Name System – Sistema de Nome de Domínio) converte nomes de domínio legíveis por humanos (por exemplo, skillsbuild.org) em endereços IP (Internet Protocol – Protocolo da Internet) legíveis por máquina (por exemplo, 192.0.2.44). É com esse número que, assim como com coordenadas geográficas, vamos conseguir chegar no contéudo da nossa requisição.

Ao abrir um navegador e acessar um site, você não precisará lembrar-se de um longo número nem digitá-lo. Em vez disso, você poderá informar um nome de domínio e ainda assim encontrar o que deseja.

O sistema DNS da internet funciona praticamente como uma agenda de telefone ao gerenciar o mapeamento entre nomes e números. Os servidores DNS convertem solicitações de nomes em endereços IP, controlando qual servidor um usuário final alcançará quando digitar um nome de domínio no navegador da web. Essas solicitações são chamadas consultas. Temos serviços globais de grandes empresas para isso, como a própria IBM. Normalmente eles já vem configurados e você não precisa se preocupar!

Requisição e Resposta

Protocolo HTTP
É um protocolo que os clientes e os servidores usam para se comunicar. Essa comunicação é baseada em requisições (request) e respostas (responses). Veja abaixo os elementos dessa comunicação:

Conteúdo de uma solicitação

  • Método HTTP;
  • Página que será acessada;
  • Parâmetros do formulário;Conteúdo de uma resposta

Conteúdo de uma resposta

  • Código de status (informa se a solicitação foi realizada com sucesso ou não);
  • Tipo de Conteúdo (HTML, figuras, textos, etc);
  • Conteúdo (HTML real, imagem, etc);

A solicitação HTTP possui outra solicitação conhecida como URL (Localizador Uniforme de Recursos). A solicitação URL é um recurso que se ativa quando o usuário tenta acessar alguns dos métodos HTTP descritos abaixo.

Métodos HTTP

GET: Solicita ao servidor um recurso chamado de solicitação URI. Este é o método padrão, pois é a forma como o browser chama o servidor quando digita-se uma URL para que ele a recupere.

POST: Contém um corpo nos quais seus parâmetros de solicitação já são codificados. O mais frequente uso desse método é na submissão de formulários.

HEAD: Similar ao método GET, o servidor apenas retoma a linha de resposta e os cabeçalhos de resposta.

PUT: Esse método permite o envio de arquivos ao servidor Web.

DELETE: Permite a exclusão de documentos dentro do servidor Web.

OPTIONS: É possível fazer uma consula de quais comandos estão disponíveis para um determinado usuário.

TRACE: Permite depurar as requisições, devolvendo o cabeçalho de um documento.

Tipos de protocolos

FTP (File Transfer Protocol): é muito utilizado para transmissão (upload e download) de arquivos para um servidor.

SMTP (Simple Message Transfer Protocol): fornece os comandos necessários para envio de mensagens a um servidor de e-mail.

POP (Post Office Protocol) permite que um cliente acesse e manipule mensagens de correio eletrônico disponíveis em um servidor.

IMAP (Internet Message Access Protocol) permite que um cliente acesse e manipule mensagens de correio eletrônico disponíveis em um servidor, assim como ocorre no protocolo POP.

Resposta de um HTTP
Uma resposta HTTP é composta de dois itens: o header e corpo. A informação do header faz três verificações que são:

  • O protocolo que está sendo usado no browser;
  • Se ao realizar uma solicitação, tudo transcorreu corretamente;
  • O tipo de conteúdo que está incluído no corpo. Apenas lembrando que o corpo possui o conteúdo que o browser exibirá.

Existem algumas respostas que o servidor encaminha para o browser. Muitas dessas respostas são comuns de serem vistas por programadores, sendo representadas por um número indicado que indica qual problema ocorreu. Abaixo, descobriremos os mais comuns.

200 (OK): informa que a confirmação da requisição foi respondida com sucesso.

304 (NOT MODIFIED): informa que os recursos que não foram modificados desde a última vez que foi feito um pedido. Isso ocorre por causa dos mecanismos de cache do browser.

401 (UNAUTHORIZED): informa que o cliente não tem acesso autorizado para acessar a área requisitada. Ocorre muito em intranets de acesso privado que precisam ser acessadas com um usuário e senha.

403 (FORBIDDEN): informa que o acesso à área requisitada falhou. Isso pode ocorrer em caso de acesso a áreas que exigem login e senha e não houve autorização para aquele usuário.

404 (NOT FOUND): Não encontrado. Ocorre quando o usuário tenta acessar uma área inexistente no endereço passado, por exemplo, páginas removidas ou recursos excluídos.

O HTTP usa um modelo de solicitações e respostas. Uma solicitação ocorre quando o usuário faz uma solicitação HTTP e o servidor web devolve uma resposta HTTP, sendo que o browser verifica como tratar esse conteúdo. Se a resposta que vem do servidor for uma página HTML, então é inserido na resposta HTTP.

As diferenças entre as solicitações GET e POST é que enquanto o GET anexa dados do formulário no final da URL, o POST inclui dados do formulário no corpo da solicitação.

Atividade: O percurso da URL - 1/3
Você iniciou uma requisição através de uma: "URL" no: "navegador" até o: "servidor" que o hospeda e sua resposta voltou para o navegador a ser apresentado.

Atividade: O percurso da URL - 2/3
A etapas envolvidas nesse processo são:
1. Você digita uma: "URL" em seu: "navegador" e pressiona Enter
2. Navegador procura no: "DNS" o endereço: "IP - Internet Protocol" do domínio.

Atividade: O percurso da URL - 3/3
3. O navegador envia a solicitação HTTP para o: "servidor".
4. O servidor solicita e envia de volta uma: "resposta".
5. Navegador mostra o conteúdo.

Nenhum comentário:

Postar um comentário

Postagens mais visitadas