[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:08.07,0:00:10.51,Default,,0000,0000,0000,,No desenvolvimento de uma aplicação web. Dialogue: 0,0:00:10.51,0:00:14.88,Default,,0000,0000,0000,,Uma das principais coisas\Nque a gente vai sentir é o http. Dialogue: 0,0:00:14.95,0:00:19.15,Default,,0000,0000,0000,,Ele é basicamente a base de tudo\No que a gente faz. Dialogue: 0,0:00:19.22,0:00:23.69,Default,,0000,0000,0000,,E veja, a gente não está falando aqui\Nsó de aplicação para o navegador. Dialogue: 0,0:00:23.79,0:00:27.56,Default,,0000,0000,0000,,O HTTP também está embarcado\Nem aplicações mobile Dialogue: 0,0:00:27.66,0:00:30.36,Default,,0000,0000,0000,,e mesmo alguns sistemas Dialogue: 0,0:00:30.36,0:00:34.43,Default,,0000,0000,0000,,que a gente pensa que foram desenvolvidos\Ncom a estrutura compilada. Dialogue: 0,0:00:34.53,0:00:38.67,Default,,0000,0000,0000,,Isso porque ele trabalha\Nmuito bem com essa ideia de interação Dialogue: 0,0:00:38.87,0:00:41.11,Default,,0000,0000,0000,,cliente servidor. Dialogue: 0,0:00:41.11,0:00:44.11,Default,,0000,0000,0000,,Muito disso se deve aos seus métodos. Dialogue: 0,0:00:44.11,0:00:48.41,Default,,0000,0000,0000,,E aí a gente pode destacar os principais,\Nque são o gatilho Dialogue: 0,0:00:48.52,0:00:52.48,Default,,0000,0000,0000,,que eu obtenho informação no post\Nque eu publico. Dialogue: 0,0:00:52.48,0:00:56.06,Default,,0000,0000,0000,,Uma informação put, eu adiciono Dialogue: 0,0:00:56.12,0:00:59.73,Default,,0000,0000,0000,,uma informação para alguém que já existe. Dialogue: 0,0:00:59.83,0:01:04.30,Default,,0000,0000,0000,,No caso, por exemplo, um usuário\Nou um campo que já está determinado Dialogue: 0,0:01:04.36,0:01:07.57,Default,,0000,0000,0000,,e diluído aonde eu mando remover alguém? Dialogue: 0,0:01:07.63,0:01:11.57,Default,,0000,0000,0000,,Foi justamente essa estrutura\Nque moldou todo o mercado de TI Dialogue: 0,0:01:11.57,0:01:15.71,Default,,0000,0000,0000,,que a gente conhece hoje em dia,\Nprincipalmente nas aplicações web. Dialogue: 0,0:01:15.78,0:01:18.84,Default,,0000,0000,0000,,É através deles que a gente consegue\Nenviar, receber Dialogue: 0,0:01:18.84,0:01:22.98,Default,,0000,0000,0000,,ou alterar algum dado nos sistemas\Nque a gente usa no dia a dia. Dialogue: 0,0:01:23.05,0:01:25.72,Default,,0000,0000,0000,,Mas esses caras não estão sozinhos. Dialogue: 0,0:01:25.72,0:01:30.39,Default,,0000,0000,0000,,Em especial porque o HTTP normalmente\Ntem um problema de segurança. Dialogue: 0,0:01:30.49,0:01:34.26,Default,,0000,0000,0000,,Esses dados\Neles estão expostos na rede disponível Dialogue: 0,0:01:34.26,0:01:37.10,Default,,0000,0000,0000,,para qualquer hacker poder acessar. Dialogue: 0,0:01:37.16,0:01:40.70,Default,,0000,0000,0000,,Justamente por isso que veio o http s, Dialogue: 0,0:01:40.80,0:01:44.70,Default,,0000,0000,0000,,aonde a gente tem a parte de segurança\Nsendo implementada. Dialogue: 0,0:01:44.77,0:01:48.34,Default,,0000,0000,0000,,E é nele, por exemplo,\Nque a gente vê a criptografia Dialogue: 0,0:01:48.41,0:01:50.94,Default,,0000,0000,0000,,dos dados que a gente está operando. Dialogue: 0,0:01:50.94,0:01:56.08,Default,,0000,0000,0000,,E aqui a gente também vai ter que ter\Nalguns detalhes a apresentar. Dialogue: 0,0:01:56.15,0:02:00.65,Default,,0000,0000,0000,,Toda URL\Nque esse endereço de acesso às páginas web Dialogue: 0,0:02:00.75,0:02:04.12,Default,,0000,0000,0000,,vai ser composta por protocolo Dialogue: 0,0:02:04.19,0:02:07.76,Default,,0000,0000,0000,,no caso HTTP, o HTTPS, Dialogue: 0,0:02:07.86,0:02:10.60,Default,,0000,0000,0000,,o DNS que a gente está acessando, Dialogue: 0,0:02:10.60,0:02:15.50,Default,,0000,0000,0000,,que é o nome do domínio da página\Nou da aplicação que eu quero acessar. Dialogue: 0,0:02:15.60,0:02:20.04,Default,,0000,0000,0000,,É uma porta\Nque é um número que vai lá no final. Dialogue: 0,0:02:20.14,0:02:23.04,Default,,0000,0000,0000,,E se você nunca viu esse número antes, Dialogue: 0,0:02:23.04,0:02:26.04,Default,,0000,0000,0000,,é porque ele é subentendido em alguns\Ncasos. Dialogue: 0,0:02:26.21,0:02:29.52,Default,,0000,0000,0000,,Por exemplo, o HTTP utiliza a porta Dialogue: 0,0:02:29.52,0:02:34.25,Default,,0000,0000,0000,,80, o HTTPS utiliza\Na porta quatro, quatro três. Dialogue: 0,0:02:34.35,0:02:35.05,Default,,0000,0000,0000,,Mas caso Dialogue: 0,0:02:35.05,0:02:39.22,Default,,0000,0000,0000,,desenvolva, por exemplo,\Num front end ou um dashboard de API, Dialogue: 0,0:02:39.29,0:02:42.53,Default,,0000,0000,0000,,é normal a gente colocar esse cara\Nlá na porta 5000. Dialogue: 0,0:02:42.63,0:02:45.23,Default,,0000,0000,0000,,E aí eu preciso especificar esse endereço. Dialogue: 0,0:02:45.23,0:02:48.43,Default,,0000,0000,0000,,Se a gente vem aqui, acessa, por exemplo,\No site do Google, Dialogue: 0,0:02:48.50,0:02:51.27,Default,,0000,0000,0000,,a gente já pode ver\Ncomo é que esse cara vai funcionar. Dialogue: 0,0:02:51.27,0:02:53.84,Default,,0000,0000,0000,,Notem que a gente já tem aqui Dialogue: 0,0:02:53.84,0:02:56.54,Default,,0000,0000,0000,,o nosso protocolo HTTPS, Dialogue: 0,0:02:56.54,0:02:59.54,Default,,0000,0000,0000,,indicando que é só uma conexão segura. Dialogue: 0,0:02:59.78,0:03:05.12,Default,,0000,0000,0000,,Mas veja, não é porque eu tenho um https\Naqui que eu estou 100% seguro. Dialogue: 0,0:03:05.18,0:03:10.82,Default,,0000,0000,0000,,Na realidade isso só diz\Nque eu tenho um certificado em uso, Dialogue: 0,0:03:10.92,0:03:14.53,Default,,0000,0000,0000,,não necessariamente\Nque esse é o certificado do Google. Dialogue: 0,0:03:14.63,0:03:17.33,Default,,0000,0000,0000,,Já já a gente\Nvê como é que a gente valida isso. Dialogue: 0,0:03:17.33,0:03:22.13,Default,,0000,0000,0000,,Na sequência\Nnós temos o endereço DNS do Google Dialogue: 0,0:03:22.23,0:03:27.44,Default,,0000,0000,0000,,e aqui está subtendido\Na porta quatro, quatro, três. Dialogue: 0,0:03:27.54,0:03:27.77,Default,,0000,0000,0000,,Como é Dialogue: 0,0:03:27.77,0:03:30.78,Default,,0000,0000,0000,,que a gente consegue ver\Ntodos esses detalhes? Dialogue: 0,0:03:30.84,0:03:33.58,Default,,0000,0000,0000,,Se a gente clicar aqui\Nem cima do ícone do Google Dialogue: 0,0:03:33.58,0:03:36.88,Default,,0000,0000,0000,,ou clica em cima do dia\Na dia em que aparece? Dialogue: 0,0:03:36.95,0:03:39.82,Default,,0000,0000,0000,,Quando a gente tem aqui o HTTPS, Dialogue: 0,0:03:39.82,0:03:44.12,Default,,0000,0000,0000,,nós conseguimos ver as informações desse\Nsite. Dialogue: 0,0:03:44.22,0:03:47.63,Default,,0000,0000,0000,,Por exemplo, ele está indicando\Nque essa conexão a segura. Dialogue: 0,0:03:47.69,0:03:50.30,Default,,0000,0000,0000,,Se eu clico para pedir mais informações, Dialogue: 0,0:03:50.30,0:03:54.57,Default,,0000,0000,0000,,ele me traz um briefing\Ne me traz um acesso ao certificado, Dialogue: 0,0:03:54.67,0:03:57.37,Default,,0000,0000,0000,,aonde eu consigo checar, por exemplo, Dialogue: 0,0:03:57.37,0:04:00.37,Default,,0000,0000,0000,,quem foi que emitiu esse certificado. Dialogue: 0,0:04:00.44,0:04:05.24,Default,,0000,0000,0000,,No caso, esse cara foi emitido pra Google\Npor uma companhia chamada GTS. Dialogue: 0,0:04:05.24,0:04:10.72,Default,,0000,0000,0000,,Será um C3, que no caso é o próprio\Nserviço de segurança da Google. Dialogue: 0,0:04:10.78,0:04:14.12,Default,,0000,0000,0000,,A gente também consegue ver\Na data de emissão Dialogue: 0,0:04:14.19,0:04:17.09,Default,,0000,0000,0000,,e os efeitos de uso desse certificado, Dialogue: 0,0:04:17.09,0:04:19.92,Default,,0000,0000,0000,,como por exemplo a chave pública. Dialogue: 0,0:04:19.92,0:04:23.33,Default,,0000,0000,0000,,Isso porque toda comunicação https\Nfunciona Dialogue: 0,0:04:23.33,0:04:26.56,Default,,0000,0000,0000,,baseada em chave pública e privada. Dialogue: 0,0:04:26.63,0:04:29.64,Default,,0000,0000,0000,,A chave pública a gente vai utilizar Dialogue: 0,0:04:29.64,0:04:33.84,Default,,0000,0000,0000,,para assinar qualquer\Ndado qualquer e mandar para o servidor, Dialogue: 0,0:04:33.94,0:04:34.57,Default,,0000,0000,0000,,afinal, Dialogue: 0,0:04:34.57,0:04:37.81,Default,,0000,0000,0000,,só a chave privada vai abrir esse dado. Dialogue: 0,0:04:37.88,0:04:42.31,Default,,0000,0000,0000,,Já quando eu assino com a chave privada,\Na pública consegue abrir. Dialogue: 0,0:04:42.38,0:04:47.12,Default,,0000,0000,0000,,E isso não é tão interessante\Nquando eu quero garantir segurança. Dialogue: 0,0:04:47.22,0:04:49.12,Default,,0000,0000,0000,,E aí, como é que eu faço? Dialogue: 0,0:04:49.12,0:04:53.36,Default,,0000,0000,0000,,Normalmente, quando eu chamo esse site,\Na gente já negocia ali, Dialogue: 0,0:04:53.36,0:04:58.46,Default,,0000,0000,0000,,utilizando as chaves públicas,\Num acordo de senha para a gente Dialogue: 0,0:04:58.46,0:05:02.27,Default,,0000,0000,0000,,usar um outro certificado privado\Npara a gente usar. Dialogue: 0,0:05:02.33,0:05:05.10,Default,,0000,0000,0000,,E dessa forma a gente escapa\Ndesse problema Dialogue: 0,0:05:05.10,0:05:09.64,Default,,0000,0000,0000,,do assinar com a chave privada\Ne ler com a chave pública. Dialogue: 0,0:05:09.71,0:05:13.51,Default,,0000,0000,0000,,Outro detalhe importante\Né que a gente tem mais algumas informações Dialogue: 0,0:05:13.51,0:05:16.95,Default,,0000,0000,0000,,e detalhes sobre esse certificado. Dialogue: 0,0:05:17.05,0:05:20.35,Default,,0000,0000,0000,,Mas voltando aqui no quadradinho,\Nvejam que a gente também Dialogue: 0,0:05:20.35,0:05:26.66,Default,,0000,0000,0000,,vai ter algumas opções,\Ncomo os cookies que estão em uso ou mesmo Dialogue: 0,0:05:26.76,0:05:28.09,Default,,0000,0000,0000,,as informações sobre os Dialogue: 0,0:05:28.09,0:05:32.23,Default,,0000,0000,0000,,trekkings, que são os acessos\Nque a gente está pedindo. Dialogue: 0,0:05:32.30,0:05:34.90,Default,,0000,0000,0000,,Os trekkings vão ser referentes\Na basicamente Dialogue: 0,0:05:34.90,0:05:38.74,Default,,0000,0000,0000,,qualquer coisa que a gente queira acessar,\Ndesde a localização Dialogue: 0,0:05:38.80,0:05:43.34,Default,,0000,0000,0000,,ou até a possibilidade de armazenar\Nalgum dado no computador. Dialogue: 0,0:05:43.44,0:05:47.68,Default,,0000,0000,0000,,Só que o CUC ele\Né um pouquinho mais delicado, o cookie. Dialogue: 0,0:05:47.68,0:05:50.95,Default,,0000,0000,0000,,Teoricamente\Nsão dados que nós estamos salvando Dialogue: 0,0:05:50.95,0:05:54.25,Default,,0000,0000,0000,,nessa máquina\Npara acelerar a nossa página. Dialogue: 0,0:05:54.32,0:05:56.86,Default,,0000,0000,0000,,Ela é uma espécie de client side Dialogue: 0,0:05:56.86,0:05:59.59,Default,,0000,0000,0000,,ou processamento do lado cliente, Dialogue: 0,0:05:59.59,0:06:03.53,Default,,0000,0000,0000,,aonde a gente\Nconsegue aliviar o tráfego do servidor, Dialogue: 0,0:06:03.63,0:06:06.96,Default,,0000,0000,0000,,só que expondo ao risco de ter parte Dialogue: 0,0:06:06.96,0:06:10.30,Default,,0000,0000,0000,,do meu código disponível\Nna máquina do usuário. Dialogue: 0,0:06:10.37,0:06:14.64,Default,,0000,0000,0000,,Além disso, Cookie também salva\Nvários outros componentes da página, Dialogue: 0,0:06:14.74,0:06:18.68,Default,,0000,0000,0000,,como fotos muito acessadas,\Nlogomarcas e coisas do gênero. Dialogue: 0,0:06:18.74,0:06:21.38,Default,,0000,0000,0000,,Então ele está em Minas sendo usado. Dialogue: 0,0:06:21.38,0:06:24.92,Default,,0000,0000,0000,,O problema é qual dado eu to passando\Npra ele já. Dialogue: 0,0:06:24.92,0:06:28.89,Default,,0000,0000,0000,,Quando a gente fala do server side,\Nele vai compor Dialogue: 0,0:06:28.99,0:06:32.52,Default,,0000,0000,0000,,todos os dados\Nque a gente tem do lado do servidor Dialogue: 0,0:06:32.59,0:06:35.53,Default,,0000,0000,0000,,e aí a gente termina\Ntendo um pouco mais de segurança. Dialogue: 0,0:06:35.53,0:06:38.100,Default,,0000,0000,0000,,Eu vou me preocupar muito com o ataque\Nque vou tentar explorar, Dialogue: 0,0:06:39.10,0:06:42.07,Default,,0000,0000,0000,,mas isso tudo vai vir via rede Dialogue: 0,0:06:42.10,0:06:47.64,Default,,0000,0000,0000,,e não simplesmente disponibilizei esse\Ncódigo aberto para todo mundo. Dialogue: 0,0:06:47.74,0:06:48.74,Default,,0000,0000,0000,,Além disso, Dialogue: 0,0:06:48.74,0:06:52.58,Default,,0000,0000,0000,,essa nossa\Ninteração nem sempre é bem sucedida Dialogue: 0,0:06:52.64,0:06:56.18,Default,,0000,0000,0000,,e justamente por isso o HTTP tem códigos. Dialogue: 0,0:06:56.28,0:06:59.28,Default,,0000,0000,0000,,Toda vez que você recebe um código\N200, por exemplo, Dialogue: 0,0:06:59.35,0:07:02.55,Default,,0000,0000,0000,,é porque a sua solicitação deu certo. Dialogue: 0,0:07:02.62,0:07:06.69,Default,,0000,0000,0000,,Toda a família 200\Nquer dizer, solicitação bem sucedida. Dialogue: 0,0:07:06.76,0:07:10.06,Default,,0000,0000,0000,,Já quando a gente fala da família 500,\Na gente está falando Dialogue: 0,0:07:10.06,0:07:12.03,Default,,0000,0000,0000,,da família, dos erros. Dialogue: 0,0:07:12.03,0:07:15.67,Default,,0000,0000,0000,,O famoso erro 404 já está noutra família Dialogue: 0,0:07:15.67,0:07:20.64,Default,,0000,0000,0000,,para indicar falha no server side,\Naonde eu não consegui achar o endereço. Dialogue: 0,0:07:20.74,0:07:25.48,Default,,0000,0000,0000,,Então cada código\Nvai ter ali a sua família Dialogue: 0,0:07:25.54,0:07:30.48,Default,,0000,0000,0000,,e dentro dessas famílias\Nos erros que ele está justificando. Dialogue: 0,0:07:30.55,0:07:33.55,Default,,0000,0000,0000,,Veja que só para manter uma aplicação\Nweb no ar Dialogue: 0,0:07:33.58,0:07:34.39,Default,,0000,0000,0000,,a gente já tem que ter Dialogue: 0,0:07:34.39,0:07:38.72,Default,,0000,0000,0000,,uma série de cuidados\Ne trabalhar minunciosamente vários pontos. Dialogue: 0,0:07:38.82,0:07:41.46,Default,,0000,0000,0000,,Mas são justamente esses pequenos pontos Dialogue: 0,0:07:41.46,0:07:44.76,Default,,0000,0000,0000,,que me permitem arquitetar uma solução web Dialogue: 0,0:07:44.83,0:07:48.57,Default,,0000,0000,0000,,que vai ser ao\Nmesmo tempo útil e segura. E.