-
Notifications
You must be signed in to change notification settings - Fork 1
O básico sobre o protocolo HTTP
Esse tópico sobre protocolo HTTP tem a intenção de ser básico e mostrar o suficiente pra quem está iniciando conseguir prosseguir sem problemas. A ideia é não aprofundar muito nos detalhes e deixar as coisas o mais simples possível. Para detalhes mais a fundo, você pode consultar essa documentação.
O Hypertext Transfer Protocol, sigla HTTP (em português Protocolo de Transferência de Hipertexto) é um protocolo que permite a obtenção de recursos, como documentos HTML. É a base de qualquer troca de dados na Web e um protocolo cliente-servidor, o que significa que os pedidos são iniciados pelo destinatário, geralmente o navegador da Web.
As mensagens enviadas pelo cliente, geralmente um navegador da Web, são chamadas de requisições (requests), e as mensagens enviadas pelo servidor como resposta são chamadas de resposta (response). Clientes e servidores se comunicam trocando mensagens individuais, ou seja, cada requisição gera uma resposta.
Pensando de maneira mais prática, quando você digita a URL https://github.com/unb-cic-esw/Desenvolvendo-Software
no navegador e aperta enter, ocorre o seguinte:
- O navegador vai criar uma requisição com parâmetros como
ResquestURL: https://github.com/unb-cic-esw/Desenvolvendo-Software
RequestMethod: GET
...
(O GET será explicado mais a frente)
- A requisição é enviada ao servidor do Github.
- O servidor tem mapeado qual página (ou recurso) ele deve buscar quando uma requisição para
unb-cic-esw/Desenvolvendo-Software
é feita. Tal recurso, no caso, é uma página HTML, e outros elementos associados como CSS, JS, etc. - O navegador interpreta o HTML e mostra a página que podemos ver aqui.
O protocolo HTTP define uma série de Métodos de Requisição responsáveis por indicar a ação a ser executada na representação de um determinado recurso. Isso quer dizer que os métodos definem comportamentos e significados diferentes para uma requisição.
Quando você faz o cria uma aplicação, ela pode fazer requisição para outras APIs. O método de requisição HTTP é definido na criação da requisição HTTP. Existem outros métodos, mas os mais interessantes para agora começo são:
O Método GET é utilizado para solicitar uma representação de um recurso específico, requisições utilizando o Método GET devem retornar apenas dados. E.g. :
>>> import requests
>>>
>>> response = requests.get('http://httpbin.org/ip')
>>> response.content
b'{\n "origin": "189.6.17.123"\n}\n'
>>> import requests
>>>
>>> payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
>>>
>>> response = requests.get('http://httpbin.org/get', params=payload)
>>> print(response.url)
http://httpbin.org/get?key1=value1&key2=value2&key2=value3
O Método POST é utilizado para submeter uma entidade a um recurso específico, às vezes causando uma mudança no estado do recurso ou solicitando alterações do lado do servidor. E.g. :
>>> import requests
>>>
>>> response = requests.post('http://httpbin.org/post', data={'key': '123'})
>>> response.content
b'{\n "args": {}, \n "data": "", \n "files": {}, \n "form": {\n "key": "123"\n }, \n "headers": {\n "Accept": "*/*", \n "Accept-Encoding": "gzip, deflate", \n "Connection": "close", \n "Content-Length": "7", \n "Content-Type": "application/x-www-form-urlencoded", \n "Host": "httpbin.org", \n "User-Agent": "python-requests/2.18.4"\n }, \n "json": null, \n "origin": "189.6.17.123", \n "url": "http://httpbin.org/post"\n}\n'
O Método PUT substitui todas as atuais representações de seu recurso alvo pela carga de dados da requisição.
O Método DELETE remove um recurso específico.
Explanation HTTP for Dummies - https://www.youtube.com/watch?v=MBwdO30YsGs
Como funciona uma requisição HTTP? - https://www.youtube.com/watch?v=fhAXgcD21iE&t=1s
- Página Principal
- Métricas de Software
-
CI (Continuous integration)
- O que é integração contínua? [TODO]
- CD (Continuous deployment)
- API Rest
- Guia de API Rest para servir Data Viz