Del curso: Fundamentos de HTTP para Desenvolvedores
Características do protocolo HTTP
Del curso: Fundamentos de HTTP para Desenvolvedores
Características do protocolo HTTP
Agora que nós já entendemos o que é uma rede, porque nós conectamos os computadores em rede e o que é um protocolo, claro, de forma extremamente simplista, mas realmente esse é o objetivo do nosso curso, vamos falar sobre o protocolo HTTP. O protocolo HTTP é um protocolo de transferência de recursos do servidor para o cliente. Ou, falando de forma ainda mais simples, é um protocolo de transferência de arquivos do servidor para o cliente. Geralmente nós temos o seguinte cenário: nós vamos ter uma máquina e dentro dela nós vamos ter um servidor HTTP Roda, então um servidor HTTP. Aqui um detalhe interessante, né? Muita gente chama o hardware, a máquina, de servidor, mas na verdade o servidor é a aplicação que está rodando ali dentro dela, que no caso é o servidor HTTP. Dentro da máquina nós vamos ter uma série de recursos, então os recursos, por exemplo, podem ser arquivos HTML, então vou colocar aqui um arquivo HTML de exemplo, pode ser uma imagem, como um JPG, então vou colocar aqui também um JPG de exemplo, pode ser também um vídeo, então vamos colocar aqui um arquivo PNG de exemplo. Então a gente pode ter uma série de recursos aqui dentro desse servidor. Esses recursos, eles ficam disponíveis aqui dentro para serem ados através do servidor HTTP. Então o cliente que quer requisitar um recurso, por exemplo, aqui um usuário que quer ar um website, ele faz o quê? Vamos colocar o nosso cliente bonitão aqui. O cliente, deixa eu colocar aqui que esse daqui é o cliente, ele faz o quê? Ele vai realizar o que a gente chama de requisição ao servidor ou, em inglês, também chamada de request. E aí ele vai requisitar um recurso que está aqui dentro do servidor. O servidor, por outro lado, vai verificar se realmente aquele recurso existe, se o usuário que está tentando, esse cliente aqui, ele tem permissão realmente para ar aquele recurso, como por exemplo o arquivo HTML, se tudo estiver certo, se ele tiver permissão, o recurso existir, o nosso servidor HTTP vai retornar o que a gente chama de response, ou, em português, resposta. Então ele vai mandar a resposta aqui ao nosso cliente, certo? E com isso o cliente vai conseguir, por exemplo, visualizar o site que ele quer aqui dentro do navegador, por exemplo, se está ando um site HTML, certo? Então esse é o fluxo básico que a gente tem. Aqui nós temos alguns detalhes. O primeiro detalhe é o seguinte: o protocolo HTTP, quando nós realizamos uma requisição, ele cria, o cliente cria uma conexão com o servidor e assim que a requisição é enviada, ele fecha, o cliente, o servidor fecha essa conexão com o cliente. Aí ele verifica o recurso, obtém o recurso e retorna uma resposta em uma nova conexão ao cliente, que é o que a gente chama de connectionless. Então essa é uma das características do HTTP. Outro detalhe também muito interessante é que, cada requisição que nós fazemos, mesmo se esse cliente, ele já fez uma requisição anterior para o protocolo HTTP, é como se ele nunca estivesse feito uma requisição antes. Então o servidor HTTP, ele não guarda estado, que é o que a gente chama de stateless, então ele não guarda estado aqui dentro. Então, para o servidor HTTP, cada conexão é como se fosse uma conexão nova, então por isso nós chamamos de stateless, certo? Então, essas são as características aí do protocolo HTTP.