HTTP significa ” Hypertext Transfer Protocol” (Protocolo de Transferência de Hipertexto ) . É essencialmente um protocolo de comunicação usado para conduzir informações entre um cliente e um servidor web.
O HTTP foi inventado com HTML para criar o primeiro navegador interativo baseado em texto conhecido como o original World Wide Web
Hoje, o HTTP ainda é uma das principais maneiras de usar a Internet, sem a qual os usuários da rede não podem passar sem ele.
Se o senhor é um usuário da Internet, deve definitivamente prestar atenção a este artigo que lhe diz tudo o que precisa saber sobre o protocolo HTTP
Capítulo 1: O que é HTTP?
Como o HTTP é um dos elementos fundamentais da Internet, neste capítulo falaremos juntos sobre tudo o que o senhor precisa entender a respeito desse protocolo
1.1. Definição e história do HTTP
HTTP ou Hypertext Transfer Protocol é uma técnica para codificar e conduzir informações entre um navegador da web e um servidor web. O HTTP é o protocolo principal para a transmissão de informações pela Internet.
O protocolo HTTP 0,9 foi desenvolvido pela primeira vez no final dos anos 80, mas com uma baixa capacidade
A combinação dessa invenção com HTML e URLs é agora considerada como a base da iniciativa global de informação na rede mundial de computadores
Essa inovação foi levada ao mundo da web por Tim Berners-Lee no CERN de Genebra para a troca de informações entre a comunidade física.
Dadas as deficiências do protocolo HTTP 0,9, Berners-Lee pensou em melhorias ao inventar a primeira versão real do HTTP/1.0 em 1991
Esse novo trabalho do ator foi proposto como RFC 1945 ao órgão regulador da Internet Engineering Task Force (IETF) em 1996.
Com o lançamento do NCSA Mosaic, um navegador gráfico fácil de usar, a WWW se tornou cada vez mais popular e algumas das limitações da versão 1.0 do protocolo se tornaram aparentes, em particular:
- A incapacidade de hospedar vários sites www no mesmo servidor (o chamado host virtual),
- Falha na reutilização das conexões disponíveis,
- A falha de mecanismos de segurança insuficientes,
- Etc.
De agora em diante, a nova versão HTTP / 1.1 foi lançada. É apresentado como RFC 2068 em 1997 e atualizado mais tarde em 1999, conforme descrito por RFC 2616.
1.2. Como funciona o protocolo HTTP
Sempre que um usuário faz um pedido na Internet, ele sem dúvida está usando o protocolo HTTP. Não apenas para enviar o pedido ao servidor que hospeda a página solicitada, mas também para receber os dados em resposta do servidor.
Isso implica uma presença inevitável do HTTP tanto no nível de aplicação do cliente quanto no do servidor, caso contrário a comunicação não poderá ocorrer.
O pedido do cliente é feito através do navegador, que administra toda a comunicação e devolve os recursos solicitados pelo usuário para a tela. O navegador vê uma página da Internet como um conjunto de objetos ligados entre si por hiperlinks.
Assim, uma página da Internet será certamente composta por um corpo HTML e outros recursos que poderiam ser scripts, imagens, applets Java, etc.
HTTP conta com o protocolo TCP na camada de transporte para assegurar a transferência de dados do servidor para o cliente.
A principal razão para o uso do TCP por HTTP pode ser explicada pela transferência de dados que ele garante, ao contrário do protocolo de transferência UDP
Embora o uso do TCP tenha uma grande vantagem de transferência de dados confiáveis, ele também implica um tempo de espera mais longo para receber o recurso solicitado
Isso só pode acontecer porque, antes de transmitir os dados, o TCP deve estabelecer uma conexão em uma operação chamada Handshake
A transferência confiável de dados é essencial para o HTTP, porque se todo o corpo HTML de uma página da web não fosse transferido para o navegador, devido a um erro de transmissão, a página solicitada seria impossível de ser exibida ou seu conteúdo seria alterado.
Como mencionado anteriormente, o HTTP pertence à camada de aplicação, enquanto o TCP é um protocolo da camada de transporte. Isso explica um pouco sobre como HTTP troca dados com TCP.
Isso é possível graças às tomadas que representam o ponto de contato entre a camada de aplicação e a camada de transporte. Cada aplicação em um host específico terá uma tomada de interface específica para a camada de transporte
Por exemplo, se um usuário solicita uma página da Internet e envia um e-mail ao mesmo tempo, haverá dois soquetes
- Uma que trata do intercâmbio de dados entre o HTTP e a camada de transporte,
- E o outro entre os protocolos de e-mail e a camada de transporte.
Mas quando o usuário tenta abrir duas páginas da Internet ao mesmo tempo, apenas uma tomada poderia ser criada neste caso
Porque a tomada neste caso se refere a um único processo. A tomada permite administrar, independentemente, os pacotes recebidos para exibir separadamente as duas páginas da web solicitadas.
1.3. O propósito do protocolo HTTP
Quando falamos do protocolo de transferência de hipertexto, nos referimos imediatamente ao papel do HTTP na transmissão de dados do site na Internet
Quanto ao hipertexto, ele se refere à forma padrão de websites através dos quais uma página pode encaminhar os usuários para outra página por meio de hiperlinks clicáveis, geralmente chamados simplesmente de links
O objetivo do protocolo HTTP é proporcionar uma maneira padrão de os navegadores e servidores se comunicarem uns com os outros.
As páginas da web são projetadas usando Hypertext Markup Language, ou HTML, mas HTTP é usado hoje para transferir mais do que apenas HTML e as folhas de estilo em cascata, ou CSS, usadas para indicar como as páginas devem ser exibidas
O HTTP também é usado para transferir outros conteúdos em websites, inclusive imagens, arquivos de vídeo e áudio.
Os computadores podem se conectar a servidores web usando HTTP simplesmente para solicitar arquivos de endereços web específicos
Quando um computador está simplesmente recuperando dados, ele geralmente envia uma mensagem HTTP chamada GET request, e quando envia dados de formulário ou faz o download de um arquivo, ele usa outros formatos de mensagem chamados PUT ou POST requests
O senhor pode ver as mensagens HTTP que seu navegador da web envia em muitos navegadores através das ferramentas de desenvolvimento embutidas.
Hoje, o HTTP é usado por muitas outras aplicações que não os navegadores da web para enviar mensagens aos servidores
As pessoas que criam aplicações escolhem voluntariamente o HTTP porque é bem compreendido por muitos desenvolvedores.
Outra razão é que o HTTP geralmente não é filtrado por firewalls de rede projetados para permitir o tráfego na web, o que significa que as mensagens HTTP podem passar pela maioria das redes de casa e do escritório sem qualquer problema.
1.4. Os benefícios do HTTP
A primeira coisa que o senhor precisa saber é que o HTTP usa um esquema de endereçamento avançado. Ele atribui um endereço IP com nomes reconhecíveis, para que possa ser facilmente encontrado na rede mundial de computadores
Em comparação com o procedimento padrão de endereço IP com uma série de números, usando isso, o público pode facilmente interagir com a Internet.
Sempre que uma aplicação precisar de capacidades adicionais, o HTTP pode dar-lhe funcionalidades extras, baixando extensões ou plugins e exibindo os dados relevantes
Com o HTTP, cada arquivo é baixado de uma conexão independente e depois fechado. Por esse motivo, não é transferido mais do que um elemento de uma página da Internet. Portanto, o risco de interceptação durante a transmissão é baixo.
Além disso, quando a página é carregada pela primeira vez, todas as páginas HTTP são armazenadas em cachês da Internet, chamados de page caches.
Portanto, quando a página for visitada novamente, o conteúdo será carregado mais rapidamente.
1.5. As desvantagens do HTTP
Como o HTTP não funciona com base na criptografia de dados, é bem possível que seu conteúdo possa ser modificado por outra pessoa.
É por isso que o HTTP é considerado um método inseguro de transferência de dados, e que exibe a integridade dos dados. Isso torna os dados vulneráveis a ataques.
A confidencialidade é outro problema encontrado em uma conexão HTTP. Se um agressor conseguir interceptar o pedido, poderá exibir todo o conteúdo presente na página da Internet
Além disso, podem também coletar informações confidenciais, como nome de usuário e senha, muito facilmente
Além disso, mesmo que o HTTP receba todos os dados necessários, os clientes não tomam nenhuma medida para fechar a conexão. Portanto, durante esse período, o servidor não estará presente
Além disso, uma vez que o HTTP tem que criar múltiplas conexões para transmitir uma página da web, isso causa uma sobrecarga administrativa na conexão.
1.como HTTP e HTTPS são diferentes?
Enquanto HTTP significa Protocolo de Transferência de Hipertexto, HTTPS significa simplesmente “Hypertext Transfer Protocol Secure” (Protocolo de Transferência de Hipertexto Seguro)
O senhor vai notar que algumas URLs começam com HTTP e outras com HTTPS, o “S” significa criptografia segura, que é garantida com um certificado
HTTPS significa simplesmente uma chave pública descriptografada do lado do beneficiário. E essa chave pública é obtida em um certificado SSL.
O certificado SSL representa um documento de identidade on-line, indicando que o website está protegido e livre de ameaças externas
Os sites que coletam informações sensíveis das pessoas, inclusive endereços pessoais e números de cartão de crédito, devem adquirir uma licença SSL
A criptografia SSL tem muitos benefícios tanto para os clientes quanto para os websites. Os principais benefícios incluem:
- Proteção contra hackers : Como o certificado protege informações sensíveis, os hackers e ladrões de identidade enfrentarão alta segurança de dados.
- Autenticidade e confiabilidade: As pessoas querem fazer negócios com um website seguro e digno de confiança. Eles não fazem compras em websites que não são verificados e criptografados
- Aumento da taxa de conversão: De acordo com a análise, os sites de comércio eletrônico seguros verão rapidamente um aumento de 18 à 87% em taxas de conversão.
O protocolo HTTP é limitado à transmissão de mensagens sem criptografia de segurança. Isso torna os dados muito vulneráveis a ataques.
Capítulo 2: O que é um código de status HTTP?
Pode acontecer que o cliente possa fazer pedidos ao servidor, e em troca o servidor responde com códigos de status e mensagens de pagamento. O código de status é importante e diz ao cliente como interpretar a resposta do servidor
A especificação HTTP define certos intervalos de números para tipos específicos de respostas:
2.1. 1xx: Mensagens de informação
Todos os clientes do HTTP/1.1 devem aceitar o Cabeçalho de Transferência-Encodificação. Essa classe de códigos foi introduzida no HTTP / 1.1 e é puramente provisória
O servidor pode enviar uma Expectativa: 100-mensagem de continuidade, dizendo ao cliente para continuar a enviar o resto do pedido, ou ignorá-lo se já o tiver enviado. Os clientes HTTP/1.0 devem ignorar esse cabeçalho.
2.2. 2xx: Bem-sucedido
Isso indica que o pedido do cliente foi processado com êxito. O senhor verá com muita freqüência 200 afixados. Para um pedido de GET, o servidor envia os dados na mensagem. Há outros códigos utilizados com menos freqüência:
- 202 Aceite: O pedido foi aceito, mas pode não incluir o recurso na resposta. Isso é útil para o processamento assíncrono no lado do servidor. O servidor pode optar por enviar informações para monitoramento.
- 205 Redefinir conteúdo: Diz ao cliente para redefinir sua visão de documento.
- 206 Conteúdo parcial: Indica que a resposta contém apenas conteúdo parcial. Cabeçalhos adicionais indicam o alcance exato e as informações sobre o prazo de validade do conteúdo.
2.3. 3xx: Redirecionamento
- 303 Ver Outros : O recurso está temporariamente localizado em uma nova URL.
- 304 Inalterado: O servidor determinou que o recurso não foi alterado e que o cliente deve usar sua cópia em cache. Isso depende do cliente enviar informações ETag (Entity Tag), que é um hash do conteúdo. O servidor compara isso com seu próprio cálculo ETag para verificar as mudanças.
2.4. 4xx: Erro do cliente
Esses códigos são usados quando o servidor pensa que o cliente está em falta, seja solicitando um recurso inválido ou fazendo um mau pedido
O código mais popular desta classe é 404 Não Encontrado, com o qual creio que todos se identificam. 404 indica que o recurso é inválido e não existe no servidor. Outros códigos nesta classe incluem:
- 400 Mau pedido: O pedido foi mal formulado.
- 403 Proibido: O servidor negou o acesso ao recurso.
- 404 indica que o recurso é inválido e não existe no servidor. Isso obriga o cliente a tomar outras medidas. Muitas vezes, o cliente é obrigado a acessar um URL diferente para recuperar o recurso.
- 405 Método inválido: verbo HTTP inválido usado na linha de pedido, ou o servidor não suporta esse verbo.
- 409 Conflito: O servidor não conseguiu completar o pedido porque o cliente está tentando modificar um recurso que é mais novo do que o carimbo da hora do cliente. Conflitos ocorrem principalmente para pedidos de PUT quando se fazem mudanças colaborativas em um recurso.
2.5. 5xx: Erro no servidor
Essa classe de códigos é usada para indicar uma falha no processamento do pedido por parte do servidor. O código de erro mais comumente usado é 500 Internal Server Error. Os outros alunos desta classe são :
- 501 Não implementado: O servidor ainda não suporta a funcionalidade solicitada.
- 503 Serviço indisponível: Isso pode ocorrer se um sistema interno do servidor estiver em baixo ou se o servidor estiver sobrecarregado. Normalmente o servidor nem sequer responde e o pedido expira.
Conclusão
O HTTP tem sido o principal protocolo de transmissão de dados na Internet desde sua primeira versão até recentemente. É uma maneira inevitável para qualquer usuário da Internet obter uma resposta ao seu pedido.
É, portanto, uma necessidade para qualquer pessoa que use a Rede conhecer o básico sobre HTTP. Para tanto, abordamos os pontos que podem parecer complexos para o senhor sobre o conceito de HTTP.
Espero que este artigo tenha sido útil ao senhor, sinta-se à vontade para deixar comentários se tiver alguma dúvida.