[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:07.86,0:00:10.40,Default,,0000,0000,0000,,No desenvolvimento \Nde uma aplicação web, Dialogue: 0,0:00:10.40,0:00:14.90,Default,,0000,0000,0000,,uma das principais coisas\Nque vamos ter é o http, Dialogue: 0,0:00:14.90,0:00:19.14,Default,,0000,0000,0000,,ele é basicamente a base de tudo\No que nós fazemos. Dialogue: 0,0:00:19.14,0:00:23.65,Default,,0000,0000,0000,,E veja, não estamos falando aqui\Nsó de aplicação para o navegador, Dialogue: 0,0:00:23.65,0:00:27.57,Default,,0000,0000,0000,,o HTTP também está embarcado\Nem aplicações mobile Dialogue: 0,0:00:27.57,0:00:32.56,Default,,0000,0000,0000,,e mesmo alguns sistemas que nós \Npensamos que foram desenvolvidos Dialogue: 0,0:00:32.56,0:00:34.49,Default,,0000,0000,0000,,com a estrutura compilada. Dialogue: 0,0:00:34.49,0:00:36.98,Default,,0000,0000,0000,,Isso porque ele trabalha \Nmuito bem Dialogue: 0,0:00:36.98,0:00:40.84,Default,,0000,0000,0000,,com essa ideia de interação \Ncliente servidor. Dialogue: 0,0:00:40.84,0:00:44.00,Default,,0000,0000,0000,,Muito disso se deve \Naos seus métodos. Dialogue: 0,0:00:44.00,0:00:46.12,Default,,0000,0000,0000,,E aí podemos destacar os principais, Dialogue: 0,0:00:46.12,0:00:50.07,Default,,0000,0000,0000,,que são: o GET\Nque eu obtenho informação, Dialogue: 0,0:00:50.07,0:00:54.22,Default,,0000,0000,0000,,o POST que eu publico \Numa informação, Dialogue: 0,0:00:54.22,0:00:59.78,Default,,0000,0000,0000,,PUT, eu adiciono uma informação \Npara alguém que já existe. Dialogue: 0,0:00:59.78,0:01:04.28,Default,,0000,0000,0000,,No caso, por exemplo, um usuário\Nou um campo que já está determinado Dialogue: 0,0:01:04.28,0:01:07.29,Default,,0000,0000,0000,,e DELETE onde eu mando \Nremover alguém. Dialogue: 0,0:01:07.29,0:01:10.57,Default,,0000,0000,0000,,Foi justamente essa estrutura Dialogue: 0,0:01:10.57,0:01:11.57,Default,,0000,0000,0000,,que moldou todo o mercado de TI\Nque conhecemos hoje em dia, Dialogue: 0,0:01:11.57,0:01:15.71,Default,,0000,0000,0000,,principalmente \Nnas aplicações web. Dialogue: 0,0:01:15.78,0:01:17.84,Default,,0000,0000,0000,,É através deles que conseguimos Dialogue: 0,0:01:17.84,0:01:18.84,Default,,0000,0000,0000,,enviar, receber ou alterar \Nalgum dado nos sistemas Dialogue: 0,0:01:18.84,0:01:22.98,Default,,0000,0000,0000,,que usamos \Nno dia a dia. Dialogue: 0,0:01:23.05,0:01:25.72,Default,,0000,0000,0000,,Mas esses caras \Nnão estão sozinhos, Dialogue: 0,0:01:25.72,0:01:29.49,Default,,0000,0000,0000,,em especial porque o HTTP Dialogue: 0,0:01:29.49,0:01:30.49,Default,,0000,0000,0000,,normalmente tem um problema \Nde segurança. Dialogue: 0,0:01:30.49,0:01:34.26,Default,,0000,0000,0000,,Esses dados estão expostos \Nna rede disponível Dialogue: 0,0:01:34.26,0:01:37.10,Default,,0000,0000,0000,,para qualquer hacker \Npoder acessar. Dialogue: 0,0:01:37.16,0:01:40.70,Default,,0000,0000,0000,,Justamente por isso \Nque veio o https, Dialogue: 0,0:01:40.80,0:01:44.70,Default,,0000,0000,0000,,onde temos 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, Dialogue: 0,0:01:48.41,0:01:50.94,Default,,0000,0000,0000,,que vemos a criptografia dos dados \Nque estamos operando. Dialogue: 0,0:01:50.94,0:01:56.08,Default,,0000,0000,0000,,E aqui também vamos ter que ter\Nalguns detalhes a apresentar, Dialogue: 0,0:01:56.15,0:02:00.65,Default,,0000,0000,0000,,toda URL que esse endereço \Nde acesso às páginas web Dialogue: 0,0:02:00.75,0:02:04.12,Default,,0000,0000,0000,,vai ser composta \Npor protocolo Dialogue: 0,0:02:04.19,0:02:07.76,Default,,0000,0000,0000,,no caso HTTP, \No HTTPS, Dialogue: 0,0:02:07.86,0:02:10.60,Default,,0000,0000,0000,,o DNS que \Nestamos 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 que é um número \Nque vai lá no final. Dialogue: 0,0:02:20.14,0:02:23.04,Default,,0000,0000,0000,,E se você nunca viu \Nesse número antes, Dialogue: 0,0:02:23.04,0:02:26.04,Default,,0000,0000,0000,,é porque ele é subentendido \Nem alguns casos. Dialogue: 0,0:02:26.21,0:02:29.52,Default,,0000,0000,0000,,Por exemplo, \No HTTP utiliza a porta 80, Dialogue: 0,0:02:29.52,0:02:34.25,Default,,0000,0000,0000,,o HTTPS utiliza\Na porta 443. Dialogue: 0,0:02:34.35,0:02:35.05,Default,,0000,0000,0000,,Mas caso desenvolva, \Npor exemplo, Dialogue: 0,0:02:35.05,0:02:39.22,Default,,0000,0000,0000,,um front end ou um\Ndashboard 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 \Nesse endereço, Dialogue: 0,0:02:45.23,0:02:48.43,Default,,0000,0000,0000,,se nós acessamos, por exemplo,\No site do Google, Dialogue: 0,0:02:48.50,0:02:51.27,Default,,0000,0000,0000,,já podemos ver\Ncomo é que esse cara vai funcionar. Dialogue: 0,0:02:51.27,0:02:53.84,Default,,0000,0000,0000,,Notem que já temos aqui\No nosso protocolo HTTPS, Dialogue: 0,0:02:56.54,0:02:59.54,Default,,0000,0000,0000,,indicando que é só \Numa conexão segura. Dialogue: 0,0:02:59.78,0:03:04.18,Default,,0000,0000,0000,,Mas veja, não é porque \Neu tenho um https aqui Dialogue: 0,0:03:04.18,0:03:05.18,Default,,0000,0000,0000,,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.