{"id":18040,"date":"2026-09-10T08:46:51","date_gmt":"2026-09-10T11:46:51","guid":{"rendered":"https:\/\/www.homehost.com.br\/blog\/?p=18040"},"modified":"2026-09-11T19:37:04","modified_gmt":"2026-09-11T22:37:04","slug":"cabecalhos-http","status":"publish","type":"post","link":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/","title":{"rendered":"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Cabe\u00e7alhos HTTP s\u00e3o as linhas de informa\u00e7\u00e3o que acompanham toda requisi\u00e7\u00e3o e toda resposta na web. Eles n\u00e3o s\u00e3o o conte\u00fado da p\u00e1gina \u2014 s\u00e3o o que descreve o conte\u00fado, quem est\u00e1 pedindo, e o que fazer com ele.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea nunca os v\u00ea navegando, mas eles decidem coisas vis\u00edveis: se a p\u00e1gina \u00e9 cacheada, se o navegador confia no site, se um formul\u00e1rio de outro dom\u00ednio pode enviar dados, e se uma imagem carrega ou n\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este \u00e9 o guia de refer\u00eancia: <strong>os principais cabe\u00e7alhos agrupados por fun\u00e7\u00e3o<\/strong>, os que todo site deveria enviar por seguran\u00e7a, os que vazam informa\u00e7\u00e3o demais, e como ver os do seu site em dez segundos.<\/p>\n\n\n\n<div style=\"border:1px solid #9db4d6; border-left:4px solid #0b3d91; background:#eef3fa; border-radius:8px; padding:18px 22px; margin:24px 0; font-family:Arial, Helvetica, sans-serif;\">\n<div style=\"font-weight:700; color:#0b3d91; margin-bottom:8px; text-transform:uppercase; letter-spacing:.05em; font-size:14px;\">Resposta r\u00e1pida<\/div>\n<table style=\"width:100%; border-collapse:collapse; margin-top:4px; font-size:14px; color:#16243d;\">\n<tr><td style=\"padding:6px 8px; width:230px;\"><strong>O que s\u00e3o<\/strong><\/td><td style=\"padding:6px 8px;\">Linhas de metadados que acompanham requisi\u00e7\u00f5es e respostas<\/td><\/tr>\n<tr><td style=\"padding:6px 8px;\"><strong>Formato<\/strong><\/td><td style=\"padding:6px 8px;\"><code style=\"background:#fff; border:1px solid #9db4d6; padding:1px 5px; border-radius:4px; color:#16243d;\">Nome: valor<\/code>, uma por linha<\/td><\/tr>\n<tr><td style=\"padding:6px 8px;\"><strong>Quantos existem<\/strong><\/td><td style=\"padding:6px 8px;\">Mais de 100 registrados, e qualquer um pode criar os seus<\/td><\/tr>\n<tr><td style=\"padding:6px 8px;\"><strong>Como ver os do meu site<\/strong><\/td><td style=\"padding:6px 8px;\"><code style=\"background:#fff; border:1px solid #9db4d6; padding:1px 5px; border-radius:4px; color:#16243d;\">curl -I https:\/\/seusite.com.br<\/code><\/td><\/tr>\n<tr><td style=\"padding:6px 8px;\"><strong>Os mais importantes<\/strong><\/td><td style=\"padding:6px 8px;\">Os de seguran\u00e7a \u2014 e a maioria dos sites n\u00e3o envia nenhum<\/td><\/tr>\n<\/table>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_72 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Conte\u00fado<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#O_que_e_um_cabecalho_HTTP\" title=\"O que \u00e9 um cabe\u00e7alho HTTP\">O que \u00e9 um cabe\u00e7alho HTTP<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Requisicao_e_resposta_usam_cabecalhos_diferentes\" title=\"Requisi\u00e7\u00e3o e resposta usam cabe\u00e7alhos diferentes\">Requisi\u00e7\u00e3o e resposta usam cabe\u00e7alhos diferentes<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Como_ver_os_cabecalhos_do_seu_site\" title=\"Como ver os cabe\u00e7alhos do seu site\">Como ver os cabe\u00e7alhos do seu site<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Uma_requisicao_real_do_comeco_ao_fim\" title=\"Uma requisi\u00e7\u00e3o real, do come\u00e7o ao fim\">Uma requisi\u00e7\u00e3o real, do come\u00e7o ao fim<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cabecalhos_de_identificacao\" title=\"Cabe\u00e7alhos de identifica\u00e7\u00e3o\">Cabe\u00e7alhos de identifica\u00e7\u00e3o<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Por_que_o_Host_mudou_a_internet\" title=\"Por que o Host mudou a internet\">Por que o Host mudou a internet<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#E_o_Referer_esta_escrito_errado\" title=\"E o Referer est\u00e1 escrito errado\">E o Referer est\u00e1 escrito errado<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cabecalhos_de_conteudo\" title=\"Cabe\u00e7alhos de conte\u00fado\">Cabe\u00e7alhos de conte\u00fado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cabecalhos_de_cache\" title=\"Cabe\u00e7alhos de cache\">Cabe\u00e7alhos de cache<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cache-Control_em_detalhe\" title=\"Cache-Control em detalhe\">Cache-Control em detalhe<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cabecalhos_de_seguranca\" title=\"Cabe\u00e7alhos de seguran\u00e7a\">Cabe\u00e7alhos de seguran\u00e7a<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#O_conjunto_minimo_pronto_para_copiar\" title=\"O conjunto m\u00ednimo, pronto para copiar\">O conjunto m\u00ednimo, pronto para copiar<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Como_testar_o_resultado\" title=\"Como testar o resultado\">Como testar o resultado<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cabecalhos_de_autenticacao_e_sessao\" title=\"Cabe\u00e7alhos de autentica\u00e7\u00e3o e sess\u00e3o\">Cabe\u00e7alhos de autentica\u00e7\u00e3o e sess\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cabecalhos_de_CORS\" title=\"Cabe\u00e7alhos de CORS\">Cabe\u00e7alhos de CORS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Os_cabecalhos_que_vazam_informacao\" title=\"Os cabe\u00e7alhos que vazam informa\u00e7\u00e3o\">Os cabe\u00e7alhos que vazam informa\u00e7\u00e3o<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#O_prefixo_X-_e_por_que_ele_foi_abandonado\" title=\"O prefixo X- e por que ele foi abandonado\">O prefixo X- e por que ele foi abandonado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Cabecalhos_e_HTTP3\" title=\"Cabe\u00e7alhos e HTTP\/3\">Cabe\u00e7alhos e HTTP\/3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Perguntas_frequentes\" title=\"Perguntas frequentes\">Perguntas frequentes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#Conclusao\" title=\"Conclus\u00e3o\">Conclus\u00e3o<\/a><\/li><\/ul><\/nav><\/div>\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_que_e_um_cabecalho_HTTP\"><\/span>O que \u00e9 um cabe\u00e7alho HTTP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Toda mensagem <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/o-que-e-http\/\">HTTP<\/a> tem duas partes: <strong>os cabe\u00e7alhos e o corpo.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O corpo \u00e9 o conte\u00fado<\/strong> \u2014 o HTML da p\u00e1gina, a imagem, o JSON da API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Os cabe\u00e7alhos s\u00e3o a informa\u00e7\u00e3o sobre esse conte\u00fado<\/strong> \u2014 o que ele \u00e9, quanto ocupa, por quanto tempo pode ser guardado, quem est\u00e1 pedindo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O formato \u00e9 sempre o mesmo:<\/strong><\/p>\n\n\n\n<div style=\"background:#1A2238; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n<code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre; background:transparent !important; border:0 !important; padding:0 !important; display:block;\">Nome-Do-Cabe\u00e7alho: valor<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Uma por linha<\/strong>, e o nome <strong>n\u00e3o diferencia mai\u00fasculas de min\u00fasculas<\/strong> \u2014 <code>Content-Type<\/code> e <code>content-type<\/code> s\u00e3o o mesmo cabe\u00e7alho.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Requisicao_e_resposta_usam_cabecalhos_diferentes\"><\/span>Requisi\u00e7\u00e3o e resposta usam cabe\u00e7alhos diferentes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Essa \u00e9 a distin\u00e7\u00e3o que resolve metade da confus\u00e3o.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Os cabe\u00e7alhos de requisi\u00e7\u00e3o<\/strong> s\u00e3o enviados pelo navegador. Eles dizem quem est\u00e1 pedindo, o que aceita receber, e em que idioma.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Os cabe\u00e7alhos de resposta<\/strong> v\u00eam do servidor. Eles descrevem o que est\u00e1 sendo entregue, por quanto tempo vale, e que regras de seguran\u00e7a aplicar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>Alguns aparecem nos dois<\/strong>, como <code>Content-Type<\/code> \u2014 na requisi\u00e7\u00e3o, descreve o que voc\u00ea est\u00e1 enviando; na resposta, o que est\u00e1 recebendo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_ver_os_cabecalhos_do_seu_site\"><\/span>Como ver os cabe\u00e7alhos do seu site<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Antes das tabelas, vale testar no seu pr\u00f3prio site<\/strong> \u2014 os cabe\u00e7alhos ficam muito mais concretos quando voc\u00ea v\u00ea os seus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pelo terminal<\/strong>, a forma mais r\u00e1pida:<\/p>\n\n\n\n<div style=\"background:#1A2238; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n<code style=\"color:#f1f5f9; font-size:13.5px; white-space:pre; background:transparent !important; border:0 !important; padding:0 !important; display:block;\">curl -I https:\/\/seusite.com.br<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A op\u00e7\u00e3o <code>-I<\/code> pede apenas os cabe\u00e7alhos<\/strong>, sem baixar o conte\u00fado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pelo navegador<\/strong>, sem instalar nada: pressione <code>F12<\/code>, v\u00e1 \u00e0 aba <strong>Rede<\/strong>, recarregue a p\u00e1gina e clique na primeira linha. Os cabe\u00e7alhos de requisi\u00e7\u00e3o e de resposta aparecem separados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>E se quiser ver tamb\u00e9m os cabe\u00e7alhos que voc\u00ea envia:<\/strong><\/p>\n\n\n\n<div style=\"background:#1A2238; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n<code style=\"color:#f1f5f9; font-size:13.5px; white-space:pre; background:transparent !important; border:0 !important; padding:0 !important; display:block;\">curl -v https:\/\/seusite.com.br<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>As linhas com <code>&gt;<\/code> s\u00e3o o que sai; as com <code>&lt;<\/code> s\u00e3o o que volta.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Uma_requisicao_real_do_comeco_ao_fim\"><\/span>Uma requisi\u00e7\u00e3o real, do come\u00e7o ao fim<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/anatomia-requisicao-http-1024x576.png\" alt=\"Anatomia de uma requisi\u00e7\u00e3o HTTP com os cabe\u00e7alhos enviados pelo navegador \u00e0 esquerda e os devolvidos pelo servidor \u00e0 direita, com destaque para o cabe\u00e7alho Host como o \u00fanico obrigat\u00f3rio\" class=\"wp-image-18041\" width=\"1024\" height=\"576\" srcset=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/anatomia-requisicao-http-1024x576.png 1024w, https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/anatomia-requisicao-http-300x169.png 300w, https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/anatomia-requisicao-http-768x432.png 768w, https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/anatomia-requisicao-http-1536x864.png 1536w, https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/anatomia-requisicao-http.png 1672w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00c9 assim que a conversa acontece de verdade.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O navegador envia:<\/strong><\/p>\n\n\n\n<div style=\"background:#1A2238; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n<code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre; background:transparent !important; border:0 !important; padding:0 !important; display:block;\">GET \/contato HTTP\/1.1\nHost: exemplo.com.br\nUser-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64)\nAccept: text\/html,application\/xhtml+xml\nAccept-Language: pt-BR,pt;q=0.9\nAccept-Encoding: gzip, deflate, br\nConnection: keep-alive<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">E o servidor responde:<\/p>\n\n\n\n<div style=\"background:#1A2238; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n<code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre; background:transparent !important; border:0 !important; padding:0 !important; display:block;\">HTTP\/1.1 200 OK\nContent-Type: text\/html; charset=UTF-8\nContent-Length: 4823\nContent-Encoding: gzip\nCache-Control: max-age=3600\nStrict-Transport-Security: max-age=31536000\nDate: Wed, 10 Sep 2026 14:22:03 GMT<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>Repare no <code>Host<\/code>.<\/strong> Ele \u00e9 o \u00fanico cabe\u00e7alho <strong>obrigat\u00f3rio<\/strong> no HTTP\/1.1 \u2014 e sem ele n\u00e3o existiria hospedagem compartilhada. Voltaremos a isso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cabecalhos_de_identificacao\"><\/span>Cabe\u00e7alhos de identifica\u00e7\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Enviados pelo navegador<\/strong>, dizem quem est\u00e1 do outro lado.<\/p>\n\n\n\n<div style=\"overflow-x:auto; margin:24px 0;\">\n<table style=\"width:100%; border-collapse:collapse; font-family:Arial, Helvetica, sans-serif; font-size:14.5px; min-width:620px;\">\n<thead>\n<tr style=\"background-color:#0b3d91; color:#ffffff; text-align:left;\">\n<th style=\"padding:12px 14px; border:1px solid #0b3d91; color:#ffffff; width:200px;\">Cabe\u00e7alho<\/th>\n<th style=\"padding:12px 14px; border:1px solid #0b3d91; color:#ffffff;\">O que informa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background-color:#f2f4f8;\"><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">Host<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Qual site est\u00e1 sendo pedido. <strong style=\"color:#1A2238;\">Obrigat\u00f3rio desde o HTTP\/1.1<\/strong><\/td><\/tr>\n<tr><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">User-Agent<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Navegador, vers\u00e3o e sistema operacional<\/td><\/tr>\n<tr style=\"background-color:#f2f4f8;\"><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">Referer<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">De qual p\u00e1gina o visitante veio<\/td><\/tr>\n<tr><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">Accept-Language<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Idiomas preferidos, em ordem<\/td><\/tr>\n<tr style=\"background-color:#f2f4f8;\"><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">X-Forwarded-For<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">O IP real do visitante, quando h\u00e1 proxy ou CDN no caminho<\/td><\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Por_que_o_Host_mudou_a_internet\"><\/span>Por que o <code>Host<\/code> mudou a internet<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No HTTP\/1.0, o cabe\u00e7alho n\u00e3o existia<\/strong> \u2014 e a consequ\u00eancia era grave: <strong>um endere\u00e7o IP s\u00f3 podia servir um site.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O <code>Host<\/code> resolveu isso.<\/strong> Ao informar qual site est\u00e1 sendo pedido, ele permite que o servidor decida qual conte\u00fado entregar \u2014 e por isso um \u00fanico IP hospeda centenas de dom\u00ednios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>A <a href=\"https:\/\/www.homehost.com.br\/blog\/hospedagem-de-sites\/o-que-e-hospedagem-compartilhada\/\">hospedagem compartilhada<\/a> existe por causa desse cabe\u00e7alho.<\/strong> Sem ele, cada site precisaria de um IP pr\u00f3prio \u2014 e os endere\u00e7os IPv4 teriam acabado d\u00e9cadas atr\u00e1s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"E_o_Referer_esta_escrito_errado\"><\/span>E o <code>Referer<\/code> est\u00e1 escrito errado<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>N\u00e3o \u00e9 engano de digita\u00e7\u00e3o do artigo.<\/strong> A palavra correta em ingl\u00eas \u00e9 <em>referrer<\/em>, com dois erres \u2014 mas a especifica\u00e7\u00e3o original, de 1996, saiu com um erre s\u00f3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Quando perceberam, j\u00e1 era tarde:<\/strong> corrigir quebraria todas as implementa\u00e7\u00f5es existentes. <strong>O erro virou padr\u00e3o<\/strong>, e est\u00e1 l\u00e1 at\u00e9 hoje.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>Curiosamente, o cabe\u00e7alho moderno que controla seu comportamento \u2014 <code>Referrer-Policy<\/code> \u2014 usa a grafia correta.<\/strong> Os dois convivem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cabecalhos_de_conteudo\"><\/span>Cabe\u00e7alhos de conte\u00fado<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Descrevem o que est\u00e1 sendo enviado.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cabe\u00e7alho<\/th><th>O que informa<\/th><\/tr><\/thead><tbody><tr><td><code>Content-Type<\/code><\/td><td>O tipo do conte\u00fado: <code>text\/html<\/code>, <code>image\/png<\/code>, <code>application\/json<\/code><\/td><\/tr><tr><td><code>Content-Length<\/code><\/td><td>O tamanho em bytes<\/td><\/tr><tr><td><code>Content-Encoding<\/code><\/td><td>A compress\u00e3o usada: <code>gzip<\/code>, <code>br<\/code> (Brotli)<\/td><\/tr><tr><td><code>Content-Disposition<\/code><\/td><td>Se o arquivo deve ser exibido ou baixado<\/td><\/tr><tr><td><code>Accept<\/code><\/td><td>Os tipos que o navegador aceita receber<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>O <code>Content-Type<\/code> \u00e9 mais importante do que parece.<\/strong> Se ele estiver errado, o navegador pode exibir c\u00f3digo-fonte em vez da p\u00e1gina, ou baixar um arquivo que deveria abrir. <strong>E o <code>charset=UTF-8<\/code> nele \u00e9 o que faz os acentos aparecerem corretamente.<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando os acentos aparecem errados, apesar do cabe\u00e7alho correto, o problema est\u00e1 na p\u00e1gina ou no banco \u2014 nosso guia sobre <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/caracteres-especiais-acentos-html\/\">caracteres especiais e acentos em HTML<\/a> cobre os dois casos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O <code>Content-Disposition<\/code> tem um uso pr\u00e1tico:<\/strong> <code>attachment; filename=\"relatorio.pdf\"<\/code> for\u00e7a o download em vez da exibi\u00e7\u00e3o \u2014 \u00fatil em \u00e1rea de arquivos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cabecalhos_de_cache\"><\/span>Cabe\u00e7alhos de cache<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cache-control-diretivas-819x1024.png\" alt=\"As seis diretivas do Cache-Control e o que cada uma faz, com destaque para a diferen\u00e7a entre no-cache, que manda revalidar, e no-store, que pro\u00edbe o armazenamento\" class=\"wp-image-18042\" width=\"819\" height=\"1024\" srcset=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cache-control-diretivas-819x1024.png 819w, https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cache-control-diretivas-240x300.png 240w, https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cache-control-diretivas-767x959.png 767w, https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cache-control-diretivas.png 1122w\" sizes=\"(max-width: 819px) 100vw, 819px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>S\u00e3o os que mais afetam a velocidade do site<\/strong>, e os menos configurados.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cabe\u00e7alho<\/th><th>O que faz<\/th><\/tr><\/thead><tbody><tr><td><code>Cache-Control<\/code><\/td><td>Define as regras de cache. <strong>O principal<\/strong><\/td><\/tr><tr><td><code>ETag<\/code><\/td><td>Uma &#8220;impress\u00e3o digital&#8221; do arquivo, para verificar se mudou<\/td><\/tr><tr><td><code>Last-Modified<\/code><\/td><td>A data da \u00faltima altera\u00e7\u00e3o<\/td><\/tr><tr><td><code>Expires<\/code><\/td><td>Data de validade \u2014 formato antigo, substitu\u00eddo pelo <code>Cache-Control<\/code><\/td><\/tr><tr><td><code>Age<\/code><\/td><td>H\u00e1 quanto tempo a resposta est\u00e1 no cache de um intermedi\u00e1rio<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cache-Control_em_detalhe\"><\/span>Cache-Control em detalhe<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>As diretivas mais usadas:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>max-age=3600<\/code><\/strong> \u2014 pode guardar por 3.600 segundos, ou uma hora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>public<\/code><\/strong> \u2014 qualquer cache pode guardar, incluindo CDNs e proxies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>private<\/code><\/strong> \u2014 s\u00f3 o navegador do visitante. <strong>Use para p\u00e1ginas com dados de conta.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>no-store<\/code><\/strong> \u2014 n\u00e3o guarde em lugar nenhum, nunca.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>immutable<\/code><\/strong> \u2014 o arquivo nunca muda; nem revalide.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>E a confus\u00e3o mais comum do HTTP inteiro: <code>no-cache<\/code> n\u00e3o significa &#8220;n\u00e3o cacheie&#8221;.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ele significa &#8220;guarde, mas revalide antes de usar&#8221;.<\/strong> O navegador armazena a resposta e, na pr\u00f3xima visita, pergunta ao servidor se ela ainda vale \u2014 se sim, recebe um <code>304 Not Modified<\/code> e usa a c\u00f3pia local.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Quem quer proibir o armazenamento usa <code>no-store<\/code>.<\/strong> S\u00e3o coisas diferentes, e troc\u00e1-las \u00e9 o erro mais frequente em configura\u00e7\u00e3o de cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nosso guia sobre <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/o-que-e-cache\/\">cache<\/a> explica como as camadas se encaixam.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cabecalhos_de_seguranca\"><\/span>Cabe\u00e7alhos de seguran\u00e7a<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Esta \u00e9 a se\u00e7\u00e3o mais acion\u00e1vel do artigo<\/strong> \u2014 e a maioria dos sites n\u00e3o envia nenhum deles.<\/p>\n\n\n\n<div style=\"overflow-x:auto; margin:24px 0;\">\n<table style=\"width:100%; border-collapse:collapse; font-family:Arial, Helvetica, sans-serif; font-size:14.5px; min-width:680px;\">\n<thead>\n<tr style=\"background-color:#0b3d91; color:#ffffff; text-align:left;\">\n<th style=\"padding:12px 14px; border:1px solid #0b3d91; color:#ffffff; width:230px;\">Cabe\u00e7alho<\/th>\n<th style=\"padding:12px 14px; border:1px solid #0b3d91; color:#ffffff;\">O que previne<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background-color:#f2f4f8;\"><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">Strict-Transport-Security<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Obriga o navegador a usar sempre HTTPS, mesmo se digitarem <code style=\"background:#e4e8ee; padding:1px 5px; border-radius:4px; color:#1A2238;\">http:\/\/<\/code><\/td><\/tr>\n<tr><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">Content-Security-Policy<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Define quais scripts e recursos podem carregar. Barra ataques de XSS<\/td><\/tr>\n<tr style=\"background-color:#f2f4f8;\"><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">X-Frame-Options<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Impede que seu site seja exibido dentro de um iframe alheio (clickjacking)<\/td><\/tr>\n<tr><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">X-Content-Type-Options<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Impede o navegador de adivinhar o tipo do arquivo e execut\u00e1-lo errado<\/td><\/tr>\n<tr style=\"background-color:#f2f4f8;\"><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">Referrer-Policy<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Controla quanta informa\u00e7\u00e3o sobre a origem do visitante \u00e9 repassada<\/td><\/tr>\n<tr><td style=\"padding:11px 14px; border:1px solid #d5dce5;\"><code style=\"background:#1A2238; color:#f1f5f9; padding:3px 8px; border-radius:4px; font-family:'Courier New', Courier, monospace; font-size:13px; white-space:nowrap;\">Permissions-Policy<\/code><\/td><td style=\"padding:11px 14px; border:1px solid #d5dce5; color:#1A2238;\">Define quais recursos do dispositivo a p\u00e1gina pode usar \u2014 c\u00e2mera, microfone, localiza\u00e7\u00e3o<\/td><\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_conjunto_minimo_pronto_para_copiar\"><\/span>O conjunto m\u00ednimo, pronto para copiar<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No <code>.htaccess<\/code> de um servidor Apache ou LiteSpeed:<\/strong><\/p>\n\n\n\n<div style=\"background:#1A2238; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n<code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre; background:transparent !important; border:0 !important; padding:0 !important; display:block;\">&lt;IfModule mod_headers.c&gt;\n    Header always set Strict-Transport-Security \"max-age=31536000; includeSubDomains\"\n    Header always set X-Content-Type-Options \"nosniff\"\n    Header always set X-Frame-Options \"SAMEORIGIN\"\n    Header always set Referrer-Policy \"strict-origin-when-cross-origin\"\n&lt;\/IfModule&gt;<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>Quatro cuidados antes de aplicar:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O <code>Strict-Transport-Security<\/code> s\u00f3 deve ser ativado com HTTPS funcionando em todo o site.<\/strong> Depois de enviado, o navegador se recusa a acessar por HTTP pelo tempo definido \u2014 e um ano \u00e9 bastante tempo se algo der errado. <strong>Comece com <code>max-age=300<\/code> e aumente depois de confirmar.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O <code>includeSubDomains<\/code> estende a regra a todos os subdom\u00ednios<\/strong> \u2014 inclusive os que voc\u00ea esqueceu que existem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O <code>X-Frame-Options: SAMEORIGIN<\/code><\/strong> permite iframe apenas do pr\u00f3prio site. Se voc\u00ea embute o seu conte\u00fado em outro dom\u00ednio, isso quebra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>E o <code>Content-Security-Policy<\/code> n\u00e3o est\u00e1 na lista de prop\u00f3sito.<\/strong> Ele \u00e9 o mais poderoso e o mais f\u00e1cil de configurar errado \u2014 <strong>um CSP mal escrito quebra o site inteiro.<\/strong> Vale estudar antes de aplicar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_testar_o_resultado\"><\/span>Como testar o resultado<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ferramentas gratuitas avaliam os cabe\u00e7alhos do seu site e d\u00e3o uma nota.<\/strong> O <code>securityheaders.com<\/code> \u00e9 o mais usado \u2014 cola a URL e ele lista o que falta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cabecalhos_de_autenticacao_e_sessao\"><\/span>Cabe\u00e7alhos de autentica\u00e7\u00e3o e sess\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cabe\u00e7alho<\/th><th>O que faz<\/th><\/tr><\/thead><tbody><tr><td><code>Authorization<\/code><\/td><td>Envia as credenciais: <code>Bearer token<\/code>, <code>Basic usu\u00e1rio:senha<\/code><\/td><\/tr><tr><td><code>WWW-Authenticate<\/code><\/td><td>O servidor informa qual autentica\u00e7\u00e3o espera. <strong>Acompanha todo <a href=\"https:\/\/www.homehost.com.br\/blog\/tutoriais\/erro-401\/\">erro 401<\/a><\/strong><\/td><\/tr><tr><td><code>Cookie<\/code><\/td><td>O navegador devolve os cookies que recebeu<\/td><\/tr><tr><td><code>Set-Cookie<\/code><\/td><td>O servidor define um cookie no navegador<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>E aqui est\u00e1 a causa mais comum do erro <code>431 Request Header Fields Too Large<\/code>:<\/strong> cookies acumulados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cada cookie definido no dom\u00ednio \u00e9 reenviado em toda requisi\u00e7\u00e3o.<\/strong> Um site com muitos plugins, ferramentas de an\u00e1lise e testes A\/B pode acumular dezenas \u2014 e quando o total ultrapassa o limite do servidor, geralmente 8 KB, as requisi\u00e7\u00f5es passam a falhar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A solu\u00e7\u00e3o \u00e9 limpar os cookies do dom\u00ednio<\/strong>, e do lado do servidor, revisar o que est\u00e1 sendo definido.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cabecalhos_de_CORS\"><\/span>Cabe\u00e7alhos de CORS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>CORS resolve um problema espec\u00edfico:<\/strong> por padr\u00e3o, o navegador <strong>bloqueia<\/strong> requisi\u00e7\u00f5es de um dom\u00ednio para outro. \u00c9 uma prote\u00e7\u00e3o \u2014 sem ela, qualquer site poderia ler dados da sua conta em outro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Os cabe\u00e7alhos de CORS s\u00e3o como o servidor autoriza exce\u00e7\u00f5es.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Cabe\u00e7alho<\/th><th>O que faz<\/th><\/tr><\/thead><tbody><tr><td><code>Access-Control-Allow-Origin<\/code><\/td><td>Quais dom\u00ednios podem acessar. <strong>O principal<\/strong><\/td><\/tr><tr><td><code>Access-Control-Allow-Methods<\/code><\/td><td>Quais m\u00e9todos s\u00e3o permitidos<\/td><\/tr><tr><td><code>Access-Control-Allow-Headers<\/code><\/td><td>Quais cabe\u00e7alhos o cliente pode enviar<\/td><\/tr><tr><td><code>Access-Control-Allow-Credentials<\/code><\/td><td>Se cookies podem ser enviados junto<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong><code>Access-Control-Allow-Origin: *<\/code> libera para qualquer dom\u00ednio.<\/strong> \u00c9 conveniente e quase sempre errado \u2014 <strong>especifique os dom\u00ednios que precisam de acesso.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Os_cabecalhos_que_vazam_informacao\"><\/span>Os cabe\u00e7alhos que vazam informa\u00e7\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Alguns servidores anunciam mais do que deveriam.<\/strong><\/p>\n\n\n\n<div style=\"background:#1A2238; border-radius:8px; padding:16px 18px; margin:18px 0; font-family:'Courier New', Courier, monospace; overflow-x:auto;\">\n<code style=\"color:#f1f5f9; font-size:13.5px; line-height:1.7; white-space:pre; background:transparent !important; border:0 !important; padding:0 !important; display:block;\">Server: Apache\/2.4.41 (Ubuntu)\nX-Powered-By: PHP\/7.4.3<\/code>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Essas duas linhas informam a vers\u00e3o exata do servidor e do PHP.<\/strong> Para quem procura alvos, \u00e9 meio caminho andado \u2014 basta cruzar com a lista de vulnerabilidades conhecidas daquelas vers\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como reduzir:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No Apache, <code>ServerTokens Prod<\/code> e <code>ServerSignature Off<\/code>.<br>No PHP, <code>expose_php = Off<\/code> no <code>php.ini<\/code>.<br>E no <code>.htaccess<\/code>, <code>Header unset X-Powered-By<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>Isso n\u00e3o substitui manter tudo atualizado<\/strong> \u2014 \u00e9 uma camada a menos de informa\u00e7\u00e3o para quem varre a internet procurando vers\u00f5es vulner\u00e1veis. <strong>Manter atualizado continua sendo o que importa.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"O_prefixo_X-_e_por_que_ele_foi_abandonado\"><\/span>O prefixo <code>X-<\/code> e por que ele foi abandonado<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Voc\u00ea vai encontrar muitos cabe\u00e7alhos come\u00e7ando com <code>X-<\/code><\/strong> \u2014 <code>X-Frame-Options<\/code>, <code>X-Forwarded-For<\/code>, <code>X-Powered-By<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A conven\u00e7\u00e3o era essa:<\/strong> cabe\u00e7alhos n\u00e3o oficiais deveriam usar o prefixo, para se distinguirem dos padronizados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O problema apareceu na pr\u00e1tica.<\/strong> V\u00e1rios <code>X-<\/code> viraram t\u00e3o usados que foram padronizados \u2014 e a\u00ed ficaram com um prefixo dizendo que n\u00e3o eram padr\u00e3o. Renomear quebraria tudo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>Em 2012, a RFC 6648 desaconselhou formalmente o prefixo.<\/strong> Mas os que j\u00e1 existiam ficaram, e continuam em uso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Se voc\u00ea for criar um cabe\u00e7alho personalizado hoje<\/strong>, use um nome descritivo sem o <code>X-<\/code> \u2014 algo como <code>Minha-Empresa-Versao<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cabecalhos_e_HTTP3\"><\/span>Cabe\u00e7alhos e HTTP\/3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No HTTP\/1.1, os cabe\u00e7alhos s\u00e3o texto puro<\/strong> \u2014 \u00e9 por isso que voc\u00ea consegue l\u00ea-los diretamente numa conex\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>No HTTP\/2 e no <a href=\"https:\/\/www.homehost.com.br\/blog\/internet\/http3\/\">HTTP\/3<\/a>, eles s\u00e3o comprimidos<\/strong> por HPACK e QPACK respectivamente. <strong>A economia \u00e9 significativa<\/strong>: cabe\u00e7alhos repetidos entre requisi\u00e7\u00f5es s\u00e3o enviados apenas uma vez.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Na pr\u00e1tica, nada muda para voc\u00ea.<\/strong> O navegador e o servidor cuidam da compress\u00e3o, e as ferramentas exibem os cabe\u00e7alhos j\u00e1 descomprimidos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x26a0;&#xfe0f; <strong>Um detalhe vis\u00edvel:<\/strong> no HTTP\/2 e HTTP\/3, os nomes dos cabe\u00e7alhos s\u00e3o sempre <strong>min\u00fasculos<\/strong>. Se voc\u00ea vir <code>content-type<\/code> em vez de <code>Content-Type<\/code> no DevTools, \u00e9 sinal de que a conex\u00e3o est\u00e1 usando uma dessas vers\u00f5es.<\/p>\n\n\n\n<div style=\"max-width:760px; margin:32px auto; background:linear-gradient(135deg,#1a73e8 0%,#0b3d91 100%); border-radius:16px; padding:32px 28px; font-family:Arial, Helvetica, sans-serif; color:#fff; box-shadow:0 10px 30px rgba(26,115,232,.25);\">\n<div style=\"display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap;\">\n<div style=\"flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:12px; background:rgba(255,255,255,.18);\">\n<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"><\/path><path d=\"M9 12l2 2 4-4\"><\/path><\/svg>\n<\/div>\n<div style=\"flex:1 1 320px; min-width:260px;\">\n<div style=\"font-weight:800; line-height:1.25; margin-bottom:8px; font-size:19px;\">Um <code style=\"background:rgba(255,255,255,.15); padding:1px 6px; border-radius:4px;\">.htaccess<\/code> mal escrito derruba o site inteiro<\/div>\n<p style=\"margin:0 0 18px; line-height:1.6; color:#ffffff;\">Editar cabe\u00e7alhos exige acesso ao arquivo de configura\u00e7\u00e3o \u2014 e um erro de sintaxe ali gera erro 500 em todas as p\u00e1ginas. Na Homehost voc\u00ea tem gerenciador de arquivos com backup antes de editar, logs de erro \u00e0 m\u00e3o, e suporte em portugu\u00eas quando algo n\u00e3o sobe. Servidores no Brasil, a partir de R$ 7,90\/m\u00eas.<\/p>\n<a href=\"https:\/\/www.homehost.com.br\/hospedagem-de-sites\/\" style=\"display:inline-flex; align-items:center; gap:8px; background:#fff; color:#0b3d91; font-weight:700; text-decoration:none; padding:13px 26px; border-radius:10px; box-shadow:0 4px 12px rgba(0,0,0,.15);\">\nVer planos de hospedagem\n<svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0b3d91\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"><\/path><\/svg>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Perguntas_frequentes\"><\/span>Perguntas frequentes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O que s\u00e3o cabe\u00e7alhos HTTP?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00e3o linhas de informa\u00e7\u00e3o que acompanham toda requisi\u00e7\u00e3o e resposta na web, no formato <code>Nome: valor<\/code>. Eles n\u00e3o cont\u00eam o conte\u00fado da p\u00e1gina \u2014 descrevem o conte\u00fado, quem est\u00e1 pedindo, e as regras a aplicar: cache, seguran\u00e7a, tipo de arquivo e autentica\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Como ver os cabe\u00e7alhos de um site?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pelo terminal, com <code>curl -I https:\/\/seusite.com.br<\/code>, que mostra apenas os cabe\u00e7alhos de resposta. Ou pelo navegador: <code>F12<\/code>, aba <strong>Rede<\/strong>, recarregar a p\u00e1gina e clicar na primeira linha. <strong>Para ver tamb\u00e9m o que voc\u00ea envia<\/strong>, use <code>curl -v<\/code> \u2014 as linhas com <code>&gt;<\/code> s\u00e3o a requisi\u00e7\u00e3o e as com <code>&lt;<\/code> a resposta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Qual a diferen\u00e7a entre cabe\u00e7alho de requisi\u00e7\u00e3o e de resposta?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os de <strong>requisi\u00e7\u00e3o<\/strong> v\u00eam do navegador e dizem quem est\u00e1 pedindo, o que aceita receber e em que idioma. Os de <strong>resposta<\/strong> v\u00eam do servidor e descrevem o que est\u00e1 sendo entregue, por quanto tempo vale e que regras de seguran\u00e7a aplicar. Alguns, como o <code>Content-Type<\/code>, aparecem nos dois com significados espelhados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Quais cabe\u00e7alhos de seguran\u00e7a devo usar?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quatro cobrem a maioria dos casos: <strong><code>Strict-Transport-Security<\/code><\/strong> para for\u00e7ar HTTPS, <strong><code>X-Content-Type-Options: nosniff<\/code><\/strong> para impedir que o navegador adivinhe tipos de arquivo, <strong><code>X-Frame-Options: SAMEORIGIN<\/code><\/strong> contra clickjacking, e <strong><code>Referrer-Policy<\/code><\/strong> para controlar o que \u00e9 repassado. O <code>Content-Security-Policy<\/code> \u00e9 o mais poderoso, e o mais f\u00e1cil de configurar errado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Qual a diferen\u00e7a entre <code>no-cache<\/code> e <code>no-store<\/code>?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>no-cache<\/code> n\u00e3o significa &#8220;n\u00e3o cacheie&#8221;.<\/strong> Ele manda guardar a resposta e revalidar com o servidor antes de us\u00e1-la. J\u00e1 <strong><code>no-store<\/code><\/strong> pro\u00edbe o armazenamento em qualquer lugar. Trocar um pelo outro \u00e9 o erro mais comum em configura\u00e7\u00e3o de cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Por que o cabe\u00e7alho <code>Referer<\/code> est\u00e1 escrito errado?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Porque a especifica\u00e7\u00e3o original, de 1996, saiu com um erre em vez de dois \u2014 a grafia correta em ingl\u00eas \u00e9 <em>referrer<\/em>. Quando o erro foi percebido, corrigi-lo quebraria as implementa\u00e7\u00f5es existentes, e ele virou padr\u00e3o. <strong>Curiosamente, o cabe\u00e7alho moderno <code>Referrer-Policy<\/code> usa a grafia certa<\/strong>, e os dois convivem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O que \u00e9 o cabe\u00e7alho <code>Host<\/code> e por que ele importa?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ele informa qual site est\u00e1 sendo pedido, e \u00e9 o <strong>\u00fanico obrigat\u00f3rio no HTTP\/1.1<\/strong>. Sem ele, um endere\u00e7o IP s\u00f3 poderia servir um site \u2014 e \u00e9 por causa desse cabe\u00e7alho que a hospedagem compartilhada existe, com centenas de dom\u00ednios num mesmo IP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Por que aparece o erro 431 no meu site?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Porque os cabe\u00e7alhos ultrapassaram o limite do servidor, geralmente 8 KB. <strong>A causa quase sempre \u00e9 cookie acumulado:<\/strong> cada cookie do dom\u00ednio \u00e9 reenviado em toda requisi\u00e7\u00e3o, e sites com muitos plugins e ferramentas de an\u00e1lise acumulam dezenas. Limpar os cookies do dom\u00ednio resolve para o visitante; do lado do servidor, vale revisar o que est\u00e1 sendo definido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Devo esconder o cabe\u00e7alho <code>Server<\/code>?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 uma boa pr\u00e1tica. Ele e o <code>X-Powered-By<\/code> informam a vers\u00e3o exata do servidor e do PHP, o que facilita para quem varre a internet procurando vers\u00f5es vulner\u00e1veis. <strong>Mas esconder n\u00e3o substitui atualizar<\/strong> \u2014 \u00e9 uma camada a menos de informa\u00e7\u00e3o, n\u00e3o uma prote\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O que significa o prefixo <code>X-<\/code> nos cabe\u00e7alhos?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Era a conven\u00e7\u00e3o para cabe\u00e7alhos n\u00e3o oficiais. <strong>Ela foi desaconselhada pela RFC 6648, em 2012<\/strong>, porque v\u00e1rios <code>X-<\/code> acabaram padronizados e ficaram com um prefixo dizendo que n\u00e3o eram padr\u00e3o. Os antigos continuam em uso; para criar um novo hoje, use um nome descritivo sem o prefixo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Posso criar meus pr\u00f3prios cabe\u00e7alhos?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pode. Qualquer aplica\u00e7\u00e3o pode definir cabe\u00e7alhos personalizados, e \u00e9 comum em APIs para versionamento, chaves e identificadores de requisi\u00e7\u00e3o. <strong>Use um nome descritivo e espec\u00edfico<\/strong>, para n\u00e3o conflitar com nenhum padr\u00e3o presente ou futuro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Os cabe\u00e7alhos mudam no HTTP\/2 e HTTP\/3?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O conte\u00fado n\u00e3o; a forma de transmitir sim. <strong>No HTTP\/1.1 eles s\u00e3o texto puro; nas vers\u00f5es seguintes s\u00e3o comprimidos<\/strong> por HPACK e QPACK. Um detalhe vis\u00edvel: no HTTP\/2 e HTTP\/3 os nomes s\u00e3o sempre min\u00fasculos \u2014 se voc\u00ea vir <code>content-type<\/code> em vez de <code>Content-Type<\/code> no DevTools, a conex\u00e3o est\u00e1 usando uma dessas vers\u00f5es.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n{\n\"@context\": \"https:\/\/schema.org\",\n\"@type\": \"FAQPage\",\n\"mainEntity\": [\n{\"@type\":\"Question\",\"name\":\"O que s\u00e3o cabe\u00e7alhos HTTP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"S\u00e3o linhas de informa\u00e7\u00e3o que acompanham toda requisi\u00e7\u00e3o e resposta na web, no formato nome e valor. Eles n\u00e3o cont\u00eam o conte\u00fado da p\u00e1gina: descrevem o conte\u00fado, quem est\u00e1 pedindo, e as regras a aplicar, como cache, seguran\u00e7a, tipo de arquivo e autentica\u00e7\u00e3o.\"}},\n{\"@type\":\"Question\",\"name\":\"Como ver os cabe\u00e7alhos de um site?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Pelo terminal, com o comando curl usando a op\u00e7\u00e3o de cabe\u00e7alhos, que mostra apenas os de resposta. Ou pelo navegador, pressionando F12, indo \u00e0 aba Rede, recarregando a p\u00e1gina e clicando na primeira linha. Para ver tamb\u00e9m o que voc\u00ea envia, use a op\u00e7\u00e3o verbose do curl.\"}},\n{\"@type\":\"Question\",\"name\":\"Qual a diferen\u00e7a entre cabe\u00e7alho de requisi\u00e7\u00e3o e de resposta?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Os de requisi\u00e7\u00e3o v\u00eam do navegador e dizem quem est\u00e1 pedindo, o que aceita receber e em que idioma. Os de resposta v\u00eam do servidor e descrevem o que est\u00e1 sendo entregue, por quanto tempo vale e que regras de seguran\u00e7a aplicar. Alguns aparecem nos dois com significados espelhados.\"}},\n{\"@type\":\"Question\",\"name\":\"Quais cabe\u00e7alhos de seguran\u00e7a devo usar?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Quatro cobrem a maioria dos casos: Strict-Transport-Security para for\u00e7ar HTTPS, X-Content-Type-Options com nosniff para impedir que o navegador adivinhe tipos de arquivo, X-Frame-Options com SAMEORIGIN contra clickjacking, e Referrer-Policy para controlar o que \u00e9 repassado. O Content-Security-Policy \u00e9 o mais poderoso e o mais f\u00e1cil de configurar errado.\"}},\n{\"@type\":\"Question\",\"name\":\"Qual a diferen\u00e7a entre no-cache e no-store?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No-cache n\u00e3o significa n\u00e3o cacheie: ele manda guardar a resposta e revalidar com o servidor antes de us\u00e1-la. J\u00e1 no-store pro\u00edbe o armazenamento em qualquer lugar. Trocar um pelo outro \u00e9 o erro mais comum em configura\u00e7\u00e3o de cache.\"}},\n{\"@type\":\"Question\",\"name\":\"Por que o cabe\u00e7alho Referer est\u00e1 escrito errado?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Porque a especifica\u00e7\u00e3o original, de 1996, saiu com um erre em vez de dois, j\u00e1 que a grafia correta em ingl\u00eas \u00e9 referrer. Quando o erro foi percebido, corrigi-lo quebraria as implementa\u00e7\u00f5es existentes, e ele virou padr\u00e3o. O cabe\u00e7alho moderno Referrer-Policy usa a grafia certa, e os dois convivem.\"}},\n{\"@type\":\"Question\",\"name\":\"O que \u00e9 o cabe\u00e7alho Host e por que ele importa?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ele informa qual site est\u00e1 sendo pedido, e \u00e9 o \u00fanico obrigat\u00f3rio no HTTP\/1.1. Sem ele, um endere\u00e7o IP s\u00f3 poderia servir um site, e \u00e9 por causa desse cabe\u00e7alho que a hospedagem compartilhada existe, com centenas de dom\u00ednios num mesmo IP.\"}},\n{\"@type\":\"Question\",\"name\":\"Por que aparece o erro 431 no meu site?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Porque os cabe\u00e7alhos ultrapassaram o limite do servidor, geralmente 8 KB. A causa quase sempre \u00e9 cookie acumulado: cada cookie do dom\u00ednio \u00e9 reenviado em toda requisi\u00e7\u00e3o, e sites com muitos plugins e ferramentas de an\u00e1lise acumulam dezenas.\"}},\n{\"@type\":\"Question\",\"name\":\"Devo esconder o cabe\u00e7alho Server?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u00c9 uma boa pr\u00e1tica. Ele e o X-Powered-By informam a vers\u00e3o exata do servidor e do PHP, o que facilita para quem varre a internet procurando vers\u00f5es vulner\u00e1veis. Mas esconder n\u00e3o substitui atualizar: \u00e9 uma camada a menos de informa\u00e7\u00e3o, n\u00e3o uma prote\u00e7\u00e3o.\"}},\n{\"@type\":\"Question\",\"name\":\"O que significa o prefixo X- nos cabe\u00e7alhos?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Era a conven\u00e7\u00e3o para cabe\u00e7alhos n\u00e3o oficiais. Ela foi desaconselhada pela RFC 6648, em 2012, porque v\u00e1rios acabaram padronizados e ficaram com um prefixo dizendo que n\u00e3o eram padr\u00e3o. Os antigos continuam em uso; para criar um novo hoje, use um nome descritivo sem o prefixo.\"}},\n{\"@type\":\"Question\",\"name\":\"Posso criar meus pr\u00f3prios cabe\u00e7alhos HTTP?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Pode. Qualquer aplica\u00e7\u00e3o pode definir cabe\u00e7alhos personalizados, e \u00e9 comum em APIs para versionamento, chaves e identificadores de requisi\u00e7\u00e3o. Use um nome descritivo e espec\u00edfico, para n\u00e3o conflitar com nenhum padr\u00e3o presente ou futuro.\"}},\n{\"@type\":\"Question\",\"name\":\"Os cabe\u00e7alhos mudam no HTTP\/2 e HTTP\/3?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"O conte\u00fado n\u00e3o; a forma de transmitir sim. No HTTP\/1.1 eles s\u00e3o texto puro; nas vers\u00f5es seguintes s\u00e3o comprimidos por HPACK e QPACK. Um detalhe vis\u00edvel \u00e9 que no HTTP\/2 e HTTP\/3 os nomes s\u00e3o sempre min\u00fasculos.\"}}\n]\n}\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusao\"><\/span>Conclus\u00e3o<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cabe\u00e7alhos HTTP s\u00e3o a parte da web que ningu\u00e9m v\u00ea e que decide quase tudo: se a p\u00e1gina \u00e9 guardada em cache, se o navegador confia no site, se os acentos aparecem certos, e se um script de outro dom\u00ednio pode rodar na sua p\u00e1gina.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tr\u00eas coisas ficam deste guia.<\/strong> Os <strong>cabe\u00e7alhos de seguran\u00e7a<\/strong> s\u00e3o os mais importantes e os menos usados \u2014 quatro linhas no <code>.htaccess<\/code> cobrem a maior parte do risco. O <strong><code>no-cache<\/code> n\u00e3o pro\u00edbe o cache<\/strong> \u2014 quem pro\u00edbe \u00e9 o <code>no-store<\/code>, e confundir os dois \u00e9 o erro mais comum da \u00e1rea. E o <strong><code>Host<\/code><\/strong> \u00e9 o cabe\u00e7alho que tornou a hospedagem compartilhada poss\u00edvel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>E o teste que confirma tudo cabe numa linha:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -I https:\/\/seusite.com.br<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Rode no seu site agora. O que aparecer ali \u00e9 o que todo visitante recebe \u2014 e provavelmente h\u00e1 duas ou tr\u00eas linhas de seguran\u00e7a faltando.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cabe\u00e7alhos HTTP s\u00e3o as linhas de informa\u00e7\u00e3o que acompanham toda requisi\u00e7\u00e3o e toda resposta na web. Eles n\u00e3o s\u00e3o o conte\u00fado da p\u00e1gina \u2014 s\u00e3o o que descreve o conte\u00fado, quem est\u00e1 pedindo, e o que fazer com ele. Voc\u00ea nunca os v\u00ea navegando, mas eles decidem coisas vis\u00edveis: se a p\u00e1gina \u00e9 cacheada, se [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":18043,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_helpful_status":1,"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[203],"tags":[],"class_list":["post-18040","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-internet"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia | Homehost<\/title>\n<meta name=\"description\" content=\"O que s\u00e3o cabe\u00e7alhos HTTP, os principais de requisi\u00e7\u00e3o e resposta, os de seguran\u00e7a que todo site deveria enviar, e como ver os do seu.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia | Homehost\" \/>\n<meta property=\"og:description\" content=\"O que s\u00e3o cabe\u00e7alhos HTTP, os principais de requisi\u00e7\u00e3o e resposta, os de seguran\u00e7a que todo site deveria enviar, e como ver os do seu.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/\" \/>\n<meta property=\"og:site_name\" content=\"Homehost\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Homehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-10T11:46:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-11T22:37:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cabecalhos-http-capa.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Gustavo Gallas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Homehost\" \/>\n<meta name=\"twitter:site\" content=\"@Homehost\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gustavo Gallas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/\"},\"author\":{\"name\":\"Gustavo Gallas\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/df8002f43fc55e7f4e132abb2a6ddbc4\"},\"headline\":\"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia\",\"datePublished\":\"2026-09-10T11:46:51+00:00\",\"dateModified\":\"2026-09-11T22:37:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/\"},\"wordCount\":2800,\"publisher\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cabecalhos-http-capa.png\",\"articleSection\":[\"Internet\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/\",\"url\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/\",\"name\":\"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia | Homehost\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cabecalhos-http-capa.png\",\"datePublished\":\"2026-09-10T11:46:51+00:00\",\"dateModified\":\"2026-09-11T22:37:04+00:00\",\"description\":\"O que s\u00e3o cabe\u00e7alhos HTTP, os principais de requisi\u00e7\u00e3o e resposta, os de seguran\u00e7a que todo site deveria enviar, e como ver os do seu.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cabecalhos-http-capa.png\",\"contentUrl\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cabecalhos-http-capa.png\",\"width\":1672,\"height\":941,\"caption\":\"Ilustra\u00e7\u00e3o de dois documentos com cabe\u00e7alhos destacados trocando informa\u00e7\u00e3o entre um navegador e um servidor, representando os cabe\u00e7alhos de requisi\u00e7\u00e3o e de resposta HTTP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/internet\\\/cabecalhos-http\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/\",\"name\":\"Homehost\",\"description\":\"Hospedagem De Sites\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#organization\",\"name\":\"Homehost\",\"url\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/logo-detalhes.png\",\"contentUrl\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/logo-detalhes.png\",\"width\":150,\"height\":48,\"caption\":\"Homehost\"},\"image\":{\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Homehost\\\/\",\"https:\\\/\\\/x.com\\\/Homehost\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.homehost.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/df8002f43fc55e7f4e132abb2a6ddbc4\",\"name\":\"Gustavo Gallas\",\"description\":\"Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do B\u00f3ris, seu pet de estima\u00e7\u00e3o. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos t\u00e9cnicos. Contato: gustavo.blog@homehost.com.br\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia | Homehost","description":"O que s\u00e3o cabe\u00e7alhos HTTP, os principais de requisi\u00e7\u00e3o e resposta, os de seguran\u00e7a que todo site deveria enviar, e como ver os do seu.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/","og_locale":"pt_BR","og_type":"article","og_title":"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia | Homehost","og_description":"O que s\u00e3o cabe\u00e7alhos HTTP, os principais de requisi\u00e7\u00e3o e resposta, os de seguran\u00e7a que todo site deveria enviar, e como ver os do seu.","og_url":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/","og_site_name":"Homehost","article_publisher":"https:\/\/www.facebook.com\/Homehost\/","article_published_time":"2026-09-10T11:46:51+00:00","article_modified_time":"2026-09-11T22:37:04+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cabecalhos-http-capa.png","type":"image\/png"}],"author":"Gustavo Gallas","twitter_card":"summary_large_image","twitter_creator":"@Homehost","twitter_site":"@Homehost","twitter_misc":{"Escrito por":"Gustavo Gallas","Est. tempo de leitura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#article","isPartOf":{"@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/"},"author":{"name":"Gustavo Gallas","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4"},"headline":"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia","datePublished":"2026-09-10T11:46:51+00:00","dateModified":"2026-09-11T22:37:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/"},"wordCount":2800,"publisher":{"@id":"https:\/\/www.homehost.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#primaryimage"},"thumbnailUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cabecalhos-http-capa.png","articleSection":["Internet"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/","url":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/","name":"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia | Homehost","isPartOf":{"@id":"https:\/\/www.homehost.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#primaryimage"},"image":{"@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#primaryimage"},"thumbnailUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cabecalhos-http-capa.png","datePublished":"2026-09-10T11:46:51+00:00","dateModified":"2026-09-11T22:37:04+00:00","description":"O que s\u00e3o cabe\u00e7alhos HTTP, os principais de requisi\u00e7\u00e3o e resposta, os de seguran\u00e7a que todo site deveria enviar, e como ver os do seu.","breadcrumb":{"@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#primaryimage","url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cabecalhos-http-capa.png","contentUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cabecalhos-http-capa.png","width":1672,"height":941,"caption":"Ilustra\u00e7\u00e3o de dois documentos com cabe\u00e7alhos destacados trocando informa\u00e7\u00e3o entre um navegador e um servidor, representando os cabe\u00e7alhos de requisi\u00e7\u00e3o e de resposta HTTP"},{"@type":"BreadcrumbList","@id":"https:\/\/www.homehost.com.br\/blog\/internet\/cabecalhos-http\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.homehost.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Cabe\u00e7alhos HTTP: o guia completo de refer\u00eancia"}]},{"@type":"WebSite","@id":"https:\/\/www.homehost.com.br\/blog\/#website","url":"https:\/\/www.homehost.com.br\/blog\/","name":"Homehost","description":"Hospedagem De Sites","publisher":{"@id":"https:\/\/www.homehost.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.homehost.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.homehost.com.br\/blog\/#organization","name":"Homehost","url":"https:\/\/www.homehost.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2022\/10\/logo-detalhes.png","contentUrl":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2022\/10\/logo-detalhes.png","width":150,"height":48,"caption":"Homehost"},"image":{"@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Homehost\/","https:\/\/x.com\/Homehost"]},{"@type":"Person","@id":"https:\/\/www.homehost.com.br\/blog\/#\/schema\/person\/df8002f43fc55e7f4e132abb2a6ddbc4","name":"Gustavo Gallas","description":"Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do B\u00f3ris, seu pet de estima\u00e7\u00e3o. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos t\u00e9cnicos. Contato: gustavo.blog@homehost.com.br"}]}},"modified_by":"ad_hmhst","jetpack_featured_media_url":"https:\/\/www.homehost.com.br\/blog\/wp-content\/uploads\/2026\/09\/cabecalhos-http-capa.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/18040","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=18040"}],"version-history":[{"count":5,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/18040\/revisions"}],"predecessor-version":[{"id":18078,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/posts\/18040\/revisions\/18078"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media\/18043"}],"wp:attachment":[{"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=18040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=18040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.homehost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=18040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}