0:00:08.074,0:00:10.510 No desenvolvimento de uma aplicação web. 0:00:10.510,0:00:14.881 Uma das principais coisas[br]que a gente vai sentir é o http. 0:00:14.948,0:00:19.152 Ele é basicamente a base de tudo[br]o que a gente faz. 0:00:19.219,0:00:23.690 E veja, a gente não está falando aqui[br]só de aplicação para o navegador. 0:00:23.790,0:00:27.560 O HTTP também está embarcado[br]em aplicações mobile 0:00:27.660,0:00:30.363 e mesmo alguns sistemas 0:00:30.363,0:00:34.434 que a gente pensa que foram desenvolvidos[br]com a estrutura compilada. 0:00:34.534,0:00:38.671 Isso porque ele trabalha[br]muito bem com essa ideia de interação 0:00:38.872,0:00:41.107 cliente servidor. 0:00:41.107,0:00:44.110 Muito disso se deve aos seus métodos. 0:00:44.110,0:00:48.414 E aí a gente pode destacar os principais,[br]que são o gatilho 0:00:48.515,0:00:52.485 que eu obtenho informação no post[br]que eu publico. 0:00:52.485,0:00:56.055 Uma informação put, eu adiciono 0:00:56.122,0:00:59.726 uma informação para alguém que já existe. 0:00:59.826,0:01:04.297 No caso, por exemplo, um usuário[br]ou um campo que já está determinado 0:01:04.364,0:01:07.567 e diluído aonde eu mando remover alguém? 0:01:07.634,0:01:11.571 Foi justamente essa estrutura[br]que moldou todo o mercado de TI 0:01:11.571,0:01:15.708 que a gente conhece hoje em dia,[br]principalmente nas aplicações web. 0:01:15.775,0:01:18.845 É através deles que a gente consegue[br]enviar, receber 0:01:18.845,0:01:22.982 ou alterar algum dado nos sistemas[br]que a gente usa no dia a dia. 0:01:23.049,0:01:25.718 Mas esses caras não estão sozinhos. 0:01:25.718,0:01:30.390 Em especial porque o HTTP normalmente[br]tem um problema de segurança. 0:01:30.490,0:01:34.260 Esses dados[br]eles estão expostos na rede disponível 0:01:34.260,0:01:37.096 para qualquer hacker poder acessar. 0:01:37.163,0:01:40.700 Justamente por isso que veio o http s, 0:01:40.800,0:01:44.704 aonde a gente tem a parte de segurança[br]sendo implementada. 0:01:44.771,0:01:48.341 E é nele, por exemplo,[br]que a gente vê a criptografia 0:01:48.408,0:01:50.943 dos dados que a gente está operando. 0:01:50.943,0:01:56.082 E aqui a gente também vai ter que ter[br]alguns detalhes a apresentar. 0:01:56.149,0:02:00.653 Toda URL[br]que esse endereço de acesso às páginas web 0:02:00.753,0:02:04.123 vai ser composta por protocolo 0:02:04.190,0:02:07.760 no caso HTTP, o HTTPS, 0:02:07.860,0:02:10.596 o DNS que a gente está acessando, 0:02:10.596,0:02:15.501 que é o nome do domínio da página[br]ou da aplicação que eu quero acessar. 0:02:15.601,0:02:20.039 É uma porta[br]que é um número que vai lá no final. 0:02:20.139,0:02:23.042 E se você nunca viu esse número antes, 0:02:23.042,0:02:26.045 é porque ele é subentendido em alguns[br]casos. 0:02:26.212,0:02:29.515 Por exemplo, o HTTP utiliza a porta 0:02:29.515,0:02:34.253 80, o HTTPS utiliza[br]a porta quatro, quatro três. 0:02:34.353,0:02:35.054 Mas caso 0:02:35.054,0:02:39.225 desenvolva, por exemplo,[br]um front end ou um dashboard de API, 0:02:39.292,0:02:42.528 é normal a gente colocar esse cara[br]lá na porta 5000. 0:02:42.628,0:02:45.231 E aí eu preciso especificar esse endereço. 0:02:45.231,0:02:48.434 Se a gente vem aqui, acessa, por exemplo,[br]o site do Google, 0:02:48.501,0:02:51.270 a gente já pode ver[br]como é que esse cara vai funcionar. 0:02:51.270,0:02:53.839 Notem que a gente já tem aqui 0:02:53.839,0:02:56.542 o nosso protocolo HTTPS, 0:02:56.542,0:02:59.545 indicando que é só uma conexão segura. 0:02:59.779,0:03:05.117 Mas veja, não é porque eu tenho um https[br]aqui que eu estou 100% seguro. 0:03:05.184,0:03:10.823 Na realidade isso só diz[br]que eu tenho um certificado em uso, 0:03:10.923,0:03:14.527 não necessariamente[br]que esse é o certificado do Google. 0:03:14.627,0:03:17.330 Já já a gente[br]vê como é que a gente valida isso. 0:03:17.330,0:03:22.134 Na sequência[br]nós temos o endereço DNS do Google 0:03:22.234,0:03:27.440 e aqui está subtendido[br]a porta quatro, quatro, três. 0:03:27.540,0:03:27.773 Como é 0:03:27.773,0:03:30.776 que a gente consegue ver[br]todos esses detalhes? 0:03:30.843,0:03:33.579 Se a gente clicar aqui[br]em cima do ícone do Google 0:03:33.579,0:03:36.882 ou clica em cima do dia[br]a dia em que aparece? 0:03:36.949,0:03:39.819 Quando a gente tem aqui o HTTPS, 0:03:39.819,0:03:44.123 nós conseguimos ver as informações desse[br]site. 0:03:44.223,0:03:47.626 Por exemplo, ele está indicando[br]que essa conexão a segura. 0:03:47.693,0:03:50.296 Se eu clico para pedir mais informações, 0:03:50.296,0:03:54.567 ele me traz um briefing[br]e me traz um acesso ao certificado, 0:03:54.667,0:03:57.369 aonde eu consigo checar, por exemplo, 0:03:57.369,0:04:00.372 quem foi que emitiu esse certificado. 0:04:00.439,0:04:05.244 No caso, esse cara foi emitido pra Google[br]por uma companhia chamada GTS. 0:04:05.244,0:04:10.716 Será um C3, que no caso é o próprio[br]serviço de segurança da Google. 0:04:10.783,0:04:14.120 A gente também consegue ver[br]a data de emissão 0:04:14.186,0:04:17.089 e os efeitos de uso desse certificado, 0:04:17.089,0:04:19.925 como por exemplo a chave pública. 0:04:19.925,0:04:23.329 Isso porque toda comunicação https[br]funciona 0:04:23.329,0:04:26.565 baseada em chave pública e privada. 0:04:26.632,0:04:29.635 A chave pública a gente vai utilizar 0:04:29.635,0:04:33.839 para assinar qualquer[br]dado qualquer e mandar para o servidor, 0:04:33.939,0:04:34.573 afinal, 0:04:34.573,0:04:37.810 só a chave privada vai abrir esse dado. 0:04:37.877,0:04:42.314 Já quando eu assino com a chave privada,[br]a pública consegue abrir. 0:04:42.381,0:04:47.119 E isso não é tão interessante[br]quando eu quero garantir segurança. 0:04:47.219,0:04:49.121 E aí, como é que eu faço? 0:04:49.121,0:04:53.359 Normalmente, quando eu chamo esse site,[br]a gente já negocia ali, 0:04:53.359,0:04:58.464 utilizando as chaves públicas,[br]um acordo de senha para a gente 0:04:58.464,0:05:02.268 usar um outro certificado privado[br]para a gente usar. 0:05:02.334,0:05:05.104 E dessa forma a gente escapa[br]desse problema 0:05:05.104,0:05:09.642 do assinar com a chave privada[br]e ler com a chave pública. 0:05:09.708,0:05:13.512 Outro detalhe importante[br]é que a gente tem mais algumas informações 0:05:13.512,0:05:16.949 e detalhes sobre esse certificado. 0:05:17.049,0:05:20.352 Mas voltando aqui no quadradinho,[br]vejam que a gente também 0:05:20.352,0:05:26.659 vai ter algumas opções,[br]como os cookies que estão em uso ou mesmo 0:05:26.759,0:05:28.093 as informações sobre os 0:05:28.093,0:05:32.231 trekkings, que são os acessos[br]que a gente está pedindo. 0:05:32.297,0:05:34.900 Os trekkings vão ser referentes[br]a basicamente 0:05:34.900,0:05:38.737 qualquer coisa que a gente queira acessar,[br]desde a localização 0:05:38.804,0:05:43.342 ou até a possibilidade de armazenar[br]algum dado no computador. 0:05:43.442,0:05:47.679 Só que o CUC ele[br]é um pouquinho mais delicado, o cookie. 0:05:47.679,0:05:50.949 Teoricamente[br]são dados que nós estamos salvando 0:05:50.949,0:05:54.253 nessa máquina[br]para acelerar a nossa página. 0:05:54.319,0:05:56.855 Ela é uma espécie de client side 0:05:56.855,0:05:59.591 ou processamento do lado cliente, 0:05:59.591,0:06:03.529 aonde a gente[br]consegue aliviar o tráfego do servidor, 0:06:03.629,0:06:06.965 só que expondo ao risco de ter parte 0:06:06.965,0:06:10.302 do meu código disponível[br]na máquina do usuário. 0:06:10.369,0:06:14.640 Além disso, Cookie também salva[br]vários outros componentes da página, 0:06:14.740,0:06:18.677 como fotos muito acessadas,[br]logomarcas e coisas do gênero. 0:06:18.744,0:06:21.380 Então ele está em Minas sendo usado. 0:06:21.380,0:06:24.917 O problema é qual dado eu to passando[br]pra ele já. 0:06:24.917,0:06:28.887 Quando a gente fala do server side,[br]ele vai compor 0:06:28.987,0:06:32.524 todos os dados[br]que a gente tem do lado do servidor 0:06:32.591,0:06:35.527 e aí a gente termina[br]tendo um pouco mais de segurança. 0:06:35.527,0:06:38.997 Eu vou me preocupar muito com o ataque[br]que vou tentar explorar, 0:06:39.097,0:06:42.067 mas isso tudo vai vir via rede 0:06:42.100,0:06:47.639 e não simplesmente disponibilizei esse[br]código aberto para todo mundo. 0:06:47.739,0:06:48.740 Além disso, 0:06:48.740,0:06:52.578 essa nossa[br]interação nem sempre é bem sucedida 0:06:52.644,0:06:56.181 e justamente por isso o HTTP tem códigos. 0:06:56.281,0:06:59.284 Toda vez que você recebe um código[br]200, por exemplo, 0:06:59.351,0:07:02.554 é porque a sua solicitação deu certo. 0:07:02.621,0:07:06.692 Toda a família 200[br]quer dizer, solicitação bem sucedida. 0:07:06.758,0:07:10.062 Já quando a gente fala da família 500,[br]a gente está falando 0:07:10.062,0:07:12.030 da família, dos erros. 0:07:12.030,0:07:15.667 O famoso erro 404 já está noutra família 0:07:15.667,0:07:20.639 para indicar falha no server side,[br]aonde eu não consegui achar o endereço. 0:07:20.739,0:07:25.477 Então cada código[br]vai ter ali a sua família 0:07:25.544,0:07:30.482 e dentro dessas famílias[br]os erros que ele está justificando. 0:07:30.549,0:07:33.552 Veja que só para manter uma aplicação[br]web no ar 0:07:33.585,0:07:34.386 a gente já tem que ter 0:07:34.386,0:07:38.724 uma série de cuidados[br]e trabalhar minunciosamente vários pontos. 0:07:38.824,0:07:41.460 Mas são justamente esses pequenos pontos 0:07:41.460,0:07:44.763 que me permitem arquitetar uma solução web 0:07:44.830,0:07:48.567 que vai ser ao[br]mesmo tempo útil e segura. E.