Ir ao conteúdo

Visão Geral do Protocolo HTTP e Conceitos REST – (Part 1)

Hoje inicio uma série de posts onde descreverei os principais aspectos do protocolo HTTP, bem como esses conceitos se interconectam com o conceito de REST, que em uma tradução literal significa “Transferência de Estado Representacional“.

Essa representação de estado é consolidada por intermédio de uma abstração da arquitetura Web, e isso significa que os conjuntos de princípios e definições necessárias para a criação de um projeto com interfaces bem definidas já está disponíveis para os desenvolvedores que podem usufruir dessas interfaces utilizando o próprio protocolo HTTP.

Mas afinal, o que é o protocolo HTTP?

HTTP é um protocolo que permite a obtenção de recursos, tal como documentos HTML. Esse protocolo é a base do intercâmbio de dados que ocorre na Web.

O protocolo HTTP trabalha sob a perspectiva da arquitetura client-server (cliente-servidor), o que significa, que todas as requisições são iniciadas pelo destinatário, por exemplo um navegador Web, e essas requisições são processadas por um Servidor-Web e respondidas aos solicitantes de acordo com o recurso solicitado na requisição.

Os clientes e servidores se comunicam trocando mensagens individuais (ao contrário de um fluxo de dados). As mensagens enviadas pelo cliente, são chamadas de REQUESTS e as mensagens enviadas pelo servidor (devolvidas após uma requisição – request) são chamadas de RESPONSES.

Exemplificando o vamos imaginar que abrimos um Brower e digitamos https://www.google.com.

Essas quatro letrinhas iniciais http é justamente o nome do protocolo que estamos utilizando para se “relacionar” como o endereço google.com. Neste exemplo, é estabelecido por intermédio do protocolo http que tanto o cliente (nosso brower) quanto o servidor (computador remoto que armazenas documentos, imagens, áudios, documentos html e etc) utilizarão as mesmas regras de comunicação, regras essa estabelecida pelo protocolo http. Interessante né?

Uma vez esclarecida a importância e o por quê o protocolo HTTP é utilizando atualmente como um dos principais protocolos da Web, é importante destacar que todo o transporte de dados, ao qual o protocolo http trafega é conhecido como TCP/IP – protocolo de transporte de dados.

TCP/IP: é um conjunto de protocolos sendo o INTERNET PROTOCOL (IP) responsável pela rota e o TRANSMISSION CONTROL PROTOCOL (TCP) é responsável por assegurar que a mensagem seja enviada e sem danos aos destinatário.

Dessa forma então podemos concluir que o TCP/IP é o protocolo responsável pelo transporte de dados e o http é o protocolo responsável pelas “regras de comunicação” entre o cliente e servidor.

Abaixo segue uma representação visual de como a comunição de solicitações (request) e respostas (responses) ocorrem:

Métodos HTTP

Um método HTTP, geralmente é um verbo como GET, POST, DELETE, PUT, etc, ou um substantivo como OPTIONS ou HEAD que define qual operação o cliente quer fazer, como quando um cliente quer pegar um recurso (usando GET) ou publicar dados de um formulário HTML (usando POST), embora mais operações podem ser necessárias em outros casos.

Quando desejamos nos comunicar com um recurso por intermédio do protocolo HTTP, primeiro definimos o tipo de operação que desejamos realizar. Isso é expressado utilizando um dos verbos supramencionados, seguindo as demais premissas:

Requests (requisições)

O caminho do recurso a ser buscado;

a URL do recurso sem os elementos que são de contexto, por exemplo sem o protocolo protocol (http://), o domínio domain (aqui como developer.mozilla.org), ou a porta port TCP (aqui indicada pelo 80 que é ocultado por ser o número da porta padrão)

A versão do protocolo HTTP.

Cabeçalhos opcionais que contém informações adicionais para os servidores.

Ou um corpo de dados, para alguns métodos como POST, similares aos corpos das respostas, que contém o recurso requisitado.

A próxima imagem ilustra a formatação de uma requisão HTTP GET:

Fonte: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview

Responses (respostas) consistem dos seguintes elementos:

A versão do protocolo HTTP que elas seguem.

Um código de status, indicando se a requisição foi bem sucedida, ou não, e por quê.

Uma mensagem de status, uma pequena descrição informal sobre o código de status.

Cabeçalhos HTTP, como aqueles das requisições.

Opcionalmente, um corpo com dados do recurso requisitado.

Fonte: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview

Neste primeiro post, iniciei com os principais aspectos do protocolo HTTP, vimos o que é o REST e também elencamos os principais métodos HTTP. Nos próximo post trarei para vocês uma visão sobre aspectos de idempotência dos métodos HTTP e sua importância, também veremos algumas terminologias utilizadas quando trabalhamos com APIs Web de uma forma geral.

Espero que tenhham gostado e até o próximo post.

Abraços…

Publicado emREST

3 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *