1 00:00:08,074 --> 00:00:10,510 No desenvolvimento de uma aplicação web. 2 00:00:10,510 --> 00:00:14,881 Uma das principais coisas que a gente vai sentir é o http. 3 00:00:14,948 --> 00:00:19,152 Ele é basicamente a base de tudo o que a gente faz. 4 00:00:19,219 --> 00:00:23,690 E veja, a gente não está falando aqui só de aplicação para o navegador. 5 00:00:23,790 --> 00:00:27,560 O HTTP também está embarcado em aplicações mobile 6 00:00:27,660 --> 00:00:30,363 e mesmo alguns sistemas 7 00:00:30,363 --> 00:00:34,434 que a gente pensa que foram desenvolvidos com a estrutura compilada. 8 00:00:34,534 --> 00:00:38,671 Isso porque ele trabalha muito bem com essa ideia de interação 9 00:00:38,872 --> 00:00:41,107 cliente servidor. 10 00:00:41,107 --> 00:00:44,110 Muito disso se deve aos seus métodos. 11 00:00:44,110 --> 00:00:48,414 E aí a gente pode destacar os principais, que são o gatilho 12 00:00:48,515 --> 00:00:52,485 que eu obtenho informação no post que eu publico. 13 00:00:52,485 --> 00:00:56,055 Uma informação put, eu adiciono 14 00:00:56,122 --> 00:00:59,726 uma informação para alguém que já existe. 15 00:00:59,826 --> 00:01:04,297 No caso, por exemplo, um usuário ou um campo que já está determinado 16 00:01:04,364 --> 00:01:07,567 e diluído aonde eu mando remover alguém? 17 00:01:07,634 --> 00:01:11,571 Foi justamente essa estrutura que moldou todo o mercado de TI 18 00:01:11,571 --> 00:01:15,708 que a gente conhece hoje em dia, principalmente nas aplicações web. 19 00:01:15,775 --> 00:01:18,845 É através deles que a gente consegue enviar, receber 20 00:01:18,845 --> 00:01:22,982 ou alterar algum dado nos sistemas que a gente usa no dia a dia. 21 00:01:23,049 --> 00:01:25,718 Mas esses caras não estão sozinhos. 22 00:01:25,718 --> 00:01:30,390 Em especial porque o HTTP normalmente tem um problema de segurança. 23 00:01:30,490 --> 00:01:34,260 Esses dados eles estão expostos na rede disponível 24 00:01:34,260 --> 00:01:37,096 para qualquer hacker poder acessar. 25 00:01:37,163 --> 00:01:40,700 Justamente por isso que veio o http s, 26 00:01:40,800 --> 00:01:44,704 aonde a gente tem a parte de segurança sendo implementada. 27 00:01:44,771 --> 00:01:48,341 E é nele, por exemplo, que a gente vê a criptografia 28 00:01:48,408 --> 00:01:50,943 dos dados que a gente está operando. 29 00:01:50,943 --> 00:01:56,082 E aqui a gente também vai ter que ter alguns detalhes a apresentar. 30 00:01:56,149 --> 00:02:00,653 Toda URL que esse endereço de acesso às páginas web 31 00:02:00,753 --> 00:02:04,123 vai ser composta por protocolo 32 00:02:04,190 --> 00:02:07,760 no caso HTTP, o HTTPS, 33 00:02:07,860 --> 00:02:10,596 o DNS que a gente está acessando, 34 00:02:10,596 --> 00:02:15,501 que é o nome do domínio da página ou da aplicação que eu quero acessar. 35 00:02:15,601 --> 00:02:20,039 É uma porta que é um número que vai lá no final. 36 00:02:20,139 --> 00:02:23,042 E se você nunca viu esse número antes, 37 00:02:23,042 --> 00:02:26,045 é porque ele é subentendido em alguns casos. 38 00:02:26,212 --> 00:02:29,515 Por exemplo, o HTTP utiliza a porta 39 00:02:29,515 --> 00:02:34,253 80, o HTTPS utiliza a porta quatro, quatro três. 40 00:02:34,353 --> 00:02:35,054 Mas caso 41 00:02:35,054 --> 00:02:39,225 desenvolva, por exemplo, um front end ou um dashboard de API, 42 00:02:39,292 --> 00:02:42,528 é normal a gente colocar esse cara lá na porta 5000. 43 00:02:42,628 --> 00:02:45,231 E aí eu preciso especificar esse endereço. 44 00:02:45,231 --> 00:02:48,434 Se a gente vem aqui, acessa, por exemplo, o site do Google, 45 00:02:48,501 --> 00:02:51,270 a gente já pode ver como é que esse cara vai funcionar. 46 00:02:51,270 --> 00:02:53,839 Notem que a gente já tem aqui 47 00:02:53,839 --> 00:02:56,542 o nosso protocolo HTTPS, 48 00:02:56,542 --> 00:02:59,545 indicando que é só uma conexão segura. 49 00:02:59,779 --> 00:03:05,117 Mas veja, não é porque eu tenho um https aqui que eu estou 100% seguro. 50 00:03:05,184 --> 00:03:10,823 Na realidade isso só diz que eu tenho um certificado em uso, 51 00:03:10,923 --> 00:03:14,527 não necessariamente que esse é o certificado do Google. 52 00:03:14,627 --> 00:03:17,330 Já já a gente vê como é que a gente valida isso. 53 00:03:17,330 --> 00:03:22,134 Na sequência nós temos o endereço DNS do Google 54 00:03:22,234 --> 00:03:27,440 e aqui está subtendido a porta quatro, quatro, três. 55 00:03:27,540 --> 00:03:27,773 Como é 56 00:03:27,773 --> 00:03:30,776 que a gente consegue ver todos esses detalhes? 57 00:03:30,843 --> 00:03:33,579 Se a gente clicar aqui em cima do ícone do Google 58 00:03:33,579 --> 00:03:36,882 ou clica em cima do dia a dia em que aparece? 59 00:03:36,949 --> 00:03:39,819 Quando a gente tem aqui o HTTPS, 60 00:03:39,819 --> 00:03:44,123 nós conseguimos ver as informações desse site. 61 00:03:44,223 --> 00:03:47,626 Por exemplo, ele está indicando que essa conexão a segura. 62 00:03:47,693 --> 00:03:50,296 Se eu clico para pedir mais informações, 63 00:03:50,296 --> 00:03:54,567 ele me traz um briefing e me traz um acesso ao certificado, 64 00:03:54,667 --> 00:03:57,369 aonde eu consigo checar, por exemplo, 65 00:03:57,369 --> 00:04:00,372 quem foi que emitiu esse certificado. 66 00:04:00,439 --> 00:04:05,244 No caso, esse cara foi emitido pra Google por uma companhia chamada GTS. 67 00:04:05,244 --> 00:04:10,716 Será um C3, que no caso é o próprio serviço de segurança da Google. 68 00:04:10,783 --> 00:04:14,120 A gente também consegue ver a data de emissão 69 00:04:14,186 --> 00:04:17,089 e os efeitos de uso desse certificado, 70 00:04:17,089 --> 00:04:19,925 como por exemplo a chave pública. 71 00:04:19,925 --> 00:04:23,329 Isso porque toda comunicação https funciona 72 00:04:23,329 --> 00:04:26,565 baseada em chave pública e privada. 73 00:04:26,632 --> 00:04:29,635 A chave pública a gente vai utilizar 74 00:04:29,635 --> 00:04:33,839 para assinar qualquer dado qualquer e mandar para o servidor, 75 00:04:33,939 --> 00:04:34,573 afinal, 76 00:04:34,573 --> 00:04:37,810 só a chave privada vai abrir esse dado. 77 00:04:37,877 --> 00:04:42,314 Já quando eu assino com a chave privada, a pública consegue abrir. 78 00:04:42,381 --> 00:04:47,119 E isso não é tão interessante quando eu quero garantir segurança. 79 00:04:47,219 --> 00:04:49,121 E aí, como é que eu faço? 80 00:04:49,121 --> 00:04:53,359 Normalmente, quando eu chamo esse site, a gente já negocia ali, 81 00:04:53,359 --> 00:04:58,464 utilizando as chaves públicas, um acordo de senha para a gente 82 00:04:58,464 --> 00:05:02,268 usar um outro certificado privado para a gente usar. 83 00:05:02,334 --> 00:05:05,104 E dessa forma a gente escapa desse problema 84 00:05:05,104 --> 00:05:09,642 do assinar com a chave privada e ler com a chave pública. 85 00:05:09,708 --> 00:05:13,512 Outro detalhe importante é que a gente tem mais algumas informações 86 00:05:13,512 --> 00:05:16,949 e detalhes sobre esse certificado. 87 00:05:17,049 --> 00:05:20,352 Mas voltando aqui no quadradinho, vejam que a gente também 88 00:05:20,352 --> 00:05:26,659 vai ter algumas opções, como os cookies que estão em uso ou mesmo 89 00:05:26,759 --> 00:05:28,093 as informações sobre os 90 00:05:28,093 --> 00:05:32,231 trekkings, que são os acessos que a gente está pedindo. 91 00:05:32,297 --> 00:05:34,900 Os trekkings vão ser referentes a basicamente 92 00:05:34,900 --> 00:05:38,737 qualquer coisa que a gente queira acessar, desde a localização 93 00:05:38,804 --> 00:05:43,342 ou até a possibilidade de armazenar algum dado no computador. 94 00:05:43,442 --> 00:05:47,679 Só que o CUC ele é um pouquinho mais delicado, o cookie. 95 00:05:47,679 --> 00:05:50,949 Teoricamente são dados que nós estamos salvando 96 00:05:50,949 --> 00:05:54,253 nessa máquina para acelerar a nossa página. 97 00:05:54,319 --> 00:05:56,855 Ela é uma espécie de client side 98 00:05:56,855 --> 00:05:59,591 ou processamento do lado cliente, 99 00:05:59,591 --> 00:06:03,529 aonde a gente consegue aliviar o tráfego do servidor, 100 00:06:03,629 --> 00:06:06,965 só que expondo ao risco de ter parte 101 00:06:06,965 --> 00:06:10,302 do meu código disponível na máquina do usuário. 102 00:06:10,369 --> 00:06:14,640 Além disso, Cookie também salva vários outros componentes da página, 103 00:06:14,740 --> 00:06:18,677 como fotos muito acessadas, logomarcas e coisas do gênero. 104 00:06:18,744 --> 00:06:21,380 Então ele está em Minas sendo usado. 105 00:06:21,380 --> 00:06:24,917 O problema é qual dado eu to passando pra ele já. 106 00:06:24,917 --> 00:06:28,887 Quando a gente fala do server side, ele vai compor 107 00:06:28,987 --> 00:06:32,524 todos os dados que a gente tem do lado do servidor 108 00:06:32,591 --> 00:06:35,527 e aí a gente termina tendo um pouco mais de segurança. 109 00:06:35,527 --> 00:06:38,997 Eu vou me preocupar muito com o ataque que vou tentar explorar, 110 00:06:39,097 --> 00:06:42,067 mas isso tudo vai vir via rede 111 00:06:42,100 --> 00:06:47,639 e não simplesmente disponibilizei esse código aberto para todo mundo. 112 00:06:47,739 --> 00:06:48,740 Além disso, 113 00:06:48,740 --> 00:06:52,578 essa nossa interação nem sempre é bem sucedida 114 00:06:52,644 --> 00:06:56,181 e justamente por isso o HTTP tem códigos. 115 00:06:56,281 --> 00:06:59,284 Toda vez que você recebe um código 200, por exemplo, 116 00:06:59,351 --> 00:07:02,554 é porque a sua solicitação deu certo. 117 00:07:02,621 --> 00:07:06,692 Toda a família 200 quer dizer, solicitação bem sucedida. 118 00:07:06,758 --> 00:07:10,062 Já quando a gente fala da família 500, a gente está falando 119 00:07:10,062 --> 00:07:12,030 da família, dos erros. 120 00:07:12,030 --> 00:07:15,667 O famoso erro 404 já está noutra família 121 00:07:15,667 --> 00:07:20,639 para indicar falha no server side, aonde eu não consegui achar o endereço. 122 00:07:20,739 --> 00:07:25,477 Então cada código vai ter ali a sua família 123 00:07:25,544 --> 00:07:30,482 e dentro dessas famílias os erros que ele está justificando. 124 00:07:30,549 --> 00:07:33,552 Veja que só para manter uma aplicação web no ar 125 00:07:33,585 --> 00:07:34,386 a gente já tem que ter 126 00:07:34,386 --> 00:07:38,724 uma série de cuidados e trabalhar minunciosamente vários pontos. 127 00:07:38,824 --> 00:07:41,460 Mas são justamente esses pequenos pontos 128 00:07:41,460 --> 00:07:44,763 que me permitem arquitetar uma solução web 129 00:07:44,830 --> 00:07:48,567 que vai ser ao mesmo tempo útil e segura. E.