{"id":202,"date":"2021-09-29T07:37:05","date_gmt":"2021-09-29T07:37:05","guid":{"rendered":"https:\/\/webdevs.blog\/pl\/?p=202"},"modified":"2026-02-20T07:28:18","modified_gmt":"2026-02-20T07:28:18","slug":"jak-protokol-http-wplywa-na-szybkosc-strony","status":"publish","type":"post","link":"https:\/\/webdevs.blog\/pl\/jak-protokol-http-wplywa-na-szybkosc-strony\/","title":{"rendered":"Jak protok\u00f3\u0142 HTTP wp\u0142ywa na szybko\u015b\u0107 strony?"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1366\" height=\"768\" src=\"https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3.png\" alt=\"\" class=\"wp-image-208\" srcset=\"https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3.png 1366w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-300x169.png 300w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-1024x576.png 1024w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-768x432.png 768w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-640x360.png 640w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-700x394.png 700w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/figure>\n\n\n\n<p>Trudno wyobrazi\u0107 sobie dzisiejsze strony internetowe bez protoko\u0142u HTTP, kt\u00f3ry od dawna jest podstawowym sposobem wymiany informacji w sieciach WWW. Jego pierwsza wersja (1.0) powsta\u0142a w 1996 r. i by\u0142a usprawniana a\u017c do 2015 r., w kt\u00f3rym zosta\u0142a wdro\u017cona wersja 2, a aktualnie trwaj\u0105 prac\u0119 nad wdro\u017ceniem wersji 3, kt\u00f3ra powinno sta\u0107 si\u0119 standardem ju\u017c w nied\u0142ugim czasie. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP\/1.1<\/h2>\n\n\n\n<p>Nie chc\u0105c rozwodzi\u0107 si\u0119 nad dok\u0142adnym dzia\u0142aniem tej wersji, nale\u017cy wspomnie\u0107 jedynie o najwa\u017cniejszym, tj. w jaki spos\u00f3b zasoby s\u0105 pobierane. <\/p>\n\n\n\n<p>W wersji 1.1 w czasie jednego po\u0142\u0105czenia TCP z serwerem mo\u017ce by\u0107 wys\u0142ane tylko jedno zapytanie HTTP, a ka\u017cde kolejne musi czeka\u0107 na zako\u0144czenie poprzedniego. Takie zachowanie implikuje kolejkowanie zapyta\u0144, co finalnie ma wp\u0142yw na d\u0142u\u017csze czasy wczytywania strony, szczeg\u00f3lnie je\u015bli tych zasob\u00f3w (css, js, img) jest wiele. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP\/2<\/h2>\n\n\n\n<p>Druga wersja protoko\u0142u HTTP wprowadzi\u0142a znaczne zmiany w sposobie wczytywania zasob\u00f3w wzgl\u0119dem poprzedniej. <\/p>\n\n\n\n<p>Przegl\u0105darki zamiast operowa\u0107 na wielu r\u00f3wnoczesnych po\u0142\u0105czeniach TCP w celu pobrania zasob\u00f3w mog\u0105 wykorzystywa\u0107 tylko jedno, w kt\u00f3rym mo\u017ce by\u0107 przes\u0142anych wi\u0119cej ramek HTTP, kt\u00f3re nie musz\u0105 by\u0107 kolejkowane. Takie po\u0142\u0105czenie TCP zostaje otwarte do momentu zako\u0144czenia pobierania zasob\u00f3w, po czym jest zamykane.<\/p>\n\n\n\n<p>Nietrudno zauwa\u017cy\u0107 jako wp\u0142yw taki proces ma na czasy wczytywania stron www &#8211; wymagane zasoby strony mog\u0105 by\u0107 pobierane jednym po\u0142\u0105czeniem TCP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"402\" src=\"https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-pipelining-1024x402.png\" alt=\"\" class=\"wp-image-214\" srcset=\"https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-pipelining-1024x402.png 1024w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-pipelining-300x118.png 300w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-pipelining-768x301.png 768w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-pipelining-1536x603.png 1536w, https:\/\/webdevs.blog\/pl\/wp-content\/uploads\/sites\/2\/2021\/09\/http-2-3-pipelining.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">\u017br\u00f3d\u0142o: <a href=\"https:\/\/blog.cloudflare.com\/http3-the-past-present-and-future\/\" target=\"_blank\" rel=\"noreferrer noopener\">blog.cloudflare.com<\/a><\/figcaption><\/figure>\n\n\n\n<p>Nale\u017cy pami\u0119ta\u0107, \u017ce HTTP\/2 nie zast\u0119puje standardowego HTTP\/1. Jest tylko jego rozszerzeniem, dlatego nie musimy obawia\u0107 si\u0119 o kompatybilno\u015b\u0107 standard\u00f3w.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Implementacja<\/h4>\n\n\n\n<p>Implementacja jest do\u015b\u0107 prosta i sprowadza si\u0119 do konfiguracji serwera. Je\u015bli Tw\u00f3j hosting obs\u0142uguje HTTP\/2 &#8211; mo\u017cesz bez problemu to wykorzysta\u0107. Je\u015bli tego nie wiesz, skorzystaj ze strony <a rel=\"noreferrer noopener\" href=\"https:\/\/http2.pro\" target=\"_blank\">http2.pro<\/a>. Dodatkowym wymaganiem jest instalacja certyfikatu SSL.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Wsparcie<\/h4>\n\n\n\n<p>Aktualnie wszystkie nowoczesne przegl\u0105darki <a href=\"https:\/\/caniuse.com\/#search=HTTP2\" target=\"_blank\" rel=\"noreferrer noopener\">wspieraj\u0105 protok\u00f3\u0142 HTTP\/2<\/a> bez dodatkowych konfiguracji.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HTTP\/3<\/h2>\n\n\n\n<p>Zadaniem protoko\u0142u TCP, kt\u00f3ry jest wykorzystywany w HTTP\/2 jest dostarczanie pakiet\u00f3w w konkretnej kolejno\u015bci jeden po drugim. W momencie gdy jeden z nich zostanie utracony, kolejne wyst\u0119puj\u0105ce po nim nie maj\u0105 mo\u017cliwo\u015bci poprawnego dotarcia do miejsca docelowego i s\u0105 blokowane, a transmisja danych przerwana. Jest to jedna z bol\u0105czek, kt\u00f3r\u0105 rozwi\u0105zuje wykorzystanie protoko\u0142u HTTP\/3.<\/p>\n\n\n\n<p>Ta wersja wykorzystuje protok\u00f3\u0142 UDP zamiast TCP, w kt\u00f3rym kolejno\u015b\u0107 pakiet\u00f3w nie jest tak istotna i w momencie gdy jeden z nich zostaje utracony, po\u0142\u0105czenie jest kontynuowane, a pozosta\u0142e s\u0105 w dalszym ci\u0105gu pobierane. Jest to szczeg\u00f3lnie istotne w przypadku niestabilnych sieci.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Wsparcie<\/h4>\n\n\n\n<p>Na dzie\u0144 pisania artyku\u0142u najpopularniejsze przegl\u0105darki takie jak Google Chrome, Forefox czy MS Edge domy\u015blnie <a rel=\"noreferrer noopener\" href=\"https:\/\/caniuse.com\/?search=HTTP3\" target=\"_blank\">wspieraj\u0105<\/a> protok\u00f3\u0142. Wyj\u0105tkiem jest Safari, w kt\u00f3rym wsparcie jest oznaczone jako funkcja eksperymentalna, kt\u00f3r\u0105 mo\u017cna w\u0142\u0105czy\u0107 w ustawieniach przegl\u0105darki.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0179r\u00f3d\u0142a<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/http2\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/developers.google.com\/web\/fundamentals\/performance\/http2<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.cloudflare.com\/http3-the-past-present-and-future\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/blog.cloudflare.com\/http3-the-past-present-and-future\/<\/a><\/li>\n<\/ul>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Trudno wyobrazi\u0107 sobie dzisiejsze strony internetowe bez protoko\u0142u HTTP, kt\u00f3ry od dawna jest podstawowym sposobem wymiany informacji w sieciach WWW. Jego pierwsza wersja (1.0) powsta\u0142a w 1996 r. i by\u0142a usprawniana a\u017c do 2015 r., w kt\u00f3rym zosta\u0142a wdro\u017cona wersja 2, a aktualnie trwaj\u0105 prac\u0119 nad wdro\u017ceniem wersji 3, kt\u00f3ra powinno sta\u0107 si\u0119 standardem ju\u017c [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":208,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,14,13],"tags":[62,64,65,63],"class_list":["post-202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ciekawostki","category-optymalizacja","category-serwery","tag-http","tag-http-2","tag-http-3","tag-optimization"],"_links":{"self":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts\/202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/comments?post=202"}],"version-history":[{"count":22,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts\/202\/revisions"}],"predecessor-version":[{"id":705,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/posts\/202\/revisions\/705"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/media\/208"}],"wp:attachment":[{"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/media?parent=202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/categories?post=202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webdevs.blog\/pl\/wp-json\/wp\/v2\/tags?post=202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}