{"id":81847,"date":"2020-05-17T01:42:34","date_gmt":"2020-05-16T23:42:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/http-po-udp-ispolzuem-s-polzoj-protokol-quic"},"modified":"2020-05-17T01:42:34","modified_gmt":"2020-05-16T23:42:34","slug":"http-po-udp-ispolzuem-s-polzoj-protokol-quic","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/http-po-udp-ispolzuem-s-polzoj-protokol-quic","title":{"rendered":"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.\" src=\"\/wp-content\/uploads\/2020\/05\/c051364dba613156a5233551af373f8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQUIC (Quick UDP Internet Connections) to protok\u00f3\u0142 dzia\u0142aj\u0105cy na bazie UDP, kt\u00f3ry wspiera wszystkie mo\u017cliwo\u015bci TCP, TLS i HTTP\/2 oraz rozwi\u0105zuje wiele ich problem\u00f3w. Cz\u0119sto nazywany jest nowym lub \u201eeksperymentalnym\u201d protoko\u0142em, ale od dawna przeszed\u0142 faz\u0119 eksperymentu: rozwijany jest od ponad 7 lat. W tym czasie protok\u00f3\u0142 nie sta\u0142 si\u0119 standardem, ale mimo to zyska\u0142 szerokie zastosowanie. Na przyk\u0142ad QUIC jest wykorzystywany do przyspieszania ruchu i redukcji op\u00f3\u017anie\u0144 w sieciach mobilnych przez takich gigant\u00f3w jak Google i Facebook, a IETF og\u0142osi\u0142a jego forka podstaw\u0105 dla standardu HTTP\/3 (przy czym HTTP\/2 wykorzystuje <noindex><a rel=\"nofollow\" href=\"https:\/\/w3techs.com\/technologies\/details\/ce-http2\">tylko 44,8%<\/a><\/noindex> stron).<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Koncepcja<\/h2>\n<p>\nQUIC zosta\u0142 stworzony jako zamiennik przestarza\u0142ego TCP, kt\u00f3re pierwotnie by\u0142o dostosowane do przewodowych sieci o niskim procencie strat. TCP dostarcza pakiety w kolejno\u015bci, wi\u0119c w przypadku utraty jednego pakietu ca\u0142a kolejka staje w miejscu (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Head-of-line_blocking\">head-of-line blocking<\/a><\/noindex>), co negatywnie wp\u0142ywa na jako\u015b\u0107 i stabilno\u015b\u0107 po\u0142\u0105czenia. Aby unikn\u0105\u0107 masowych strat, sieci kom\u00f3rkowe stosuj\u0105 du\u017ce bufory, co z kolei prowadzi do nadmiarowo\u015bci i fa\u0142szywie negatywnej reakcji protoko\u0142u (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bufferbloat\">bufferbloat<\/a><\/noindex>). Dodatkowo, TCP zajmuje bardzo du\u017co czasu na nawi\u0105zywanie po\u0142\u0105czenia: zapytania SYN\/ACK oraz TLS s\u0105 wykonywane oddzielnie, co wymaga trzech roundtrip\u00f3w zamiast jednego, jak to robi QUIC.<\/p>\n<p><img decoding=\"async\" alt=\"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.\" src=\"\/wp-content\/uploads\/2020\/05\/02381a50e0f5bb12db0d2530f6a8454a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoniewa\u017c QUIC \u0142\u0105czy w sobie zamian\u0119 TCP i implementacj\u0119 TLS 1.3, wszystkie po\u0142\u0105czenia s\u0105 zawsze szyfrowane, a deszyfrowanie takiego ruchu nie jest \u0142atwiejsze ni\u017c w przypadku HTTPS. Co wi\u0119cej, QUIC jest zaimplementowany na poziomie aplikacji, poniewa\u017c pe\u0142na zamiana stosu TCP zaj\u0119\u0142aby <i>wieczno\u015b\u0107.<\/i>.<\/p>\n<p>Mimo wsparcia dla multiplexingu w HTTP\/2, problem head-of-line blocking pozosta\u0142 z uwagi na konieczno\u015b\u0107 dostarczania pakiet\u00f3w w kolejno\u015bci. QUIC dzia\u0142a na bazie UDP, dlatego nie wyst\u0119puj\u0105 w nim blokady, a aby pakiety nie gin\u0119\u0142y bezpowrotnie, s\u0105 numerowane i mog\u0105 zawiera\u0107 cz\u0119\u015bci \u201es\u0105siad\u00f3w\u201d, zapewniaj\u0105c nadmiarowo\u015b\u0107. Dodatkowo QUIC dzieli monolityczn\u0105 kolejk\u0119 na kilka strumieni dla r\u00f3\u017cnych typ\u00f3w \u017c\u0105da\u0144 w ramach jednego po\u0142\u0105czenia. W ten spos\u00f3b, przy utracie pakietu, problemy mog\u0105 wyst\u0105pi\u0107 tylko w jednej kolejce (na przyk\u0142ad przy przesy\u0142aniu konkretnego pliku):<\/p>\n<p><img decoding=\"async\" alt=\"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.\" src=\"\/wp-content\/uploads\/2020\/05\/d9b7638d1c135c64dc579cd6153230d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>U\u017cycie <\/h2>\n<p>\nPierwotnie QUIC by\u0142 rozwijany w Google i by\u0142 g\u0142\u00f3wnie dostosowany do u\u017cytku wewn\u0119trznego w firmie. W 2013 roku przekazano go do IETF w celu standaryzacji (kt\u00f3ra trwa do dzi\u015b), a teraz ka\u017cdy mo\u017ce wzi\u0105\u0107 udzia\u0142 w rozwoju protoko\u0142u, proponuj\u0105c to, czego mu brakuje. Grupa robocza IETF organizuje coroczne spotkania, na kt\u00f3rych zatwierdzany jest nowy standard i omawiane s\u0105 innowacje. Ta implementacja QUIC jest uwa\u017cana za podstawow\u0105 i na jej podstawie certyfikowany jest standard HTTP\/3.<\/p>\n<p>Na razie nie m\u00f3wi si\u0119 o w\u0142\u0105czeniu HTTP\/3 jako g\u0142\u00f3wnego protoko\u0142u, poniewa\u017c nie jest on jeszcze uko\u0144czony i prawie nie jest wspierany:<\/p>\n<p><img decoding=\"async\" alt=\"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.\" src=\"\/wp-content\/uploads\/2020\/05\/e61c7f2828f8b262ef513840e0072b68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednak QUIC mo\u017cna zrealizowa\u0107 jako transport mi\u0119dzy aplikacj\u0105 a serwerem, co z powodzeniem zrobili w Uber:<\/p>\n<blockquote>\n<h3><i>Komentarz Ubera na temat implementacji QUIC<\/i><\/h3>\n<p>\nAby pomy\u015blnie zaimplementowa\u0107 QUIC i poprawi\u0107 wydajno\u015b\u0107 aplikacji w warunkach s\u0142abego po\u0142\u0105czenia, zast\u0105pili\u015bmy stary stos (HTTP\/2 nad TLS\/TCP) protoko\u0142em QUIC. Skorzystali\u015bmy z biblioteki sieciowej <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.android.com\/guide\/topics\/connectivity\/cronet\">Cronet<\/a><\/noindex> z <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chromium.org\/Home\">Chromium Projects<\/a><\/noindex>, kt\u00f3ra zawiera oryginaln\u0105, google'owsk\u0105 wersj\u0119 protoko\u0142u \u2013 gQUIC. Ta implementacja jest r\u00f3wnie\u017c stale ulepszana, aby przestrzega\u0107 najnowszej specyfikacji IETF.<\/p>\n<p>Najpierw zintegrowali\u015bmy Cronet w naszych aplikacjach na Androida, aby doda\u0107 wsparcie dla QUIC. Integracja zosta\u0142a przeprowadzona w spos\u00f3b, aby maksymalnie ograniczy\u0107 koszty migracji. Zamiast ca\u0142kowicie zast\u0105pi\u0107 stary stos sieciowy, kt\u00f3ry korzysta\u0142 z biblioteki <noindex><a rel=\"nofollow\" href=\"https:\/\/square.github.io\/okhttp\/\">OkHttp<\/a><\/noindex>, zintegrowali\u015bmy Cronet POD frameworkiem OkHttp API. Przeprowadzaj\u0105c integracj\u0119 w ten spos\u00f3b, unikn\u0119li\u015bmy zmian w naszych wywo\u0142aniach sieciowych (kt\u00f3re u\u017cywaj\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/square.github.io\/retrofit\/\">Retrofit<\/a><\/noindex>) na poziomie API.<\/p>\n<p>Podobnie jak w przypadku urz\u0105dze\u0144 z Androidem, wdro\u017cyli\u015bmy Cronet w aplikacjach Uber na iOS, przechwytuj\u0105c ruch HTTP z <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.apple.com\/documentation\/foundation\/nsurlsession\">API<\/a><\/noindex>, u\u017cywaj\u0105c <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.apple.com\/documentation\/foundation\/nsurlprotocol\">NSURLProtocol<\/a><\/noindex>. Ta abstrakcja, dostarczana przez iOS Foundation, obs\u0142uguje specyficzne dla protoko\u0142u dane URL i zapewnia, \u017ce mo\u017cemy zintegrowa\u0107 Cronet w naszych aplikacjach na iOS bez znacznych koszt\u00f3w migracji.<\/p><\/blockquote>\n<p><i>pochodzi z <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/Voximplant\/blog\/463073\/\">tego t\u0142umaczenia<\/a><\/noindex> artyku\u0142u Uber<\/i><\/p>\n<p>Na backendzie przechwytywali po\u0142\u0105czenia QUIC przez Google Cloud lb, kt\u00f3ry <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/blog\/products\/gcp\/introducing-quic-support-https-load-balancing\">wspiera protok\u00f3\u0142<\/a><\/noindex> od po\u0142owy 2018 roku.<\/p>\n<p>Nie dziwi fakt, \u017ce Google Cloud doskonale wsp\u00f3\u0142pracuje z protoko\u0142em stworzonym przez Google, ale jakie s\u0105 alternatywy?<\/p>\n<h3>Nginx<\/h3>\n<p>\nNiedawno CloudFlare <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/experiment-with-http-3-using-nginx-and-quiche\/\">pr\u00f3bowa\u0142 skrosowa\u0107<\/a><\/noindex> nginx (kt\u00f3ry domy\u015blnie nie obs\u0142uguje HTTP\/3) z w\u0142asnym narz\u0119dziem Quiche. Realizacja jest dost\u0119pna w postaci jednego pliku .patch, do kt\u00f3rego do\u0142\u0105czono tutorial instalacyjny:<\/p>\n<pre><code class=\"bash\">curl -O https:\/\/nginx.org\/download\/nginx-1.16.1.tar.gz\ntar xvzf nginx-1.16.1.tar.gz\ngit clone --recursive https:\/\/github.com\/cloudflare\/quiche\ncd nginx-1.16.1\npatch -p01 &lt; ..\/quiche\/extras\/nginx\/nginx-1.16.patch<\/code><\/pre>\n<p>\nTutaj mo\u017cna pod\u0142\u0105czy\u0107 w\u0142asne modu\u0142y w razie potrzeby<\/p>\n<pre><code class=\"bash\">.\/configure                          \t\n   \t--prefix=$PWD                       \t\n   \t--with-http_ssl_module              \t\n   \t--with-http_v2_module               \t\n   \t--with-http_v3_module               \t\n   \t--with-openssl=..\/quiche\/deps\/boringssl \n   \t--with-quiche=..\/quiche\n make<\/code><\/pre>\n<p>\nPozostaje tylko w\u0142\u0105czy\u0107 wsparcie dla HTTP\/3<\/p>\n<pre><code class=\"nginx\">events {\n    worker_connections  1024;\n}\n\nhttp {\n    server {\n        # W\u0142\u0105cz QUIC i HTTP\/3.\n        listen 443 quic reuseport;\n\n        # W\u0142\u0105cz HTTP\/2 (opcjonalnie).\n        listen 443 ssl http2;\n\n        ssl_certificate      cert.crt;\n        ssl_certificate_key  cert.key;\n\n        # W\u0142\u0105cz wszystkie wersje TLS (TLSv1.3 jest wymagany dla QUIC).\n        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;\n\n        # Buforowanie \u017c\u0105da\u0144 nie jest obecnie obs\u0142ugiwane dla HTTP\/3.\n        proxy_request_buffering off;\n\n        # Dodaj nag\u0142\u00f3wek Alt-Svc do negocjacji HTTP\/3.\n        add_header alt-svc 'h3-27=&quot;:443&quot;; ma=86400';\n    }\n}<\/code><\/pre>\n<p>\nW zwyk\u0142ych przegl\u0105darkach po\u0142\u0105czenie przez HTTP\/3 jest w tej chwili niemo\u017cliwe, ale mo\u017cna u\u017cy\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.google.com\/chrome\/canary\/\">Chrome Canary<\/a><\/noindex> i uruchomi\u0107 go z flag\u0105 <code>--enable-quic<\/code>, po\u0142\u0105czy\u0107 si\u0119 ze swoim serwerem lub np. z witryn\u0105 quic.rocks i sprawdzi\u0107 typ po\u0142\u0105czenia w Narz\u0119dziach Deweloperskich:<br \/>\n<img decoding=\"async\" alt=\"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.\" src=\"\/wp-content\/uploads\/2020\/05\/ca3488c0cb3a9273ea9d0318b00d4f83.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZamiast HTTP\/3 pisze si\u0119 <code>http2+quic\/99<\/code>, ale jest to w zasadzie to samo.<\/p>\n<h3>Inne technologie<\/h3>\n<p><\/p>\n<ul>\n<li>QUIC wspiera r\u00f3wnie\u017c <noindex><a rel=\"nofollow\" href=\"https:\/\/www.litespeedtech.com\/products\/litespeed-web-server\">LiteSpeed<\/a><\/noindex> (kt\u00f3re z wielk\u0105 pomp\u0105 \u0142\u0105czy\u0142y si\u0119 z Facebookiem przez HTTP\/3) oraz nowoczesny <noindex><a rel=\"nofollow\" href=\"https:\/\/caddyserver.com\/\">Caddy<\/a><\/noindex>. Apache na razie nie obs\u0142uguje, ale prace trwaj\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/apache\/trafficserver\/projects\/8\">z pe\u0142n\u0105 par\u0105<\/a><\/noindex>.<\/li>\n<li>21 stycznia zaktualizowano <noindex><a rel=\"nofollow\" href=\"https:\/\/w3c.github.io\/webrtc-quic\/\">brudnopis standardu dla WebRTC<\/a><\/noindex><\/li>\n<li>Dos\u0142ownie kilka dni temu Microsoft udost\u0119pni\u0142 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/msquic\">kod swojej implementacji msquic<\/a><\/noindex>, w kt\u00f3rej na razie nie dost\u0119pne s\u0105 wszystkie funkcje ze standardu IETF, ale to ju\u017c du\u017cy post\u0119p.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Podsumowanie<\/h2>\n<p>\n<img decoding=\"async\" alt=\"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.\" src=\"\/wp-content\/uploads\/2020\/05\/96846d94d1ec27fbb1e00fce0f2d618e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZainteresowanie QUIC jest niestabilne, ale ro\u015bnie, trwaj\u0105 prace nad jego standaryzacj\u0105. Nowe implementacje protoko\u0142u pojawiaj\u0105 si\u0119 niemal co miesi\u0105c, a z ka\u017cdym rokiem coraz wi\u0119cej deweloper\u00f3w przekonuje si\u0119, \u017ce przysz\u0142o\u015b\u0107 nale\u017cy do QUIC. Dopuszcza si\u0119 nawet w\u0142\u0105czenie protoko\u0142u do przysz\u0142ych wersji stosu TCP, co oznacza, \u017ce pr\u0119dzej czy p\u00f3\u017aniej ca\u0142y internet przejdzie na bardziej stabilne i szybsze po\u0142\u0105czenia.<\/p>\n<p>Ju\u017c teraz mo\u017cesz skonfigurowa\u0107 interakcj\u0119 QUIC dla swojej infrastruktury lub nawet udost\u0119pnia\u0107 j\u0105 przegl\u0105darkom \u2014 wszystkie planuj\u0105 doda\u0107 wsparcie dla protoko\u0142u, a smutna statystyka z caniuse stanie si\u0119 bardziej optymistyczna.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/vdsina.ru\/eternal-server?partner=habr13\"><img decoding=\"async\" alt=\"HTTP przez UDP \u2014 korzystanie z protoko\u0142u QUIC.\" src=\"\/wp-content\/uploads\/2020\/05\/88c6439f1325b696dc8868db29bab064.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/vdsina\/blog\/501840\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>QUIC (Quick UDP Internet Connections) \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u043e\u0432\u0435\u0440\u0445 UDP, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 TCP, TLS \u0438 HTTP\/2 \u0438 \u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0415\u0433\u043e \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u043e\u0432\u044b\u043c \u0438\u043b\u0438 \u00ab\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u00bb \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c, \u043d\u043e \u043e\u043d \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0436\u0438\u043b \u0441\u0442\u0430\u0434\u0438\u044e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430: \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 7 \u043b\u0435\u0442. \u0417\u0430 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u0441\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c, \u043d\u043e \u0432\u0441\u0451 \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81848,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81847","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"QUIC (Quick UDP Internet Connections) \u2014.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/http-po-udp-ispolzuem-s-polzoj-protokol-quic\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47HTTP \u043f\u043e UDP \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b QUIC | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"QUIC (Quick UDP Internet Connections) \u2014.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/http-po-udp-ispolzuem-s-polzoj-protokol-quic\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-16T23:42:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-16T23:42:34+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47HTTP po UDP \u2014 wykorzystuj z korzy\u015bci\u0105 protok\u00f3\u0142 QUIC | ProHoster","description":"QUIC (Quick UDP Internet Connections) \u2014.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/http-po-udp-ispolzuem-s-polzoj-protokol-quic","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47HTTP \u043f\u043e UDP \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b QUIC | ProHoster","og:description":"QUIC (Quick UDP Internet Connections) \u2014.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/http-po-udp-ispolzuem-s-polzoj-protokol-quic","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-16T23:42:34+00:00","article:modified_time":"2020-05-16T23:42:34+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81847","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:49:39","updated":"2022-09-29 09:08:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/81847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=81847"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/81847\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/81848"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=81847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=81847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=81847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}