{"id":2158,"date":"2026-07-12T10:46:06","date_gmt":"2026-07-12T13:46:06","guid":{"rendered":"https:\/\/desvendandoocodigo.com.br\/?p=2158"},"modified":"2026-07-12T10:50:05","modified_gmt":"2026-07-12T13:50:05","slug":"como-os-sites-continuam-logados-depois-do-f5-entenda-session-e-cookies-na-pratica","status":"publish","type":"post","link":"https:\/\/desvendandoocodigo.com.br\/?p=2158","title":{"rendered":"Como os Sites Continuam Logados Depois do F5? Entenda Session e Cookies na Pr\u00e1tica"},"content":{"rendered":"\n<p>Voc\u00ea faz login em um sistema, aperta <strong>F5<\/strong> e continua autenticado.<\/p>\n\n\n\n<p>Fecha uma p\u00e1gina, abre outra e ainda permanece logado.<\/p>\n\n\n\n<p>Mas afinal&#8230; <strong>como o navegador sabe que \u00e9 voc\u00ea?<\/strong><\/p>\n\n\n\n<p>Essa \u00e9 uma das d\u00favidas mais comuns entre quem est\u00e1 come\u00e7ando no desenvolvimento web e, ao mesmo tempo, um dos conceitos mais importantes para criar aplica\u00e7\u00f5es modernas.<\/p>\n\n\n\n<p>Neste artigo vamos entender como funcionam <strong>Session<\/strong>, <strong>Cookies<\/strong> e a autentica\u00e7\u00e3o entre Front-end e Back-end utilizando JavaScript e Node.js.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O problema da autentica\u00e7\u00e3o<\/h1>\n\n\n\n<p>O protocolo HTTP \u00e9 <strong>stateless<\/strong>, ou seja, ele n\u00e3o guarda informa\u00e7\u00f5es entre uma requisi\u00e7\u00e3o e outra.<\/p>\n\n\n\n<p>Imagine o seguinte cen\u00e1rio:<\/p>\n\n\n\n<ol>\n<li>Voc\u00ea acessa o site.<\/li>\n\n\n\n<li>Faz login.<\/li>\n\n\n\n<li>O servidor valida seu usu\u00e1rio.<\/li>\n\n\n\n<li>Voc\u00ea abre outra p\u00e1gina.<\/li>\n<\/ol>\n\n\n\n<p>Como o servidor sabe que aquela nova requisi\u00e7\u00e3o pertence ao mesmo usu\u00e1rio?<\/p>\n\n\n\n<p>Se n\u00e3o existisse algum mecanismo de identifica\u00e7\u00e3o, seria necess\u00e1rio fazer login novamente a cada clique.<\/p>\n\n\n\n<p>\u00c9 justamente a\u00ed que entram as <strong>Sessions<\/strong> e os <strong>Cookies<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O que \u00e9 uma Session?<\/h1>\n\n\n\n<p>A Session \u00e9 um espa\u00e7o reservado no servidor para armazenar informa\u00e7\u00f5es tempor\u00e1rias sobre um usu\u00e1rio autenticado.<\/p>\n\n\n\n<p>Depois que o login \u00e9 realizado com sucesso, o servidor cria uma sess\u00e3o semelhante a esta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Session:\nUsu\u00e1rio: Marcos\nID: 123\nPermiss\u00e3o: Admin\nLogin: verdadeiro\n<\/code><\/pre>\n\n\n\n<p>Essas informa\u00e7\u00f5es ficam armazenadas apenas no servidor.<\/p>\n\n\n\n<p>O navegador nunca recebe esses dados diretamente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O papel do Cookie<\/h1>\n\n\n\n<p>Se os dados ficam no servidor, como o navegador encontra a sess\u00e3o correta?<\/p>\n\n\n\n<p>A resposta est\u00e1 em um pequeno arquivo chamado <strong>Cookie<\/strong>.<\/p>\n\n\n\n<p>Ap\u00f3s o login, o servidor envia algo parecido com:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>connect.sid = x8Aj92Kd93jd82...\n<\/code><\/pre>\n\n\n\n<p>Esse valor representa apenas um identificador da sess\u00e3o.<\/p>\n\n\n\n<p>Sempre que o navegador faz uma nova requisi\u00e7\u00e3o, ele envia automaticamente esse cookie.<\/p>\n\n\n\n<p>O servidor ent\u00e3o procura esse identificador na mem\u00f3ria (ou banco de dados) e recupera a sess\u00e3o correspondente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O que acontece quando pressionamos F5?<\/h1>\n\n\n\n<p>Ao atualizar a p\u00e1gina:<\/p>\n\n\n\n<ul>\n<li>o navegador envia novamente o cookie;<\/li>\n\n\n\n<li>o servidor encontra a sess\u00e3o;<\/li>\n\n\n\n<li>identifica o usu\u00e1rio;<\/li>\n\n\n\n<li>responde normalmente.<\/li>\n<\/ul>\n\n\n\n<p>Por isso voc\u00ea continua autenticado mesmo ap\u00f3s atualizar a p\u00e1gina.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Como funciona o Login na pr\u00e1tica<\/h1>\n\n\n\n<p>Durante o projeto desenvolvido no v\u00eddeo, constru\u00edmos um fluxo completo de autentica\u00e7\u00e3o utilizando JavaScript e Node.js.<\/p>\n\n\n\n<p>O processo acontece da seguinte maneira:<\/p>\n\n\n\n<ol>\n<li>O usu\u00e1rio preenche o formul\u00e1rio.<\/li>\n\n\n\n<li>O JavaScript captura os dados.<\/li>\n\n\n\n<li>O Fetch API envia uma requisi\u00e7\u00e3o POST.<\/li>\n\n\n\n<li>O Node.js valida usu\u00e1rio e senha.<\/li>\n\n\n\n<li>O servidor cria uma Session.<\/li>\n\n\n\n<li>O Cookie \u00e9 enviado automaticamente ao navegador.<\/li>\n\n\n\n<li>O Dashboard \u00e9 liberado.<\/li>\n<\/ol>\n\n\n\n<p>Todo esse fluxo acontece em poucos milissegundos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O Logout<\/h1>\n\n\n\n<p>Quando clicamos em Logout, o servidor destr\u00f3i a sess\u00e3o.<\/p>\n\n\n\n<p>Na pr\u00f3xima requisi\u00e7\u00e3o, mesmo que o cookie ainda exista, ele deixa de apontar para uma sess\u00e3o v\u00e1lida.<\/p>\n\n\n\n<p>O resultado \u00e9 que o usu\u00e1rio precisa fazer login novamente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Visualizando o Cookie no navegador<\/h1>\n\n\n\n<p>Uma das partes mais interessantes do projeto \u00e9 abrir o <strong>DevTools<\/strong> e observar exatamente onde o navegador armazena o cookie.<\/p>\n\n\n\n<p>Basta acessar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>F12\n\nApplication\n\nCookies\n<\/code><\/pre>\n\n\n\n<p>Voc\u00ea ver\u00e1 um cookie semelhante a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>connect.sid\n<\/code><\/pre>\n\n\n\n<p>Esse \u00e9 o identificador utilizado pelo servidor para localizar sua sess\u00e3o.<\/p>\n\n\n\n<p>Visualizar esse processo ajuda muito a entender como aplica\u00e7\u00f5es profissionais realizam autentica\u00e7\u00e3o.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Tecnologias utilizadas<\/h1>\n\n\n\n<p>Durante o desenvolvimento utilizamos diversos recursos importantes do JavaScript moderno:<\/p>\n\n\n\n<ul>\n<li>JavaScript<\/li>\n\n\n\n<li>Node.js<\/li>\n\n\n\n<li>Express<\/li>\n\n\n\n<li>Express Session<\/li>\n\n\n\n<li>Fetch API<\/li>\n\n\n\n<li>Async\/Await<\/li>\n\n\n\n<li>JSON<\/li>\n\n\n\n<li>Cookies<\/li>\n\n\n\n<li>Session<\/li>\n\n\n\n<li>DevTools<\/li>\n<\/ul>\n\n\n\n<p>Al\u00e9m disso, o projeto trabalha conceitos fundamentais para qualquer desenvolvedor Front-end ou Full Stack.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">O que voc\u00ea aprender\u00e1 no v\u00eddeo<\/h1>\n\n\n\n<p>Durante a aula voc\u00ea ver\u00e1 na pr\u00e1tica:<\/p>\n\n\n\n<ul>\n<li>Captura de elementos do HTML<\/li>\n\n\n\n<li>addEventListener<\/li>\n\n\n\n<li>preventDefault()<\/li>\n\n\n\n<li>Fetch API<\/li>\n\n\n\n<li>Async\/Await<\/li>\n\n\n\n<li>Requisi\u00e7\u00f5es POST<\/li>\n\n\n\n<li>JSON.stringify()<\/li>\n\n\n\n<li>Headers HTTP<\/li>\n\n\n\n<li>Integra\u00e7\u00e3o Front-end + Node.js<\/li>\n\n\n\n<li>Dashboard protegido<\/li>\n\n\n\n<li>Logout<\/li>\n\n\n\n<li>Session<\/li>\n\n\n\n<li>Cookies<\/li>\n\n\n\n<li>DevTools<\/li>\n<\/ul>\n\n\n\n<p>Tudo explicado passo a passo, sem copiar c\u00f3digo pronto.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Assista ao projeto completo<\/h1>\n\n\n\n<p>Se voc\u00ea quer entender definitivamente como os sites mant\u00eam usu\u00e1rios autenticados, acompanhe o projeto completo.<\/p>\n\n\n\n<p>\ud83d\udcfa <strong>V\u00eddeo editado:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Como os Sites Continuam Logados Depois do F5? Session e Cookies na Pr\u00e1tica\" width=\"960\" height=\"540\" src=\"https:\/\/www.youtube.com\/embed\/JWkGUPbD5JA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\ud83c\udfa5 <strong>Live completa:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Como Criar um Sistema de Login Completo | JavaScript + Session + Cookies\" width=\"960\" height=\"540\" src=\"https:\/\/www.youtube.com\/embed\/M3rlxITj17U?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><br><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Conclus\u00e3o<\/h1>\n\n\n\n<p>Entender Session e Cookies \u00e9 um divisor de \u00e1guas para quem deseja trabalhar com desenvolvimento web.<\/p>\n\n\n\n<p>Depois que esses conceitos ficam claros, fica muito mais f\u00e1cil compreender autentica\u00e7\u00e3o, \u00e1reas protegidas, APIs, sistemas administrativos e at\u00e9 mecanismos modernos como JWT.<\/p>\n\n\n\n<p>Mais importante do que decorar c\u00f3digo \u00e9 entender o funcionamento das tecnologias.<\/p>\n\n\n\n<p>Esse \u00e9 justamente o objetivo do canal <strong>Desvendando o C\u00f3digo<\/strong>: mostrar o que acontece por tr\u00e1s das aplica\u00e7\u00f5es e ensinar programa\u00e7\u00e3o atrav\u00e9s de projetos reais.<\/p>\n\n\n\n<p>Se este conte\u00fado foi \u00fatil para voc\u00ea, acompanhe o canal para aprender JavaScript, Node.js, React, bancos de dados, APIs e muito mais, sempre colocando a teoria em pr\u00e1tica.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea faz login em um sistema, aperta F5 e continua autenticado. Fecha uma p\u00e1gina, abre outra e ainda permanece logado. Mas afinal&#8230; como o navegador sabe que \u00e9 voc\u00ea? Essa \u00e9 uma das d\u00favidas mais comuns entre quem est\u00e1 come\u00e7ando no desenvolvimento web e, ao mesmo tempo, um dos conceitos mais importantes para criar aplica\u00e7\u00f5es modernas. Neste artigo vamos entender como funcionam Session, Cookies e a autentica\u00e7\u00e3o entre Front-end e Back-end utilizando JavaScript e Node.js. O problema da autentica\u00e7\u00e3o O protocolo HTTP \u00e9 stateless, ou seja, ele n\u00e3o guarda informa\u00e7\u00f5es entre uma requisi\u00e7\u00e3o e outra. Imagine o seguinte cen\u00e1rio: Como o servidor sabe que aquela nova requisi\u00e7\u00e3o pertence ao mesmo usu\u00e1rio? Se n\u00e3o existisse algum mecanismo de identifica\u00e7\u00e3o, seria necess\u00e1rio fazer login novamente a cada clique. \u00c9 justamente a\u00ed que entram as Sessions e os Cookies. O que \u00e9 uma Session? A Session \u00e9 um espa\u00e7o reservado no servidor para armazenar informa\u00e7\u00f5es tempor\u00e1rias sobre um usu\u00e1rio autenticado. Depois que o login \u00e9 realizado com sucesso, o servidor cria uma sess\u00e3o semelhante a esta: Essas informa\u00e7\u00f5es ficam armazenadas apenas no servidor. O navegador nunca recebe esses dados diretamente. O papel do Cookie Se os dados ficam no servidor, como o navegador encontra a sess\u00e3o correta? A resposta est\u00e1 em um pequeno arquivo chamado Cookie. Ap\u00f3s o login, o servidor envia algo parecido com: Esse valor representa apenas um identificador da sess\u00e3o. Sempre que o navegador faz uma nova requisi\u00e7\u00e3o, ele envia automaticamente esse cookie. O servidor ent\u00e3o procura esse identificador na mem\u00f3ria (ou banco de dados) e recupera a sess\u00e3o correspondente. O que acontece quando pressionamos F5? Ao atualizar a p\u00e1gina: Por isso voc\u00ea continua autenticado mesmo ap\u00f3s atualizar a p\u00e1gina. Como funciona o Login na pr\u00e1tica Durante o projeto desenvolvido no v\u00eddeo, constru\u00edmos um fluxo completo de autentica\u00e7\u00e3o utilizando JavaScript e Node.js. O processo acontece da seguinte maneira: Todo esse fluxo acontece em poucos milissegundos. O Logout Quando clicamos em Logout, o servidor destr\u00f3i a sess\u00e3o. Na pr\u00f3xima requisi\u00e7\u00e3o, mesmo que o cookie ainda exista, ele deixa de apontar para uma sess\u00e3o v\u00e1lida. O resultado \u00e9 que o usu\u00e1rio precisa fazer login novamente. Visualizando o Cookie no navegador Uma das partes mais interessantes do projeto \u00e9 abrir o DevTools e observar exatamente onde o navegador armazena o cookie. Basta acessar: Voc\u00ea ver\u00e1 um cookie semelhante a: Esse \u00e9 o identificador utilizado pelo servidor para localizar sua sess\u00e3o. Visualizar esse processo ajuda muito a entender como aplica\u00e7\u00f5es profissionais realizam autentica\u00e7\u00e3o. Tecnologias utilizadas Durante o desenvolvimento utilizamos diversos recursos importantes do JavaScript moderno: Al\u00e9m disso, o projeto trabalha conceitos fundamentais para qualquer desenvolvedor Front-end ou Full Stack. O que voc\u00ea aprender\u00e1 no v\u00eddeo Durante a aula voc\u00ea ver\u00e1 na pr\u00e1tica: Tudo explicado passo a passo, sem copiar c\u00f3digo pronto. Assista ao projeto completo Se voc\u00ea quer entender definitivamente como os sites mant\u00eam usu\u00e1rios autenticados, acompanhe o projeto completo. \ud83d\udcfa V\u00eddeo editado: \ud83c\udfa5 Live completa: Conclus\u00e3o Entender Session e Cookies \u00e9 um divisor de \u00e1guas para quem deseja trabalhar com desenvolvimento web. Depois que esses conceitos ficam claros, fica muito mais f\u00e1cil compreender autentica\u00e7\u00e3o, \u00e1reas protegidas, APIs, sistemas administrativos e at\u00e9 mecanismos modernos como JWT. Mais importante do que decorar c\u00f3digo \u00e9 entender o funcionamento das tecnologias. Esse \u00e9 justamente o objetivo do canal Desvendando o C\u00f3digo: mostrar o que acontece por tr\u00e1s das aplica\u00e7\u00f5es e ensinar programa\u00e7\u00e3o atrav\u00e9s de projetos reais. Se este conte\u00fado foi \u00fatil para voc\u00ea, acompanhe o canal para aprender JavaScript, Node.js, React, bancos de dados, APIs e muito mais, sempre colocando a teoria em pr\u00e1tica.<\/p>\n","protected":false},"author":1,"featured_media":2159,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[21],"tags":[],"_links":{"self":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2158"}],"collection":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2158"}],"version-history":[{"count":4,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2158\/revisions"}],"predecessor-version":[{"id":2165,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2158\/revisions\/2165"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=\/wp\/v2\/media\/2159"}],"wp:attachment":[{"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/desvendandoocodigo.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}