HyperText Transfer Protocol
O HTTP é um protocolo de transferência de hipertexto que fica na camada de aplicação, e é a base da internet quando se refere a carregamento de recursos de hipertexto, iamagens, vídeos, o que compõe uma página web.
Uma forma de se comunicar usando esse protocolo é a base do request-response, onde:
O navegador sempre inicia a comunicação (enviando uma requisição)
Ao enviar uma requisição para o back-end, o client tem que garantir que está enviando o método, o path, header e body correto. Lembrando que um GET não deveria ter conteúdo no body.
Obs: Um IP pode ter diversos websites, então, por trás do DNS, todos os websites estão apontado para o mesmo IP, mas no header tem o campo "host" e é através dele que a aplicação entende de onde/para onde é.
Ao longo do tempo houveram evoluções do HTTP. A primeira versão é a 1.0, após isso vieram a 1.1 (a mais conhecida), 2.0 e 3.0.
O HTTP 3.0 é um HTTP que não opera pelo TCP, mas sim através do UDP, tendo como premissa uma maior rapidez em comparação as outras versões e sendo uma forma de evitar o bloqueio que acontece com o TCP ao fazer o multiplexing e acaba tendo alguma perda de pacote na transmissão (pelo fato do TCP ler em sequência, e se um pacote for perdido, precisar fazer a retransmissão).
Além do HTTP 3.0, o HTTP 2.0 também tem o suporte de fazer o multiplexing (no caso do HTTP 2.0, é feito com o TCP), é mais rápido e traz uma maior segurança por padrão ao invés da versão 1.1.
Além disso, o HTTP é um protocolo que não tem estado então não existe um armazenamento das informações que foram trocadas "por conta própria", o armazenamento deve ser feito usando outras estratégias, como, por exemplo, cookies.
Na versão 1.1, ao receber o response, existe a transcrição do status code. Ex: 200 OK, 404 NOT FOUND
Tanto o request quanto o response têm headers onde é possível colocar um cabeçalho genérico, que não tem relação aos dados em si transmitidos, quanto cabeçalhos específicos para request/response.
Top comments (0)