No desenvolvimento de uma aplicação web.
Uma das principais coisas
que a gente vai sentir é o http.
Ele é basicamente a base de tudo
o que a gente faz.
E veja, a gente não está falando aqui
só de aplicação para o navegador.
O HTTP também está embarcado
em aplicações mobile
e mesmo alguns sistemas
que a gente pensa 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í a gente pode destacar os principais,
que são o gatilho
que eu obtenho informação no 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 diluído aonde eu mando remover alguém?
Foi justamente essa estrutura
que moldou todo o mercado de TI
que a gente conhece hoje em dia,
principalmente nas aplicações web.
É através deles que a gente consegue
enviar, receber
ou alterar algum dado nos sistemas
que a gente usa 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
eles estão expostos na rede disponível
para qualquer hacker poder acessar.
Justamente por isso que veio o http s,
aonde a gente tem a parte de segurança
sendo implementada.
E é nele, por exemplo,
que a gente vê a criptografia
dos dados que a gente está operando.
E aqui a gente também vai ter que ter
alguns detalhes a apresentar.
Toda URL
que esse endereço de acesso às páginas web
vai ser composta por protocolo
no caso HTTP, o HTTPS,
o DNS que a gente está acessando,
que é o nome do domínio da página
ou da aplicação que eu quero acessar.
É 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 quatro, quatro três.
Mas caso
desenvolva, por exemplo,
um front end ou um dashboard de API,
é normal a gente colocar esse cara
lá na porta 5000.
E aí eu preciso especificar esse endereço.
Se a gente vem aqui, acessa, por exemplo,
o site do Google,
a gente já pode ver
como é que esse cara vai funcionar.
Notem que a gente já tem 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á a gente
vê como é que a gente valida isso.
Na sequência
nós temos o endereço DNS do Google
e aqui está subtendido
a porta quatro, quatro, três.
Como é
que a gente consegue ver
todos esses detalhes?
Se a gente clicar aqui
em cima do ícone do Google
ou clica em cima do dia
a dia em que aparece?
Quando a gente tem 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,
aonde eu consigo checar, por exemplo,
quem foi que emitiu esse certificado.
No caso, esse cara foi emitido pra Google
por uma companhia chamada GTS.
Será um C3, que no caso é o próprio
serviço de segurança da Google.
A gente também consegue 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 a gente vai utilizar
para assinar qualquer
dado qualquer 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.