Conteúdo
O protocolo HTTP viabiliza a busca de recursos em relação a uma página na internet como documentos HTML.
Ele é usado como uma base de qualquer troca de dados na internet, sendo um protocolo aplicado entre cliente-servidor, abrangendo as solicitações que são iniciadas pelo destinatário, geralmente através do navegador da Web.
Lembramos que um documento completo é reconstruído a partir dos diferentes sub-documentos buscados e encontrados na página de internet como, por exemplo, texto, descrição do layout, imagens, vídeos, scripts e outros arquivos.
A importância do protocolo HTTP
Sabemos que a internet depende da troca constante de arquivos seguros para serem visitados, acessados, trocados, enviados e recebidos.
Nesse amplo fluxo de dados, os clientes e servidores se comunicam trocando mensagens individuais. Determinadas mensagens enviadas pelo cliente, geralmente um navegador da Web, são chamadas de solicitações e as mensagens enviadas pelo servidor como resposta são chamadas de “respostas”.
Origem e evolução
Esse tipo de protocolo surgiria no início dos anos 1990, trata-se de um protocolo extensível que evoluiu com o tempo. Apresenta camada de aplicação que é enviado por TCP ou por uma conexão TCP criptografada por TLS, embora qualquer protocolo de transporte confiável possa teoricamente ser usado.
Considerando o seu caráter extenso, é utilizado não apenas para buscar documentos de hipertexto, mas também para imagens e vídeos ou para publicar conteúdo em servidores, como nos resultados de formulários HTML.
Aplicação
Além de auxiliar na busca de documentos, publicação de conteúdos ele também pode ser usado para buscar partes de documentos para atualizar páginas da Web sob demanda.
Componentes de sistemas
Os componentes de sistemas baseados nesse tipo de protocolo existem a partir de uma base cliente-servidor. Dessa forma, as solicitações são enviadas por uma entidade, o agente do usuário ou um proxy em seu nome.
Geralmente, o agente do usuário é um navegador da Web, mas pode ser qualquer coisa, por exemplo, um robô que rastreia a Web para preencher e manter um índice de mecanismo de pesquisa de dados e resultados.
O servidor
Nesse caminho entre cliente-servidor, cada solicitação individual é enviada para um servidor, que lida com ela e fornece uma resposta, chamada resposta.
Entre o cliente e o servidor, existem inúmeras entidades, coletivamente chamadas de proxies , que executam operações diferentes. Na prática, há mais computadores entre um navegador e o servidor que gerencia a solicitação, incluindo roteadores, modems e muito mais.
As camadas da web
A partir da estruturação de camadas da web, as solicitações ficam ocultas nas camadas de rede e transporte. Nessa estruturação, o protocolo HTTP fica no topo, na camada de aplicação.
Em certos casos é importante diagnosticar problemas de rede, através das camadas subjacentes, mesmo sendo irrelevantes para a descrição do HTTP.
O user agent
O user agent na língua portuguesa é referido como agente de usuário. O agente do usuário é qualquer ferramenta que atua em nome do usuário.
Essa função é desempenhada principalmente pelo navegador da Web. Por outro lado, outras possibilidades são programas usados por engenheiros e desenvolvedores da Web para depurar seus aplicativos.
O navegador
O navegador é a ferramenta mais usada para solicitar, nunca o servidor realizar as solicitações, porém alguns mecanismos tenham sido adicionados ao longo dos anos para simular mensagens iniciadas pelo servidor.
Apresentação da página na internet
Ao acessar um determinado site ou página simples da internet, o navegador envia uma solicitação original para buscar o documento HTML que representa a página.
Depois, ele realiza uma análise do mesmo arquivo, fazendo solicitações adicionais correspondentes a scripts de execução, informações de layout (CSS) a serem exibidas e sub-recursos contidos na página, geralmente imagens e vídeos.
O navegador consegue combinar os recursos para apresentar ao usuário um documento completo, a página da Web.
No processo de visitação, os scripts executados pelo navegador podem buscar mais recursos em fases posteriores e o navegador atualiza a página da Web de acordo com o servidor.
O que é uma página de internet?
Num conceito bastante prático, a página de web refere-se a um documento de hipertexto. Dessa forma determinadas partes do texto exibido são links que podem ser ativados, através com um clique do mouse, para buscar e achar uma nova página da Web, permitindo que o usuário direcione seu agente e navegue pela internet.
Posteriormente, o navegador consegue converter as instruções em solicitações através do protocolo HTTP e interpreta ainda mais as respostas HTTP para apresentar ao usuário uma resposta clara.
O servidor
Do outro lado, temos o servidor que serve o documento conforme solicitado pelo cliente. Genericamente, o servidor é o local onde o site e seus arquivos ficam arquivados e configurados para serem encontrados através do domínio chaveado pelo DNS.
O servidor aparece apenas como uma única máquina virtualmente. Pode ser também uma coleção de servidores, compartilhando a carga ou um software complexo que interroga outros computadores, como cache, servidor de banco de dados ou comércio eletrônico, total ou parcialmente gerando o documento sob demanda.
O servidor é uma máquina
Em sua aplicação, um determinado servidor não é necessariamente uma única máquina, mas várias instâncias de software para servidor podem ser hospedadas na mesma máquina.
Proxies
Quando falamos em sessão de áreas proxies, devemos lembrar que entre o navegador da Web e o servidor, vários computadores e máquinas retransmitem as mensagens do protocolo HTTP.
Considerando a sua estrutura em camadas da pilha da Web, a maioria delas opera nos níveis de transporte, rede ou físico, tornando-se transparente na camada HTTP e potencialmente causando um impacto significativo no desempenho.
Por outro lado, quando operam nas camadas do aplicativo são geralmente chamados de proxies.
Os proxies podem ser transparentes, encaminhando as solicitações recebidas sem alterá-las de qualquer forma ou não transparentes.
As funções dos Proxies
Eles podem realizar várias funções, leia a seguir as principais:
- Cache: o cache pode ser público ou privado, como o cache do navegador.
- Filtragem: como uma verificação antivírus ou controle dos pais.
- Balanceamento de carga: Utilizado para permitir que vários servidores atendam a diferentes solicitações.
- Autenticação: usada para controlar o acesso a diferentes recursos.
- Registro: Utilizado para permitir o armazenamento de informações históricas.
Considerações básicas
O protocolo HTTP é projetado para ser simples e legível por humanos e não somente por máquinas. Pode ser aplicada uma complexidade adicional introduzida no HTTP / 2, encapsulando mensagens HTTP em quadros.
Dessa maneira, as mensagens do protocolo podem ser lidas e entendidas por humanos, oferecendo testes mais fáceis para desenvolvedores e menor complexidade para usuários iniciantes.
Extensão
O protocolo é extensível. Numa explicação técnica, ao introduzir o protocolo os cabeçalhos HTTP facilitam a extensão e a experimentação desse protocolo no 1.0.
Novas funcionalidades podem até ser introduzidas por um simples acordo entre um cliente e um servidor sobre a semântica de um novo cabeçalho.
Apátrida
Quando falamos nesse tipo de protocolo, devemos lembrar que ele é apátrida, pois não há nenhum link entre duas solicitações sendo executadas sucessivamente na mesma conexão.
Pode gerar problemas para os usuários que tentam interagir com determinadas páginas de forma coerente, por exemplo, usando cestas de compras de comércio eletrônico.
Como o núcleo do protocolo em si é sem estado, os cookies HTTP permitem o uso de sessões com estado. Utilizando a extensibilidade do cabeçalho, os cookies HTTP são adicionados ao fluxo de trabalho, permitindo que a criação da sessão em cada solicitação.
A conexão
Em seu contexto, é determinado que a conexão é controlada na camada de transporte e, portanto, fundamentalmente fora do escopo para HTTP.
Ele pode não exigir que o protocolo de transporte subjacente seja baseado em conexão, podendo exigir apenas que seja confiável ou não perca mensagens com mínimo de erro.
Em comparação, entre os dois protocolos de transporte mais comuns na Internet, o TCP é confiável e o UDP não. O protocolo HTTP, portanto, depende do padrão TCP, que é baseado em conexão.
Antes que um cliente e servidor possam trocar um par de solicitação e resposta através do protocolo, eles precisam estabelecer uma conexão TCP, um processo que requer várias viagens de ida e volta.
Conclusão
Fala Stacker, nos últimos anos, iniciaram experimento para criar um protocolo melhor de transporte mais adequado ao HTTP.
O Google está testando o QUIC, que se baseia no UDP para fornecer um protocolo de transporte mais confiável e eficiente.
Atualmente, o protocolo HTTP permite mais controle e funcionalidade da Web, envolvendo métodos de cache ou autenticação. Porém, a capacidade de relaxar a restrição de origem começou a ser aplicada a partir dos anos 2010.
Me diz uma coisa, você quer aprender mais sobre Front end? Baixe nosso Material Gratuito ou aprenda mais sobre Front end no youtube.
Deixe suas perguntas ai nos comentários que irei responder, e até a próxima forte abraço!