
O que é o HTTP? Como funcionam requests e responses?.
Quando você digita um endereço no navegador, antes dele quase sempre vem um "http://", mas você já parou pra pensar no que isso signfica?
Como funcionam as aplicações web
Esse site aqui que você acessa nesse momento, o meu site. Os dados que aparecem na sua tela não estão em seu computador, certo?
Eles estão em outro computador, que chamamos de servidor.
Pra acessar essas informações, seu navegador precisa de alguma forma pedir os dados para o servidor.
DNS lookup
Pra gente, um endereço como http://gabsferreira.com faz todo sentido. Mas para o navegador, não.
Ele precisa de um endereço IP para conseguir estabelecer essa conexão, e consegue isso através de um processo chamado DNS Lookup.
Primeiro, ele olha o cache da sua máquina pra ver se você já acessou esse site e se já tem o endereço IP armazenado lá.
Se não tiver, ele vai até um dos dois Servidores de DNS mais populares e que praticamente todos nós usamos:
-1.1.1.1: o servidor de DNS da CloudFlare
-8.8.8.8: o servidor de DNS do Google
O servidor de DNS que você usa vai depender de que provedor de internet tem.
O HTTP request
Com o IP em mãos, seu navegador abre uma conexão TCP com o servidor e envia dados pra ele.
Mas que tipo de dados?
Texto. Um monte de texto.
Mas esse texto precisa seguir algumas regras. Regras estabelecidas pelo Protocolo HTTP.
Esse texto estruturado baseado em uma série de regras é o que chamamos de Request, ou requisição em português.
Um Request tem 3 informações:
-Uma Request Line
-Um Request Header
-Um Request Body
Request Line
No Request line, temos: o método HTTP, a localização do recurso e a versão do protocolo HTTP que estamos usando.
Exemplo:
GET /gabsferreira.com HTTP/1.1
Request header
No Header, ou cabeçalho da requisição, enviamos algumas informações referentes àquela requisição, como informações do host, política de cookies, encoding, tipo de resposta aceita e cache.
Exemplo
Host: gabsferreira.com
Connection: close
Accept: text/html
Aqui você pode ver uma lista dos cabeçalhos http.
Request body
O Request Body, ou corpo da requisição, é onde geralmente enviamos dados que queremos gravar no servidor.
Não é muito utilizado em requisições do tipo GET, mas sim nas do tipo POST e PUT.
É no corpo da requisição onde você envia dados de um formulário de cadastro em seu site, por exemplo.
O HTTP Response
Depois que o servidor processa sua requisição, ele precisa devolver uma resposta. E isso é feito através de um Response, que nada mais é do que um monte de texto vindo do caminho inverso: do servidor para seu computador.
Esse monte de texto geralmente vai estar em um formato que seu navegador consiga entender: HTML, CSS, Javascript ou até outros formatos como JSON.
Além disso, a Response também vem com o que chamamos de Status Code, que informa o que aconteceu com a requisisição que você mandou.
Os Status Code tem um valor que varia de 100 a 500:
-100: as que começam com 100 são apenas informativas
-200: a partir de 200 significa que a requisição foi bem sucedida
-300: as com 300 querem te falar pra você fazer um redirecionamento, ou seja, uma segunda requisição. Pode ser porque o endereço está errado ou o recurso que você está tentando acessar está em outro endereço
400: aqui significa que tem algum erro na requisição
500: se deu erro 500 e alguma coisa, é erro no servidor
Você pode ver o código de todos as respostas HTTP aqui.
Outros posts que talvez você goste:
11 podcasts de programação e tecnologia que você tem que ouvir
Como encontrar tempo para estudar
Github: o que é? Pra que serve? Por que usar?
4 maneiras de trabalhar com programação no exterior
Quer ficar em dia com os meus posts e novidades?
Participe do grupo no Telegram!
Aproveite e também e inscreva na minha newsletter, me segue no Twitter e na minha página!
Se você gosta dos meus posts, me apoie pra eu manter tudo aqui funcionando!