[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:09.47,Default,,0000,0000,0000,,Foi justamente essa estrutura Dialogue: 0,0:01:09.47,0:01:13.06,Default,,0000,0000,0000,,que moldou todo o mercado de TI\Nque conhecemos hoje em dia, Dialogue: 0,0:01:13.06,0:01:15.68,Default,,0000,0000,0000,,principalmente \Nnas aplicações web. Dialogue: 0,0:01:15.68,0:01:17.45,Default,,0000,0000,0000,,É através deles que conseguimos Dialogue: 0,0:01:17.45,0:01:20.39,Default,,0000,0000,0000,,enviar, receber ou alterar \Nalgum dado Dialogue: 0,0:01:20.39,0:01:22.98,Default,,0000,0000,0000,,nos sistemas que usamos \Nno dia a dia. Dialogue: 0,0:01:22.98,0:01:25.64,Default,,0000,0000,0000,,Mas esses caras \Nnão estão sozinhos, Dialogue: 0,0:01:25.64,0:01:27.84,Default,,0000,0000,0000,,em especial porque o HTTP Dialogue: 0,0:01:27.84,0:01:30.34,Default,,0000,0000,0000,,normalmente tem um problema \Nde segurança. Dialogue: 0,0:01:30.34,0:01:33.43,Default,,0000,0000,0000,,Esses dados estão expostos \Nna rede Dialogue: 0,0:01:33.43,0:01:36.98,Default,,0000,0000,0000,,disponível para qualquer hacker \Npoder acessar. Dialogue: 0,0:01:36.98,0:01:40.66,Default,,0000,0000,0000,,Justamente por isso \Nque veio o https, Dialogue: 0,0:01:40.66,0:01:44.61,Default,,0000,0000,0000,,onde temos a parte de segurança\Nsendo implementada. Dialogue: 0,0:01:44.61,0:01:46.00,Default,,0000,0000,0000,,E é nele, por exemplo, Dialogue: 0,0:01:46.00,0:01:48.32,Default,,0000,0000,0000,,que ganhamos a criptografia Dialogue: 0,0:01:48.32,0:01:50.86,Default,,0000,0000,0000,,dos dados \Nque estamos operando. Dialogue: 0,0:01:50.86,0:01:56.07,Default,,0000,0000,0000,,E aqui também vamos ter que ter\Nalguns detalhes a se atentar Dialogue: 0,0:01:56.07,0:02:00.59,Default,,0000,0000,0000,,toda URL que esse endereço \Nde acesso às páginas web Dialogue: 0,0:02:00.59,0:02:04.11,Default,,0000,0000,0000,,será composta \Npor protocolo Dialogue: 0,0:02:04.11,0:02:07.79,Default,,0000,0000,0000,,no caso HTTP, \No HTTPS, Dialogue: 0,0:02:07.79,0:02:10.57,Default,,0000,0000,0000,,o DNS que \Nestamos acessando, Dialogue: 0,0:02:10.57,0:02:15.59,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.59,0:02:19.98,Default,,0000,0000,0000,,e uma porta, que é um número \Nque vai lá no final. Dialogue: 0,0:02:19.98,0:02:22.97,Default,,0000,0000,0000,,E se você nunca viu \Nesse número antes, Dialogue: 0,0:02:22.97,0:02:26.13,Default,,0000,0000,0000,,é porque ele é subentendido \Nem alguns casos. Dialogue: 0,0:02:26.13,0:02:30.00,Default,,0000,0000,0000,,Por exemplo, \No HTTP utiliza a porta 80, Dialogue: 0,0:02:30.00,0:02:34.36,Default,,0000,0000,0000,,o HTTPS utiliza\Na porta 443. Dialogue: 0,0:02:34.36,0:02:36.18,Default,,0000,0000,0000,,Mas caso desenvolva, \Npor exemplo, Dialogue: 0,0:02:36.18,0:02:39.20,Default,,0000,0000,0000,,um front end ou um\Ndashboard de API, Dialogue: 0,0:02:39.20,0:02:42.57,Default,,0000,0000,0000,,é normal colocarmos esse cara\Nlá na porta 5000, Dialogue: 0,0:02:42.57,0:02:45.07,Default,,0000,0000,0000,,e aí eu preciso especificar \Nesse endereço. Dialogue: 0,0:02:45.07,0:02:48.44,Default,,0000,0000,0000,,Se nós acessamos, por exemplo,\No site do Google, Dialogue: 0,0:02:48.44,0:02:51.14,Default,,0000,0000,0000,,já podemos ver\Ncomo é que esse cara vai funcionar. Dialogue: 0,0:02:51.14,0:02:56.43,Default,,0000,0000,0000,,Notem que já temos aqui\No nosso protocolo HTTPS, Dialogue: 0,0:02:56.43,0:02:59.82,Default,,0000,0000,0000,,indicando que é só \Numa conexão segura. Dialogue: 0,0:02:59.82,0:03:02.72,Default,,0000,0000,0000,,Mas veja, não é porque \Neu tenho um https aqui Dialogue: 0,0:03:02.72,0:03:05.14,Default,,0000,0000,0000,,que eu estou 100% seguro. Dialogue: 0,0:03:05.14,0:03:10.81,Default,,0000,0000,0000,,Na realidade isso só diz\Nque eu tenho um certificado em uso, Dialogue: 0,0:03:10.81,0:03:14.52,Default,,0000,0000,0000,,não necessariamente\Nque esse é o certificado do Google, Dialogue: 0,0:03:14.52,0:03:17.16,Default,,0000,0000,0000,,já já nós vamos ver como \Né que validamos isso. Dialogue: 0,0:03:17.16,0:03:22.09,Default,,0000,0000,0000,,Na sequência\Nnós temos o endereço DNS do Google Dialogue: 0,0:03:22.09,0:03:27.19,Default,,0000,0000,0000,,e aqui está subtendido\Na porta 443. Dialogue: 0,0:03:27.19,0:03:30.75,Default,,0000,0000,0000,,"Professor, como é que conseguimos\Nvertodos esses detalhes?" Dialogue: 0,0:03:30.75,0:03:33.52,Default,,0000,0000,0000,,se clicarmos aqui\Nem cima do ícone do Google Dialogue: 0,0:03:33.52,0:03:36.85,Default,,0000,0000,0000,,ou clicar em cima \Ndo cadeado que aparece Dialogue: 0,0:03:36.85,0:03:39.73,Default,,0000,0000,0000,,quando temos \Naqui o HTTPS, Dialogue: 0,0:03:39.73,0:03:44.14,Default,,0000,0000,0000,,nós conseguimos ver \Nas informações desse site. Dialogue: 0,0:03:44.14,0:03:47.60,Default,,0000,0000,0000,,Por exemplo, ele está indicando\Nque essa conexão a segura, Dialogue: 0,0:03:47.60,0:03:50.19,Default,,0000,0000,0000,,se eu clico para pedir \Nmais informações, Dialogue: 0,0:03:50.19,0:03:54.58,Default,,0000,0000,0000,,ele me traz um briefing\Ne me traz um acesso ao certificado. Dialogue: 0,0:03:54.58,0:03:57.24,Default,,0000,0000,0000,,Onde eu consigo checar, \Npor exemplo, Dialogue: 0,0:03:57.24,0:04:00.37,Default,,0000,0000,0000,,quem foi que emitiu \Nesse certificado. Dialogue: 0,0:04:00.37,0:04:02.73,Default,,0000,0000,0000,,No caso, esse certificado\Nfoi emitido para o Google Dialogue: 0,0:04:02.73,0:04:06.58,Default,,0000,0000,0000,,por uma companhia \Nchamada "GTS CA 1C3" Dialogue: 0,0:04:06.58,0:04:10.61,Default,,0000,0000,0000,,que no caso é o próprio\Nserviço de segurança da Google. Dialogue: 0,0:04:10.61,0:04:14.06,Default,,0000,0000,0000,,Também conseguimos ver\Na data de emissão Dialogue: 0,0:04:14.06,0:04:16.100,Default,,0000,0000,0000,,e os hashs de uso \Ndesse certificado, Dialogue: 0,0:04:16.100,0:04:19.74,Default,,0000,0000,0000,,como por exemplo \Na chave pública. Dialogue: 0,0:04:19.74,0:04:22.86,Default,,0000,0000,0000,,Isso porque toda \Ncomunicação https Dialogue: 0,0:04:22.86,0:04:26.57,Default,,0000,0000,0000,,funciona baseada \Nem chave pública e privada. Dialogue: 0,0:04:26.57,0:04:29.48,Default,,0000,0000,0000,,A chave pública \Nnós vamos utilizar Dialogue: 0,0:04:29.48,0:04:31.38,Default,,0000,0000,0000,,para assinar qualquer dado Dialogue: 0,0:04:31.38,0:04:33.74,Default,,0000,0000,0000,,que eu queira mandar \Npara o servidor, Dialogue: 0,0:04:33.74,0:04:37.80,Default,,0000,0000,0000,,afinal, só a chave privada \Nvai abrir esse dado. Dialogue: 0,0:04:37.80,0:04:40.49,Default,,0000,0000,0000,,Já quando eu assino \Ncom a chave privada, Dialogue: 0,0:04:40.49,0:04:42.34,Default,,0000,0000,0000,,a pública consegue abrir, Dialogue: 0,0:04:42.34,0:04:46.85,Default,,0000,0000,0000,,e isso não é tão interessante\Nquando eu quero garantir segurança. Dialogue: 0,0:04:46.85,0:04:48.99,Default,,0000,0000,0000,,"Professor, e aí, \Ncomo é que eu faço?", Dialogue: 0,0:04:48.99,0:04:51.67,Default,,0000,0000,0000,,normalmente, quando \Neu chamo esse site, Dialogue: 0,0:04:51.67,0:04:55.75,Default,,0000,0000,0000,,nós já negociamos ali,\Nutilizando as chaves públicas, Dialogue: 0,0:04:55.75,0:04:58.46,Default,,0000,0000,0000,,um acordo de senha \Npara usarmos Dialogue: 0,0:04:58.46,0:05:02.27,Default,,0000,0000,0000,,ou um outro certificado privado\Npara nós usarmos. Dialogue: 0,0:05:02.27,0:05:05.04,Default,,0000,0000,0000,,E dessa forma nós escapamos\Ndesse problema Dialogue: 0,0:05:05.04,0:05:09.35,Default,,0000,0000,0000,,do assinar com a chave privada\Ne ler com a chave pública. Dialogue: 0,0:05:09.35,0:05:13.43,Default,,0000,0000,0000,,Outro detalhe importante é que nós \Ntemos mais algumas informações Dialogue: 0,0:05:13.43,0:05:16.96,Default,,0000,0000,0000,,e detalhes sobre \Nesse certificado. Dialogue: 0,0:05:16.96,0:05:19.22,Default,,0000,0000,0000,,Mas voltando aqui \Nno cadeado, Dialogue: 0,0:05:19.22,0:05:21.59,Default,,0000,0000,0000,,vejam que também \Nterá algumas opções, Dialogue: 0,0:05:21.59,0:05:24.35,Default,,0000,0000,0000,,como os cookies \Nque estão em uso Dialogue: 0,0:05:24.35,0:05:28.87,Default,,0000,0000,0000,,ou mesmo, as informações \Nsobre os trekkings, Dialogue: 0,0:05:28.87,0:05:32.37,Default,,0000,0000,0000,,que são os acessos\Nque estamos pedindo. Dialogue: 0,0:05:32.37,0:05:33.98,Default,,0000,0000,0000,,Os trekkings vão ser referentes Dialogue: 0,0:05:33.98,0:05:36.54,Default,,0000,0000,0000,,a basicamente qualquer coisa \Nque queiramos acessar, Dialogue: 0,0:05:36.54,0:05:38.67,Default,,0000,0000,0000,,desde a localização Dialogue: 0,0:05:38.67,0:05:42.96,Default,,0000,0000,0000,,ou até a possibilidade de armazenar\Nalgum dado no computador. Dialogue: 0,0:05:42.96,0:05:47.27,Default,,0000,0000,0000,,Só que o Cookie, é um pouquinho \Nmais delicado, Dialogue: 0,0:05:47.27,0:05:49.01,Default,,0000,0000,0000,,o cookie teoricamente \Nsão dados Dialogue: 0,0:05:49.01,0:05:52.24,Default,,0000,0000,0000,,que nós estamos salvando \Nnessa máquina Dialogue: 0,0:05:52.24,0:05:54.25,Default,,0000,0000,0000,,para acelerar \Na nossa página. Dialogue: 0,0:05:54.25,0:05:56.79,Default,,0000,0000,0000,,Ela é uma espécie \Nde client side Dialogue: 0,0:05:56.79,0:05:59.42,Default,,0000,0000,0000,,ou processamento \Ndo lado cliente. Dialogue: 0,0:05:59.42,0:06:03.56,Default,,0000,0000,0000,,Onde conseguimos aliviar \No tráfego do servidor, Dialogue: 0,0:06:03.56,0:06:05.91,Default,,0000,0000,0000,,só que expondo \Nao risco Dialogue: 0,0:06:05.91,0:06:08.02,Default,,0000,0000,0000,,de ter parte do meu \Ncódigo Dialogue: 0,0:06:08.02,0:06:10.01,Default,,0000,0000,0000,,disponível na máquina \Ndo usuário. Dialogue: 0,0:06:10.01,0:06:12.17,Default,,0000,0000,0000,,Além disso, o cookie \Ntambém salva Dialogue: 0,0:06:12.17,0:06:14.67,Default,,0000,0000,0000,,vários outros \Ncomponentes da página, Dialogue: 0,0:06:14.67,0:06:18.58,Default,,0000,0000,0000,,como fotos muito acessadas,\Nlogomarcas e coisas do gênero. Dialogue: 0,0:06:18.58,0:06:21.21,Default,,0000,0000,0000,,Então, ele termina sendo usado, Dialogue: 0,0:06:21.21,0:06:24.44,Default,,0000,0000,0000,,o problema é qual dado \Neu to passando para ele Dialogue: 0,0:06:24.44,0:06:27.68,Default,,0000,0000,0000,,Já quando falamos \Ndo server side, Dialogue: 0,0:06:27.68,0:06:32.54,Default,,0000,0000,0000,,ele vai compor todos os dados\Nque nós temos do lado do servidor Dialogue: 0,0:06:32.54,0:06:35.38,Default,,0000,0000,0000,,e aí nós terminamos tendo \Num pouco mais de segurança. Dialogue: 0,0:06:35.38,0:06:37.55,Default,,0000,0000,0000,,Eu vou me preocupar \Nmuito com o ataque Dialogue: 0,0:06:37.55,0:06:39.13,Default,,0000,0000,0000,,que vai tentar explorar, Dialogue: 0,0:06:39.13,0:06:41.94,Default,,0000,0000,0000,,mas isso tudo \Nvai vir via rede Dialogue: 0,0:06:41.94,0:06:47.34,Default,,0000,0000,0000,,e não simplesmente disponibilizei \Nesse código aberto para todo mundo. Dialogue: 0,0:06:47.34,0:06:52.57,Default,,0000,0000,0000,,Além disso, essa nossa interação \Nnem sempre é bem sucedida Dialogue: 0,0:06:52.57,0:06:56.12,Default,,0000,0000,0000,,e justamente por isso \No HTTP tem códigos. Dialogue: 0,0:06:56.12,0:06:59.29,Default,,0000,0000,0000,,Toda vez que você recebe um código\N200, por exemplo, Dialogue: 0,0:06:59.29,0:07:02.62,Default,,0000,0000,0000,,é porque a sua \Nsolicitação deu certo, Dialogue: 0,0:07:02.62,0:07:06.50,Default,,0000,0000,0000,,toda a família 200 quer dizer\Nsolicitação bem sucedida. Dialogue: 0,0:07:06.50,0:07:09.44,Default,,0000,0000,0000,,Já quando nós falamos \Nda família 500, Dialogue: 0,0:07:09.44,0:07:11.82,Default,,0000,0000,0000,,nós estamos falando \Nda família, dos erros. Dialogue: 0,0:07:11.82,0:07:15.61,Default,,0000,0000,0000,,O famoso erro 404 \Njá está em outra família Dialogue: 0,0:07:15.61,0:07:17.96,Default,,0000,0000,0000,,para indicar falha \Nno server side, Dialogue: 0,0:07:17.96,0:07:20.66,Default,,0000,0000,0000,,onde eu não consegui \Nachar o endereço. Dialogue: 0,0:07:20.66,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.48,0:07:30.35,Default,,0000,0000,0000,,e dentro dessas famílias\Nos erros que ele está justificando. Dialogue: 0,0:07:30.35,0:07:33.51,Default,,0000,0000,0000,,Veja que só para manter \Numa aplicação web no ar Dialogue: 0,0:07:33.51,0:07:35.82,Default,,0000,0000,0000,,já temos que ter\Numa série de cuidados Dialogue: 0,0:07:35.82,0:07:38.81,Default,,0000,0000,0000,,e trabalhar minunciosamente \Nvários pontos. Dialogue: 0,0:07:38.81,0:07:41.35,Default,,0000,0000,0000,,Mas são justamente esses \Npequenos pontos Dialogue: 0,0:07:41.35,0:07:44.69,Default,,0000,0000,0000,,que me permitem arquitetar \Numa solução web Dialogue: 0,0:07:44.69,0:07:48.35,Default,,0000,0000,0000,,que vai ser ao mesmo tempo \Nútil e segura.