Aluno: Luis Venancio Coelho Vieira Filho
Data: 08/01/2023
Revisão: Eduardo Dantas
Data: 10/01/2023
De modo geral, esse protocolo é um dos principais responsáveis pela maioria dos usuários conseguirem acessar os sites que estão disponíveis na Internet. O Protocolo De Transferência De Hipertexto (Hypertext Transfer Protocol - HTTP) é usado para carregar páginas web da World Wide Web (WWW) em um navegador.
O HTTP é usado principalmente em redes baseadas em IP, para a transmissão de páginas web de um servidor para o navegador, e descreve um protocolo sem estado, com o qual os dados podem ser transmitidos em uma rede IP. A aplicação mais importante é a transferência de páginas da Internet, já que consiste em um protocolo que especifica como será a comunicação entre um navegador e um servidor web, sendo um dos principais da World Wide Web. No entanto, ele não está restrito a sites.
Embora a internet tenha sido criada na década de 1960, foi somente em 1989 que ela começou a apresentar as características que conhecemos hoje. Com o surgimento da World Wide Web, foi criado um padrão para organização dos dados que trafegam pela rede, permitindo que qualquer computador tivesse acesso ao mundo virtual.
No entanto, essa troca de informações precisava de um padrão, e foi a partir dessa necessidade que o HTTP foi criado em 1990. O protocolo era leve, rápido e podia ser interpretado e compreendido por todos os computadores que estavam conectados à web. A proposta deu certo e continua em vigor até os dias de hoje, ainda que tenha sofrido algumas alterações.
A principal função é a transmissão de páginas web na Internet. No entanto, é um protocolo de transferência que não se limita ao hipertexto, mas pode, a princípio, ser usado para a troca de quaisquer dados. Para garantir uma transmissão confiável, o HTTP usa o TCP (protocolo de controle de transmissão), orientado para conexão, e seguro.
A maneira como o HTTP funciona é a seguinte: o cliente inicia uma solicitação ao servidor web, digitando-a na barra de endereço do navegador. Este, por sua vez, responde inicialmente com um código de status, que consiste em três dígitos. Ele contém a informação se a solicitação pode ser respondida com sucesso ou não. Se houver um erro na solicitação, a mensagem 404 aparece, por exemplo. Não apenas o conteúdo HTML pode ser transmitido via HTTP, mas também outros formatos. Hoje em dia, muitos sites são criados dinamicamente, por exemplo, usando PHP. Esses formatos também podem ser transmitidos via HTTP e reproduzidos diretamente no lado do cliente.
O protocolo utiliza uma estrutura de cliente-servidor, onde há uma comunicação com mensagens individuais. Uma unidade de comunicação em HTTP é chamada de mensagem, sendo feita uma distinção entre a mensagem enviada pelo cliente ao servidor web, a qual é chamada de solicitação ou consulta (request), e a mensagem subsequente, enviada pelo servidor ao cliente, a qual é chamada de resposta (response).
Cada uma dessas mensagens possuem estruturas características que não são tratadas pelos usuários finais. Elas são processadas e interpretadas pelos navegadores ou programas, juntamente com seus servidores. Cada mensagem é composta por um cabeçalho e um corpo. O primeiro é a área do cabeçalho do documento. Contém as meta informações básicas, o tipo de conteúdo e o idioma ou o conjunto de caracteres, por exemplo. Sendo assim, todas as mensagens enviadas pelo protocolo através de uma interface (site ou página que geralmente utiliza HTML) são localizadas na rede através das URLs (Uniform Resource Locators ou Localizador Uniforme de Recursos em português), processadas e retornadas para os usuários.
O HTTP, que faz parte da camada 7 do modelo OSI, conhecida como camada de aplicação, sendo a mais próxima do usuário, costuma atuar comumente em conjunto com outro protocolo de transferência: o TCP (Transmission Control Protocol), que faz parte da camada de transporte. O conteúdo real do site, que também é exibido no navegador do usuário, está localizado no corpo HTTP. O protocolo TCP/IP é usado para a transmissão do protocolo HTTP. Em contraste com o protocolo de transferência de arquivos, o HTTP não tem estado. Isso significa que nenhum dado de sessão é transmitido, como IDs. Cada solicitação é independente uma da outra e processada de forma independente. No entanto, uma responsabilidade de status pode ser adicionada explicitamente, por exemplo, usando um cabeçalho de cookie.
O protocolo HTTP define oito métodos (GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS e CONNECT) que indicam a ação a ser realizada no recurso especificado. O método determina o que o servidor deve fazer com o URL fornecido no momento da requisição de um recurso. Um servidor HTTP deve implementar ao menos os métodos GET e HEAD. Os métodos GET e POST são os que aparecem mais comumente durante o desenvolvimento web.
Uma solicitação HTTP, ou HTTP Request é uma maneira do navegador mostrar uma página da internet utilizando um dos oito métodos de solicitação do protocolo HTTP. Além de solicitar um determinado arquivo, envia várias informação para o servidor, sendo elas: o seu IP, a versão do navegador que está usando, que página fois solicitada no HTTP Request e o idioma que você usa, entre outros.
Com GET, geralmente, um arquivo é solicitado do servidor. Para que o servidor reconheça o recurso a ser transmitido, é informada uma URI (Uniform Resource Identifier), por exemplo, uma URL. O método GET requisita uma representação do recurso especificado. Requisições usando GET devem apenas recuperar dados e não devem ter qualquer outro efeito. (Isto também é verdade para alguns outros métodos HTTP.)
Variação do GET em que o recurso não é retornado. É usado para obter metainformações por meio do cabeçalho da resposta, sem ter que recuperar todo o conteúdo.
Envia dados para serem processados (por exemplo, dados de um formulário HTML) pelo recurso especificado. Os dados são incluídos no corpo do comando. Sua utilização em uma requisição ocorre quando é necessário enviar dados ao servidor para serem processados. Uma requisição por meio desse método sempre requer que as informações submetidas sejam incluídas no corpo da mensagem e, esse método oferece uma maior segurança em relação aos dados transferidos, ao contrário do método GET, em que os dados são anexados a URL, ficando visíveis ao usuário.
O método PUT envia os dados de forma semelhante ao POST, através do corpo do HTTP, a diferença entre os 2 métodos é semântica. Caso você necessite atualizar os dados de um usuário, utilizando o método PUT você pode os atualizar diversas vezes, pois o PUT vai sobrescrever os dados com isso ficará somente com um único registro atualizado. Se você executasse este mesmo procedimento utilizando o método POST, você criaria diversos registros para cada requisição realizada.
Exclui o recurso.
Ecoa o pedido, de maneira que o cliente possa saber o que os servidores intermediários estão mudando em seu pedido.
Recupera os métodos HTTP que o servidor aceita.
Serve para uso com um proxy que possa se tornar um túnel SSL e TLS (um túnel pode ser usado, por exemplo, para criar uma conexão segura).
Uma vez que os rastreadores dos motores de busca na web se comportam como clientes, eles também usam o protocolo HTTP para recuperar dados do servidor. Os comandos que costumam ser definidos no cabeçalho de um site também são transmitidos ao rastreador via HTTP. Isso inclui o comando para não indexar uma página (noindex) ou não seguir os links no site (nofollow), por exemplo.
O HTTP cumpriu bem o seu papel de padronizar a comunicação entre clientes e servidores na internet, mas gerou um problema de segurança: pessoas mal-intencionadas passaram a atravessar o caminho da comunicação e e fazer a interceptação dos dados com certa facilidade. Estas práticas acabaram tornando o HTTP uma conexão bastante insegura e, por isso, o HTTPS (Hyper Text Transfer Protocol Secure) acabou sendo criado em 1994. O protocolo utiliza o HTTP como base, mas adiciona uma camada de proteção na transmissão de dados.
O S significa security ou segurança, em português. O HTTPS é o protocolo ou conjunto de regras e códigos com uma camada de segurança que torna a navegação mais segura.
O HTTP não oferece a mesma segurança do HTTPS porque as informações navegam na rede de uma forma muito parecida como a apresentada na tela ou digitada pelo usuário. Por exemplo, se o usuário digita um login "xxx" e uma senha "1234", isso é colocado dentro de pacotes de dados que são enviados da mesma maneira pela rede. Alguém pode interceptar esses dados no meio do caminho, visualizando exatamente o digitado. Com essas informações, o interceptador pode acessar a conta particular do usuário na internet.
"Interceptar pacotes entre a origem e o destino não é muito complicado na internet. Eles passam por diversas redes de uma ponta até a outra, como a rede domestica ou empresarial, rede do nosso provedor, a rede do provedor da página web de destino e a rede onde está o servidor desse sítio, por exemplo. Em qualquer desses pontos um indivíduo mal-intencionado pode encontrar meios de visualizar os pacotes de dados que trafegam. Não é uma tarefa trivial, mas não chega a ser difícil", segundo Antonio Moreiras, supervisor de projetos do NIC.br (Núcleo de Informação e Coordenação do Ponto BR).
O HTTP tem vulnerabilidades que acabam por prejudicar os usuários. O HTTP não oferece certeza absoluta de que o site acessado é realmente de quem diz ser. Um cracker pode interceptar os dados que trafegam e criar um falso sítio de destino, respondendo às requisições do navegador na web. Por exemplo, o usuário pode pensar que está navegando numa loja virtual, mas está, na verdade, interagindo com uma quadrilha que roubará seus dados pessoais, como senhas e números de cartão de crédito.
A função básica entre os HTTPs é igual, ou seja, é usado para permitir que os navegadores na internet dialoguem com os servidores, mas fornece mais segurança em dois aspectos: criptografa os dados trafegados, embaralha-os de forma que somente o destinatário pode entendê-los. Esses dados podem ser interceptados, mas não são legíveis para as pessoas ou computadores. "É muito, muito difícil que possam ser descriptografados e entendidos por alguma entidade que os intercepte no meio do caminho", aponta o supervisor.
O HTTPS também garante que o site que o usuário está visualizando é de quem diz ser. O dono do local na web cria um certificado, dizendo quem é e submete isso a uma empresa certificadora, que verifica a autenticidade do mesmo e o assina, o endossando. Os navegadores reconhecem as principais empresas certificadoras e aceitam automaticamente os certificados assinados por ela, reconhecendo sua autenticidade e a da página correspondente.
É importante entender que o HTTPS só protege o caminho, não protege as pontas. Ou seja, se o computador ou o servidor da loja virtual forem invadidos ou estiverem comprometidos por ataques de vírus ou outros softwares maliciosos, as informações podem ser comprometidas.
Canaltech
Nic.br