-
No desenvolvimento
de uma aplicação web,
-
uma das principais coisas
que vamos ter é o http,
-
ele é basicamente a base de tudo
o que nós fazemos.
-
E veja, não estamos falando aqui
só de aplicação para o navegador,
-
o HTTP também está embarcado
em aplicações mobile
-
e mesmo alguns sistemas que nós
pensamos que foram desenvolvidos
-
com a estrutura compilada.
-
Isso porque ele trabalha
muito bem
-
com essa ideia de interação
cliente servidor.
-
Muito disso se deve
aos seus métodos.
-
E aí podemos destacar os principais,
-
que são: o GET
que eu obtenho informação,
-
o POST que eu publico
uma informação,
-
PUT, eu adiciono uma informação
para alguém que já existe.
-
No caso, por exemplo, um usuário
ou um campo que já está determinado
-
e DELETE onde eu mando
remover alguém.
-
Foi justamente essa estrutura
-
que moldou todo o mercado de TI
que conhecemos hoje em dia,
-
principalmente
nas aplicações web.
-
É através deles que conseguimos
-
enviar, receber ou alterar
algum dado
-
nos sistemas que usamos
no dia a dia.
-
Mas esses caras
não estão sozinhos,
-
em especial porque o HTTP
-
normalmente tem um problema
de segurança.
-
Esses dados estão expostos
na rede
-
disponível para qualquer hacker
poder acessar.
-
Justamente por isso
que veio o https,
-
onde temos a parte de segurança
sendo implementada.
-
E é nele, por exemplo,
-
que ganhamos a criptografia
-
dos dados
que estamos operando.
-
E aqui também vamos ter que ter
alguns detalhes a se atentar
-
toda URL que esse endereço
de acesso às páginas web
-
será composta
por protocolo
-
no caso HTTP,
o HTTPS,
-
o DNS que
estamos acessando,
-
que é o nome do domínio da página
ou da aplicação que eu quero acessar,
-
e uma porta, que é um número
que vai lá no final.
-
E se você nunca viu
esse número antes,
-
é porque ele é subentendido
em alguns casos.
-
Por exemplo,
o HTTP utiliza a porta 80,
-
o HTTPS utiliza
a porta 443.
-
Mas caso desenvolva,
por exemplo,
-
um front end ou um
dashboard de API,
-
é normal colocarmos esse cara
lá na porta 5000,
-
e aí eu preciso especificar
esse endereço.
-
Se nós acessamos, por exemplo,
o site do Google,
-
já podemos ver
como é que esse cara vai funcionar.
-
Notem que já temos aqui
o nosso protocolo HTTPS,
-
indicando que é só
uma conexão segura.
-
Mas veja, não é porque
eu tenho um https aqui
-
que eu estou 100% seguro.
-
Na realidade isso só diz
que eu tenho um certificado em uso,
-
não necessariamente
que esse é o certificado do Google,
-
já já nós vamos ver como
é que validamos isso.
-
Na sequência
nós temos o endereço DNS do Google
-
e aqui está subtendido
a porta 443.
-
"Professor, como é que conseguimos
vertodos esses detalhes?"
-
se clicarmos aqui
em cima do ícone do Google
-
ou clicar em cima
do cadeado que aparece
-
quando temos
aqui o HTTPS,
-
nós conseguimos ver
as informações desse site.
-
Por exemplo, ele está indicando
que essa conexão a segura,
-
se eu clico para pedir
mais informações,
-
ele me traz um briefing
e me traz um acesso ao certificado.
-
Onde eu consigo checar,
por exemplo,
-
quem foi que emitiu
esse certificado.
-
No caso, esse certificado
foi emitido para o Google
-
por uma companhia
chamada "GTS CA 1C3"
-
que no caso é o próprio
serviço de segurança da Google.
-
Também conseguimos ver
a data de emissão
-
e os efeitos de uso
desse certificado,
-
como por exemplo
a chave pública.
-
Isso porque toda comunicação https
-
funciona baseada
em chave pública e privada.
-
A chave pública
nós vamos utilizar
-
para assinar qualquer dado
e mandar para o servidor,
-
afinal, só a chave privada
vai abrir esse dado.
-
Já quando eu assino com a chave privada,
a pública consegue abrir,
-
e isso não é tão interessante
quando eu quero garantir segurança.
-
E aí, como é que eu faço?
-
Normalmente, quando eu chamo esse site,
a gente já negocia ali,
-
utilizando as chaves públicas,
um acordo de senha para a gente
-
usar um outro certificado privado
para a gente usar.
-
E dessa forma a gente escapa
desse problema
-
do assinar com a chave privada
e ler com a chave pública.
-
Outro detalhe importante
é que a gente tem mais algumas informações
-
e detalhes sobre esse certificado.
-
Mas voltando aqui no quadradinho,
vejam que a gente também
-
vai ter algumas opções,
como os cookies que estão em uso ou mesmo
-
as informações sobre os
-
trekkings, que são os acessos
que a gente está pedindo.
-
Os trekkings vão ser referentes
a basicamente
-
qualquer coisa que a gente queira acessar,
desde a localização
-
ou até a possibilidade de armazenar
algum dado no computador.
-
Só que o CUC ele
é um pouquinho mais delicado, o cookie.
-
Teoricamente
são dados que nós estamos salvando
-
nessa máquina
para acelerar a nossa página.
-
Ela é uma espécie de client side
-
ou processamento do lado cliente,
-
aonde a gente
consegue aliviar o tráfego do servidor,
-
só que expondo ao risco de ter parte
-
do meu código disponível
na máquina do usuário.
-
Além disso, Cookie também salva
vários outros componentes da página,
-
como fotos muito acessadas,
logomarcas e coisas do gênero.
-
Então ele está em Minas sendo usado.
-
O problema é qual dado eu to passando
pra ele já.
-
Quando a gente fala do server side,
ele vai compor
-
todos os dados
que a gente tem do lado do servidor
-
e aí a gente termina
tendo um pouco mais de segurança.
-
Eu vou me preocupar muito com o ataque
que vou tentar explorar,
-
mas isso tudo vai vir via rede
-
e não simplesmente disponibilizei esse
código aberto para todo mundo.
-
Além disso,
-
essa nossa
interação nem sempre é bem sucedida
-
e justamente por isso o HTTP tem códigos.
-
Toda vez que você recebe um código
200, por exemplo,
-
é porque a sua solicitação deu certo.
-
Toda a família 200
quer dizer, solicitação bem sucedida.
-
Já quando a gente fala da família 500,
a gente está falando
-
da família, dos erros.
-
O famoso erro 404 já está noutra família
-
para indicar falha no server side,
aonde eu não consegui achar o endereço.
-
Então cada código
vai ter ali a sua família
-
e dentro dessas famílias
os erros que ele está justificando.
-
Veja que só para manter uma aplicação
web no ar
-
a gente já tem que ter
-
uma série de cuidados
e trabalhar minunciosamente vários pontos.
-
Mas são justamente esses pequenos pontos
-
que me permitem arquitetar uma solução web
-
que vai ser ao
mesmo tempo útil e segura. E.