{"id":41,"date":"2023-06-25T13:52:56","date_gmt":"2023-06-25T13:52:56","guid":{"rendered":"https:\/\/meuip.pt\/blog\/?p=41"},"modified":"2023-07-09T18:13:29","modified_gmt":"2023-07-09T18:13:29","slug":"o-que-e-o-http-2-e-como-ele-melhora-a-navegacao-na-web","status":"publish","type":"post","link":"https:\/\/meu-ip.pt\/blog\/?p=41","title":{"rendered":"O Que \u00e9 o HTTP\/2 e Como Ele Melhora a Navega\u00e7\u00e3o na Web"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Introdu\u00e7\u00e3o<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando falamos de navegar na internet, por detr\u00e1s do clique num link ou do endere\u00e7o introduzido na barra de pesquisa, ocorre um conjunto complexo de comunica\u00e7\u00f5es entre o nosso dispositivo e o servidor que aloja o website que queremos visitar. O protocolo respons\u00e1vel por esta comunica\u00e7\u00e3o chama-se HTTP (Hypertext Transfer Protocol). Este artigo ir\u00e1 explorar uma vers\u00e3o melhorada deste protocolo, o HTTP\/2, explicando o que \u00e9 e como ele melhora a experi\u00eancia de navega\u00e7\u00e3o na web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><br>Desvendando Mais Sobre o HTTP<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para compreender melhor o HTTP\/2, \u00e9 crucial entender a sua base, o HTTP\/1. Lan\u00e7ado em 1996, o HTTP\/1.1 veio como uma revolu\u00e7\u00e3o na \u00e9poca, permitindo que a web se desenvolvesse em formas que ningu\u00e9m tinha imaginado at\u00e9 ent\u00e3o. As p\u00e1ginas web deixaram de ser est\u00e1ticas e passaram a ser din\u00e2micas, com elementos interativos e aplica\u00e7\u00f5es web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por\u00e9m, mesmo com todas as suas melhorias e atualiza\u00e7\u00f5es ao longo dos anos, o HTTP\/1.1 tem v\u00e1rias limita\u00e7\u00f5es, sendo a mais evidente a forma como lida com as conex\u00f5es. Como o HTTP\/1.1 realiza os pedidos em fila e cada pedido necessita de uma conex\u00e3o separada, h\u00e1 um grande atraso &#8211; tamb\u00e9m conhecido como lat\u00eancia &#8211; que se torna bastante percept\u00edvel quando temos um grande n\u00famero de recursos numa \u00fanica p\u00e1gina web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Por que o HTTP\/2?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste contexto, surge o HTTP\/2, com o objetivo principal de aumentar a velocidade de carregamento das p\u00e1ginas. A diferen\u00e7a mais significativa entre o HTTP\/1.1 e o HTTP\/2 \u00e9 a capacidade deste \u00faltimo de permitir que v\u00e1rios pedidos e respostas sejam enviados em simult\u00e2neo na mesma conex\u00e3o. Esta caracter\u00edstica, conhecida como multiplexa\u00e7\u00e3o, reduz consideravelmente a lat\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, o HTTP\/2 introduziu o conceito de &#8220;server push&#8221;, uma funcionalidade que permite ao servidor enviar recursos para o navegador antes mesmo deste os pedir. Isso significa que, em vez de esperar que o navegador pe\u00e7a cada recurso de uma p\u00e1gina web, o servidor pode prever esses pedidos e &#8220;empurrar&#8221; os recursos para o navegador mais rapidamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O Detalhe da Multiplexa\u00e7\u00e3o no HTTP\/2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A multiplexa\u00e7\u00e3o no HTTP\/2 funciona criando o que s\u00e3o chamados de &#8220;streams&#8221;, &#8220;frames&#8221; e &#8220;headers&#8221;. Um stream \u00e9 basicamente uma sequ\u00eancia virtual estabelecida dentro de uma conex\u00e3o, que pode carregar m\u00faltiplos pedidos de mensagens, em ambos os sentidos, simultaneamente. Cada mensagem de pedido ou resposta \u00e9 dividida em frames, que s\u00e3o enviados atrav\u00e9s do stream.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada frame possui um header que identifica o stream ao qual pertence. Com isso, todos os frames de v\u00e1rias solicita\u00e7\u00f5es e respostas podem ser misturados juntos na rede, pois no destino, o protocolo HTTP\/2 pode reconstruir as mensagens completas com base nos headers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Entendendo o Server Push<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No HTTP\/1, o cliente (geralmente, o navegador web) solicita um documento HTML e, depois de analisar esse documento, descobre que precisa de v\u00e1rias outras fontes, como imagens, folhas de estilo (CSS) e JavaScript. Ent\u00e3o, tem de fazer pedidos HTTP adicionais para esses recursos. Este processo \u00e9 muito ineficiente, pois cada pedido introduz lat\u00eancia adicional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A funcionalidade &#8220;server push&#8221; do HTTP\/2 visa resolver este problema. Com o &#8220;server push&#8221;, o servidor tem a capacidade de enviar m\u00faltiplos recursos para o cliente com uma \u00fanica resposta. Isso reduz o n\u00famero de viagens que o navegador precisa fazer para buscar todos os recursos, acelerando o carregamento da p\u00e1gina.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>HTTP\/2 e a Seguran\u00e7a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A seguran\u00e7a na Internet tornou-se uma preocupa\u00e7\u00e3o crescente nos \u00faltimos anos. \u00c0 medida que as pessoas se tornam mais dependentes da web para todos os aspectos da sua vida &#8211; desde as redes sociais at\u00e9 \u00e0s transa\u00e7\u00f5es banc\u00e1rias -, a prote\u00e7\u00e3o dos dados e a privacidade online tornaram-se um assunto cr\u00edtico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ao contr\u00e1rio do HTTP\/1.1, que foi desenvolvido numa \u00e9poca em que a seguran\u00e7a online n\u00e3o era uma prioridade como \u00e9 hoje, o HTTP\/2 traz a seguran\u00e7a como um de seus principais focos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Encripta\u00e7\u00e3o TLS<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Transport Layer Security (TLS) \u00e9 um protocolo que garante privacidade e integridade dos dados entre aplica\u00e7\u00f5es de comunica\u00e7\u00e3o. Ao usar o TLS, as aplica\u00e7\u00f5es podem se comunicar de forma a prevenir escutas, manipula\u00e7\u00e3o ou falsifica\u00e7\u00e3o de mensagens. O TLS \u00e9 a principal raz\u00e3o pela qual podemos fazer compras, transa\u00e7\u00f5es banc\u00e1rias e enviar mensagens sens\u00edveis pela Internet sem medo de que essas informa\u00e7\u00f5es sejam interceptadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No HTTP\/2, a encripta\u00e7\u00e3o TLS n\u00e3o \u00e9 apenas suportada, mas \u00e9 tamb\u00e9m geralmente exigida. A maioria dos navegadores s\u00f3 suporta HTTP\/2 com TLS, o que significa que todas as comunica\u00e7\u00f5es HTTP\/2 s\u00e3o encriptadas. Isso faz uma grande diferen\u00e7a para a seguran\u00e7a, pois garante que a informa\u00e7\u00e3o trocada entre o cliente e o servidor n\u00e3o possa ser lida ou modificada por terceiros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Prote\u00e7\u00e3o Contra Ataques<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O HTTP\/2 tamb\u00e9m introduziu mecanismos para proteger contra v\u00e1rios tipos de ataques que podem ser realizados contra protocolos HTTP. Um desses ataques \u00e9 o ataque de inje\u00e7\u00e3o de conte\u00fado, onde um atacante pode inserir conte\u00fado malicioso numa comunica\u00e7\u00e3o HTTP. Gra\u00e7as \u00e0 encripta\u00e7\u00e3o TLS no HTTP\/2, esse tipo de ataque \u00e9 muito mais dif\u00edcil de realizar, pois o atacante n\u00e3o pode ver ou modificar o conte\u00fado das comunica\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outra vantagem do HTTP\/2 em termos de seguran\u00e7a \u00e9 a sua prote\u00e7\u00e3o contra ataques de &#8220;man-in-the-middle&#8221;. Estes ataques ocorrem quando um atacante consegue interceptar e potencialmente alterar a comunica\u00e7\u00e3o entre duas partes. A encripta\u00e7\u00e3o TLS do HTTP\/2 protege contra esses ataques, garantindo que apenas o cliente e o servidor possam ver e interpretar as mensagens que est\u00e3o a trocar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, o HTTP\/2 introduziu o conceito de &#8220;origin framing&#8221;, que permite ao servidor verificar se um pedido \u00e9 leg\u00edtimo ou se foi modificado ou injetado por um atacante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A Ado\u00e7\u00e3o do HTTP\/2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O HTTP\/2 foi lan\u00e7ado oficialmente em 2015, e desde ent\u00e3o, a sua ado\u00e7\u00e3o tem vindo a crescer a um ritmo est\u00e1vel. Inicialmente, a transi\u00e7\u00e3o para o HTTP\/2 foi um pouco lenta, pois tanto os servidores como os navegadores precisavam ser atualizados para suportar o novo protocolo. No entanto, atualmente, a maioria dos navegadores modernos e muitos servidores web suportam o HTTP\/2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conclus\u00e3o<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O HTTP\/2 veio para superar as limita\u00e7\u00f5es inerentes ao HTTP\/1, oferecendo uma web mais r\u00e1pida, segura e eficiente. Com as suas caracter\u00edsticas avan\u00e7adas de multiplexa\u00e7\u00e3o e &#8220;server push&#8221;, juntamente com o suporte para encripta\u00e7\u00e3o TLS, o HTTP\/2 proporciona uma experi\u00eancia de navega\u00e7\u00e3o mais segura e agrad\u00e1vel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contudo, ainda que a sua ado\u00e7\u00e3o esteja a aumentar, o HTTP\/2 ainda n\u00e3o \u00e9 universal. Continuamos a coexistir num mundo misto onde HTTP\/1 e HTTP\/2 est\u00e3o ambos em uso. Mas, a tend\u00eancia est\u00e1 claramente a mover-se na dire\u00e7\u00e3o do HTTP\/2, preparando o terreno para um futuro onde a navega\u00e7\u00e3o na web ser\u00e1 ainda mais r\u00e1pida e segura.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Quando falamos de navegar na internet, por detr\u00e1s do clique num link ou do endere\u00e7o introduzido na barra de pesquisa, ocorre um conjunto complexo [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":94,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=41"}],"version-history":[{"count":2,"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":45,"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=\/wp\/v2\/posts\/41\/revisions\/45"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=\/wp\/v2\/media\/94"}],"wp:attachment":[{"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meu-ip.pt\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}