{"id":52181,"date":"2019-11-02T00:00:00","date_gmt":"2019-11-01T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/http-3-razrushenie-osnov-i-divnyj-novyj-mir"},"modified":"2020-02-18T13:59:51","modified_gmt":"2020-02-18T10:59:51","slug":"http-3-razrushenie-osnov-i-divnyj-novyj-mir","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/http-3-razrushenie-osnov-i-divnyj-novyj-mir","title":{"rendered":"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>U\u017e v\u00edce ne\u017e 20 let prohl\u00ed\u017e\u00edme webov\u00e9 str\u00e1nky pomoc\u00ed protokolu HTTP. V\u011bt\u0161ina u\u017eivatel\u016f si v\u016fbec neuv\u011bdomuje, co to obn\u00e1\u0161\u00ed a jak to funguje. N\u011bkte\u0159\u00ed v\u011bd\u00ed, \u017ee n\u011bkde pod HTTP je TLS, pod n\u00edm TCP, a pod n\u00edm IP a tak d\u00e1le. A t\u0159et\u00ed \u2013 heretici \u2013 si mysl\u00ed, \u017ee TCP je minulost\u00ed, cht\u011bj\u00ed n\u011bco rychlej\u0161\u00edho, spolehliv\u011bj\u0161\u00edho a zabezpe\u010den\u011bj\u0161\u00edho. Ale ve sv\u00fdch pokusech vynal\u00e9zt nov\u00fd ide\u00e1ln\u00ed protokol se vr\u00e1tili k technologi\u00edm 80. let a sna\u017e\u00ed se na nich vybudovat sv\u016fj nov\u00fd \u00fa\u017easn\u00fd sv\u011bt.<br \/>\n<img decoding=\"async\" alt=\"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt\" src=\"\/wp-content\/uploads\/2019\/11\/869bd86cc0b47c6c42f315cf20640018.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Trocha historie: HTTP\/1.1<\/h2>\n<p>\nV roce 1997 byl protokol pro v\u00fdm\u011bnu textov\u00fdch informac\u00ed HTTP verze 1.1 ofici\u00e1ln\u011b p\u0159ijat. V t\u00e9 dob\u011b byl protokol ji\u017e n\u011bkolik let pou\u017e\u00edv\u00e1n prohl\u00ed\u017ee\u010di a nov\u00fd standard vydr\u017eel je\u0161t\u011b patn\u00e1ct let. Protokol fungoval pouze na principu dotaz-odpov\u011b\u010f a byl ur\u010den p\u0159ev\u00e1\u017en\u011b pro p\u0159enos textov\u00fdch informac\u00ed.<\/p>\n<p>HTTP byl navr\u017een pro pr\u00e1ci nad protokolem TCP, kter\u00fd zaru\u010duje spolehlivou dod\u00e1vku paket\u016f k adres\u00e1tovi. Pr\u00e1ce TCP spo\u010d\u00edv\u00e1 v ustanoven\u00ed a udr\u017eov\u00e1n\u00ed spolehliv\u00e9ho spojen\u00ed mezi koncov\u00fdmi body a d\u011blen\u00ed provozu na segmenty. Segmenty maj\u00ed svoje po\u0159adov\u00e9 \u010d\u00edslo a kontroln\u00ed sou\u010det. Pokud n\u011bkter\u00fd ze segment\u016f nedoraz\u00ed nebo doraz\u00ed s nespr\u00e1vn\u00fdm kontroln\u00edm sou\u010dtem, p\u0159enos se zastav\u00ed, dokud nebude ztracen\u00fd segment obnoven.<\/p>\n<p>V HTTP\/1.0 byla TCP spojen\u00ed uzav\u00edr\u00e1na po ka\u017ed\u00e9m po\u017eadavku. To bylo velmi nehospod\u00e1rn\u00e9, proto\u017ee establishment TCP spojen\u00ed (3-Way-Handshake) je pomal\u00fd proces. V HTTP\/1.1 byl p\u0159edstaven mechanismus keep-alive, kter\u00fd umo\u017e\u0148uje znovu pou\u017e\u00edt jedno spojen\u00ed pro v\u00edce po\u017eadavk\u016f. Nicm\u00e9n\u011b proto\u017ee se m\u016f\u017ee snadno st\u00e1t \u00fazk\u00fdm hrdlem, v r\u016fzn\u00fdch implementac\u00edch HTTP\/1.1 je povoleno otev\u0159en\u00ed n\u011bkolika TCP spojen\u00ed k jednomu hostiteli. Nap\u0159\u00edklad v Chromu a v posledn\u00edch verz\u00edch Firefoxu je povoleno a\u017e \u0161est spojen\u00ed.<br \/>\n<img decoding=\"async\" alt=\"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt\" src=\"\/wp-content\/uploads\/2019\/11\/b1c131da8e62ace741f3064f2fb96c60.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u0160ifrov\u00e1n\u00ed m\u011blo b\u00fdt tak\u00e9 ponech\u00e1no na jin\u00fdch protokolech, a proto byl nad TCP pou\u017e\u00edv\u00e1n protokol TLS, kter\u00fd dostate\u010dn\u011b spolehliv\u011b chr\u00e1nil data, ale je\u0161t\u011b v\u00edce zvy\u0161oval \u010das pot\u0159ebn\u00fd pro establishment spojen\u00ed. Nakonec proces handshake vypadal takto:<br \/>\n <img decoding=\"async\" alt=\"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt\" src=\"\/wp-content\/uploads\/2019\/11\/2fdccf56e0ed29444557836fdc65351b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ilustrace Cloudflare<\/i><\/p>\n<p>HTTP\/1.1 tedy m\u011blo \u0159adu probl\u00e9m\u016f:<\/p>\n<ul>\n<li>Pomal\u00e1 ustanoven\u00ed spojen\u00ed.<\/li>\n<li>Data jsou p\u0159ed\u00e1v\u00e1na textov\u011b, co\u017e znamen\u00e1, \u017ee p\u0159enos obr\u00e1zk\u016f, vide\u00ed a dal\u0161\u00ed ne-textov\u00e9 informace nen\u00ed efektivn\u00ed.<\/li>\n<li>Jedno TCP spojen\u00ed se pou\u017e\u00edv\u00e1 pro jeden dotaz, co\u017e znamen\u00e1, \u017ee ostatn\u00ed dotazy mus\u00ed bu\u010f naj\u00edt jin\u00e9 spojen\u00ed, nebo \u010dekat, a\u017e aktu\u00e1ln\u00ed dotaz uvoln\u00ed spojen\u00ed.<\/li>\n<li>Podporuje se pouze pull model. Ve standardu nen\u00ed nic o server-push.<\/li>\n<li>Hlavice se p\u0159ed\u00e1vaj\u00ed textov\u011b.<\/li>\n<\/ul>\n<p>\nPokud je server-push n\u011bjak\u00fdm zp\u016fsobem implementov\u00e1n pomoc\u00ed protokolu WebSocket, budou ostatn\u00ed probl\u00e9my \u0159e\u0161eny radik\u00e1ln\u011bji.<\/p>\n<h2>P\u00e1r modern\u00edch novinek: HTTP\/2<\/h2>\n<p>\nV roce 2012 za\u010dal Google pracovat na protokolu SPDY (vyslovuje se \u201espidi\u201c). Protokol m\u011bl vy\u0159e\u0161it hlavn\u00ed probl\u00e9my HTTP\/1.1 a m\u011bl sou\u010dasn\u011b zachovat zp\u011btnou kompatibilitu. V roce 2015 pracovn\u00ed skupina IETF p\u0159edstavila specifikaci HTTP\/2, zalo\u017eenou na protokolu SPDY. Zde jsou rozd\u00edly v HTTP\/2:<\/p>\n<ul>\n<li>Bin\u00e1rn\u00ed serializace.<\/li>\n<li>Multiplexov\u00e1n\u00ed n\u011bkolika HTTP dotaz\u016f v jednom TCP spojen\u00ed.<\/li>\n<li>Server-push \u201eout of the box\u201c (bez WebSocket).<\/li>\n<\/ul>\n<p>\nProtokol byl velk\u00fdm pokrokem. Podstatn\u011b <noindex><a rel=\"nofollow\" href=\"https:\/\/http2.akamai.com\/demo\">v\u00edt\u011bz\u00ed nad prvn\u00ed verz\u00ed co se t\u00fd\u010de rychlosti<\/a><\/noindex> a nevy\u017eaduje vytvo\u0159en\u00ed n\u011bkolika TCP spojen\u00ed: v\u0161echny dotazy na jeden hostitel se multiplexuj\u00ed do jednoho. To znamen\u00e1, \u017ee v jednom spojen\u00ed je n\u011bkolik tzv. stream\u016f, z nich\u017e ka\u017ed\u00fd m\u00e1 sv\u00e9 ID. Jako bonus je k dispozici server-push.<\/p>\n<p>Nicm\u00e9n\u011b multiplexov\u00e1n\u00ed vede k jin\u00e9 z\u00e1kladn\u00ed probl\u00e9m. P\u0159edstavte si, \u017ee asynchronn\u011b vykon\u00e1v\u00e1me 5 dotaz\u016f na jeden server. P\u0159i pou\u017eit\u00ed HTTP\/2 budou v\u0161echny tyto dotazy vykon\u00e1ny v r\u00e1mci jednoho TCP spojen\u00ed, co\u017e znamen\u00e1, \u017ee pokud jeden z segment\u016f jak\u00e9hokoliv dotazu ztrat\u00ed nebo p\u0159ijde chybn\u011b, p\u0159enos v\u0161ech dotaz\u016f a odpov\u011bd\u00ed se zastav\u00ed, dokud nebude ztracen\u00fd segment obnoven. Je z\u0159ejm\u00e9, \u017ee \u010d\u00edm hor\u0161\u00ed je kvalita spojen\u00ed, t\u00edm pomaleji HTTP\/2 funguje. <noindex><a rel=\"nofollow\" href=\"https:\/\/http3-explained.haxx.se\/en\/why-tcphol.html\">Podle odhadu Daniely Steinbergov\u00e9<\/a><\/noindex>, za podm\u00ednek, kdy ztracen\u00e9 pakety tvo\u0159\u00ed 2 % ze v\u0161ech, HTTP\/1.1 v prohl\u00ed\u017ee\u010di vykazuje lep\u0161\u00ed v\u00fdkon ne\u017e HTTP\/2 d\u00edky tomu, \u017ee otev\u00edr\u00e1 6 spojen\u00ed, nikoli jedno.<\/p>\n<p>Tento probl\u00e9m se naz\u00fdv\u00e1 \u201ehead-of-line blocking\u201c a bohu\u017eel se ned\u00e1 vy\u0159e\u0161it p\u0159i pou\u017eit\u00ed TCP.<br \/>\n<img decoding=\"async\" alt=\"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt\" src=\"\/wp-content\/uploads\/2019\/11\/234a6dc218a9acf8d2212fbdf28f2188.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ilustrace Daniel Steinberg<\/i><\/p>\n<p>Jak ji\u017e bylo \u0159e\u010deno, tv\u016frci standardu HTTP\/2 odvedli obrovskou pr\u00e1ci a ud\u011blali prakticky v\u0161e, co bylo mo\u017en\u00e9 na aplika\u010dn\u00ed \u00farovni modelu OSI. Nyn\u00ed je \u010das p\u0159ej\u00edt na \u00farove\u0148 transportu a vymyslet nov\u00fd transportn\u00ed protokol.<\/p>\n<h2>Pot\u0159ebujeme nov\u00fd protokol: UDP vs TCP<\/h2>\n<p>\nPom\u011brn\u011b rychle se uk\u00e1zalo, \u017ee implementace zcela nov\u00e9ho transportn\u00edho protokolu je v sou\u010dasn\u00fdch podm\u00ednk\u00e1ch \u00fakol, kter\u00fd nelze splnit. Probl\u00e9m je v tom, \u017ee o transportn\u00ed \u00farovni v\u011bd\u00ed za\u0159\u00edzen\u00ed nebo middle-boxy (routery, firewally, NAT servery\u2026), a nau\u010dit je n\u011b\u010demu nov\u00e9mu je velmi slo\u017eit\u00fd \u00fakol. Krom\u011b toho, podpora transportn\u00edch protokol\u016f je zakotvena v j\u00e1dru opera\u010dn\u00edch syst\u00e9m\u016f, a j\u00e1dra se tak\u00e9 nem\u011bn\u00ed p\u0159\u00edli\u0161 ochotn\u011b.<\/p>\n<p>A zde by bylo mo\u017en\u00e9 sklopit ruce a \u0159\u00edct: \u201eSamoz\u0159ejm\u011b, \u017ee vynalezneme nov\u00fd HTTP\/3 s preferencemi a kurtiz\u00e1nami, ale jeho zaveden\u00ed bude trvat 10-15 let (p\u0159ibli\u017en\u011b za tuto dobu bude v\u011bt\u0161ina za\u0159\u00edzen\u00ed nahrazena),\u201c ale existuje je\u0161t\u011b jedna, dalo by se \u0159\u00edct, m\u00e9n\u011b z\u0159ejm\u00e1 varianta: vyu\u017e\u00edt protokol UDP. Ano, ten protokol, kter\u00fdm jsme si v devades\u00e1t\u00fdch letech a na za\u010d\u00e1tku nult\u00fdch h\u00e1zeli soubory po lok\u00e1ln\u00ed s\u00edti. Prakticky v\u0161echna sou\u010dasn\u00e1 za\u0159\u00edzen\u00ed s n\u00edm um\u00ed pracovat.<\/p>\n<p>Jak\u00e9 jsou v\u00fdhody UDP oproti TCP? P\u0159edev\u0161\u00edm v tom, \u017ee nem\u00e1me \u017e\u00e1dnou relaci na transportn\u00ed \u00farovni, o kter\u00e9 by za\u0159\u00edzen\u00ed v\u011bd\u011blo. To n\u00e1m umo\u017e\u0148uje definovat relaci na koncov\u00fdch bodech a tam tak\u00e9 \u0159e\u0161it vznikl\u00e9 konflikty. To znamen\u00e1, \u017ee nejsme omezeni jednou nebo n\u011bkolika relacemi (jak je tomu v TCP), ale m\u016f\u017eeme si jich vytvo\u0159it tolik, kolik pot\u0159ebujeme. Za druh\u00e9, p\u0159enos dat pomoc\u00ed UDP je rychlej\u0161\u00ed ne\u017e pomoc\u00ed TCP. T\u00edm p\u00e1dem teoreticky m\u016f\u017eeme p\u0159ekonat sou\u010dasn\u00fd rychlostn\u00ed strop, dosa\u017een\u00fd v HTTP\/2. <\/p>\n<p>Nicm\u00e9n\u011b UDP nezaru\u010duje spolehlivost p\u0159enosu dat. V podstat\u011b jen pos\u00edl\u00e1me pakety s nad\u011bj\u00ed, \u017ee na druh\u00e9 stran\u011b je obdr\u017e\u00ed. Neobdr\u017eeli? No, nevad\u00ed\u2026 To bylo dostate\u010dn\u00e9 pro p\u0159enos videa pro dosp\u011bl\u00e9, ale pro v\u00e1\u017en\u011bj\u0161\u00ed v\u011bci je pot\u0159eba spolehlivost, co\u017e znamen\u00e1, \u017ee na UDP budeme muset navrstvit n\u011bco dal\u0161\u00edho.<\/p>\n<p>Stejn\u011b jako v p\u0159\u00edpad\u011b HTTP\/2 za\u010dala pr\u00e1ce na vytvo\u0159en\u00ed nov\u00e9ho protokolu ve spole\u010dnosti Google v roce 2012, tedy p\u0159ibli\u017en\u011b ve stejn\u00e9 dob\u011b, kdy za\u010dala pr\u00e1ce na SPDY. V roce 2013 Jim Roskind p\u0159edstavil \u0161irok\u00e9 ve\u0159ejnosti <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/document\/d\/1RNHkx_VvKWyWg6Lr8SZ-saqsQx7rFV-ev2jRFUoVD34\/edit\">protokol QUIC (Quick UDP Internet Connections)<\/a><\/noindex>, a v roce 2015 byl p\u0159id\u00e1n Internet Draft pro standardizaci v IETF. U\u017e v t\u00e9 dob\u011b se protokol vyvinut\u00fd Roskindem v Googlu zna\u010dn\u011b li\u0161il od navr\u017een\u00e9ho standardu, a proto byla googleovsk\u00e1 verze naz\u00fdv\u00e1na gQUIC.<\/p>\n<h4>Co je QUIC<\/h4>\n<p>\nZa prv\u00e9, jak ji\u017e bylo zm\u00edn\u011bno, je to ob\u00e1lka nad UDP. Nad UDP se vytv\u00e1\u0159\u00ed QUIC-p\u0159ipojen\u00ed, ve kter\u00e9m mohou existovat, podobn\u011b jako v HTTP\/2, v\u00edce proud\u016f. Tyto proudy existuj\u00ed pouze na koncov\u00fdch bodech a jsou obsluhov\u00e1ny nez\u00e1visle. Pokud dojde ke ztr\u00e1t\u011b paketu v jednom proudu, ostatn\u00ed to nijak neovlivn\u00ed.<br \/>\n<img decoding=\"async\" alt=\"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt\" src=\"\/wp-content\/uploads\/2019\/11\/0a64aa26d9b8216db56d389fa48578a5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ilustrace Daniel Steinberg<\/i><\/p>\n<p>Za druh\u00e9, \u0161ifrov\u00e1n\u00ed je nyn\u00ed realizov\u00e1no nikoli jako samostatn\u00e1 \u00farove\u0148, ale je zahrnuto v protokolu. To umo\u017e\u0148uje navazovat p\u0159ipojen\u00ed a vym\u011b\u0148ovat ve\u0159ejn\u00e9 kl\u00ed\u010de na jedno handshake, a tak\u00e9 umo\u017e\u0148uje pou\u017e\u00edvat \u00fahledn\u00fd mechanismus 0-RTT handshake a t\u00edm \u00fapln\u011b eliminovat prodlevy p\u0159i handshake. Krom\u011b toho je nyn\u00ed mo\u017en\u00e9 \u0161ifrovat jednotliv\u00e9 datov\u00e9 pakety. To umo\u017e\u0148uje ne\u010dekat na dokon\u010den\u00ed p\u0159\u00edjmu dat z proudu, ale de\u0161ifrovat p\u0159ijat\u00e9 pakety nez\u00e1visle. Tento zp\u016fsob pr\u00e1ce nebyl s TCP v\u016fbec mo\u017en\u00fd, proto\u017ee TLS a TCP pracovaly nez\u00e1visle na sob\u011b, a TLS nemohlo v\u011bd\u011bt, na jak\u00e9 bloky budou data rozd\u011blena TCP. A t\u00edm p\u00e1dem nemohlo p\u0159ipravit sv\u00e9 segmenty tak, aby se ve\u0161ly do segment\u016f TCP jeden k jednomu a mohly b\u00fdt de\u0161ifrov\u00e1ny nez\u00e1visle. V\u0161echny tyto vylep\u0161en\u00ed umo\u017e\u0148uj\u00ed QUIC sn\u00ed\u017eit latenci ve srovn\u00e1n\u00ed s TCP.<br \/>\n<img decoding=\"async\" alt=\"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt\" src=\"\/wp-content\/uploads\/2019\/11\/cb3c522636f7a052a0f5988fe7ea3a65.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZa t\u0159et\u00ed, koncept lehk\u00fdch proud\u016f umo\u017e\u0148uje odpojit p\u0159ipojen\u00ed od IP adresy klienta. To je d\u016fle\u017eit\u00e9 nap\u0159\u00edklad v p\u0159\u00edpad\u011b, kdy se klient p\u0159ep\u00edn\u00e1 z jednoho Wi-Fi p\u0159\u00edstupov\u00e9ho bodu na druh\u00fd, co\u017e m\u011bn\u00ed jeho IP. V tomto p\u0159\u00edpad\u011b p\u0159i pou\u017eit\u00ed TCP prob\u00edh\u00e1 dlouh\u00fd proces, b\u011bhem kter\u00e9ho existuj\u00edc\u00ed TCP p\u0159ipojen\u00ed vypad\u00e1vaj\u00ed kv\u016fli timeoutu a vytv\u00e1\u0159\u00ed se nov\u00e1 p\u0159ipojen\u00ed s novou IP. V p\u0159\u00edpad\u011b QUIC klient jednodu\u0161e pokra\u010duje v zas\u00edl\u00e1n\u00ed paket\u016f serveru z nov\u00e9 IP se star\u00fdm ID proudu. Proto\u017ee ID proudu je nyn\u00ed jedine\u010dn\u00e9 a nen\u00ed znovu pou\u017e\u00edv\u00e1no, server rozum\u00ed tomu, \u017ee klient zm\u011bnil IP, dopln\u00ed ztracen\u00e9 pakety a pokra\u010duje v komunikaci na nov\u00e9 adrese.<\/p>\n<p>Za \u010dtvrt\u00e9, QUIC je implementov\u00e1n na \u00farovni aplikace, nikoli opera\u010dn\u00edho syst\u00e9mu. Na jedn\u00e9 stran\u011b to umo\u017e\u0148uje rychleji prov\u00e1d\u011bt zm\u011bny v protokolu, proto\u017ee pro aktualizaci sta\u010d\u00ed pouze aktualizovat knihovnu, a nikoli \u010dekat na novou verzi OS. Na druh\u00e9 stran\u011b to vede k v\u00fdrazn\u00e9mu n\u00e1r\u016fstu spot\u0159eby CPU.<\/p>\n<p>A nakonec, hlavi\u010dky. Komprese hlavi\u010dek se t\u00fdk\u00e1 pr\u00e1v\u011b t\u011bch aspekt\u016f, kter\u00e9 se li\u0161\u00ed mezi QUIC a gQUIC. Nevid\u00edm d\u016fvod tomu v\u011bnovat p\u0159\u00edli\u0161 mnoho \u010dasu, \u0159eknu jen, \u017ee v verzi, poskytnut\u00e9 ke standardizaci, byla komprese hlavi\u010dek co nejv\u00edce podobn\u00e1 kompresi hlavi\u010dek v HTTP\/2. Podrobnosti lze p\u0159e\u010d\u00edst <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/the-road-to-quic\/\">zde<\/a><\/noindex>.<\/p>\n<h4>Jak moc je to rychlej\u0161\u00ed?<\/h4>\n<p>\nTohle je slo\u017eit\u00e1 ot\u00e1zka. Faktem je, \u017ee zat\u00edm nem\u00e1me standard, tak\u017ee nen\u00ed moc co m\u011b\u0159it. Snad jedin\u00e1 statistick\u00e1 data, kter\u00e1 m\u00e1me, jsou statistiky Googlu, kter\u00fd pou\u017e\u00edv\u00e1 gQUIC od roku 2013 a v roce 2016 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ietf.org\/proceedings\/96\/slides\/slides-96-quic-3.pdf\">p\u0159edlo\u017eil zpr\u00e1vu IETF<\/a><\/noindex>, \u017ee asi 90 % provozu sm\u011b\u0159uj\u00edc\u00edho k jejich server\u016fm z prohl\u00ed\u017ee\u010de Chrome nyn\u00ed pou\u017e\u00edv\u00e1 QUIC. Ve stejn\u00e9 prezentaci uv\u00e1d\u011bj\u00ed, \u017ee str\u00e1nky se prost\u0159ednictv\u00edm gQUIC na\u010d\u00edtaj\u00ed p\u0159ibli\u017en\u011b o 5 % rychleji a u streamovan\u00e9ho videa doch\u00e1z\u00ed k 30% poklesu z\u00e1sek\u016f ve srovn\u00e1n\u00ed s TCP. <\/p>\n<p>V roce 2017 skupina v\u011bdc\u016f veden\u00e1 Arash Malavim Kakhkim publikovala <noindex><a rel=\"nofollow\" href=\"https:\/\/conferences.sigcomm.org\/imc\/2017\/papers\/imc17-final39.pdf\">rozs\u00e1hlou pr\u00e1ci<\/a><\/noindex> o v\u00fdkonu gQUIC v porovn\u00e1n\u00ed s TCP. <br \/>\nStudie odhalila n\u011bkolik slab\u00fdch str\u00e1nek gQUIC, jako je nestabilita v\u016f\u010di sm\u00edch\u00e1n\u00ed s\u00ed\u0165ov\u00fdch paket\u016f, nef\u00e9r alokace \u0161\u00ed\u0159ky p\u00e1sma a pomalej\u0161\u00ed p\u0159enos mal\u00fdch (do 10 kB) objekt\u016f. Posledn\u00ed probl\u00e9m se v\u0161ak poda\u0159\u00ed kompenzovat pou\u017eit\u00edm 0-RTT. Ve v\u0161ech ostatn\u00edch zkouman\u00fdch p\u0159\u00edpadech gQUIC vyk\u00e1zal zv\u00fd\u0161en\u00ed rychlosti oproti TCP. O konkr\u00e9tn\u00edch \u010d\u00edslech je t\u011b\u017ek\u00e9 mluvit. Nejl\u00e9pe si p\u0159e\u010d\u00edst <noindex><a rel=\"nofollow\" href=\"https:\/\/conferences.sigcomm.org\/imc\/2017\/papers\/imc17-final39.pdf\">samotnou studii<\/a><\/noindex> nebo <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.apnic.net\/2018\/01\/29\/measuring-quic-vs-tcp-mobile-desktop\/\">kr\u00e1tk\u00fd p\u0159\u00edsp\u011bvek<\/a><\/noindex>.<\/p>\n<p>Je t\u0159eba \u0159\u00edci, \u017ee tato data se t\u00fdkaj\u00ed pr\u00e1v\u011b gQUIC a nejsou aktu\u00e1ln\u00ed pro vyv\u00edjen\u00fd standard. Co bude pro QUIC: zat\u00edm je to tajemstv\u00ed, ale existuje nad\u011bje, \u017ee slab\u00e9 str\u00e1nky, kter\u00e9 byly zji\u0161t\u011bny u gQUIC, budou zohledn\u011bny a opraveny.<\/p>\n<h2>Trocha budoucnosti: co s HTTP\/3?<\/h2>\n<p>\nTady je v\u0161e naprosto jasn\u00e9: API se nijak nezm\u011bn\u00ed. V\u0161echno z\u016fstane p\u0159esn\u011b tak, jak bylo v HTTP\/2. Pokud tedy API z\u016fst\u00e1v\u00e1 stejn\u00e9, p\u0159echod na HTTP\/3 bude vy\u017eadovat pou\u017eit\u00ed nov\u00e9 verze knihovny, kter\u00e1 podporuje transport p\u0159es QUIC na backendu. Nicm\u00e9n\u011b, je\u0161t\u011b dlouho bude pot\u0159eba m\u00edt fallback na star\u0161\u00ed verze HTTP, proto\u017ee internet nyn\u00ed nen\u00ed p\u0159ipraven na pln\u00fd p\u0159echod na UDP.<\/p>\n<h4>Kdo ji\u017e podporuje<\/h4>\n<p>\nTady <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/quicwg\/base-drafts\/wiki\/Implementations\">seznam<\/a><\/noindex> existuj\u00edc\u00ed implementace QUIC. P\u0159esto\u017ee chyb\u00ed standard, seznam nen\u00ed \u0161patn\u00fd. <\/p>\n<p>\u017d\u00e1dn\u00fd prohl\u00ed\u017ee\u010d v sou\u010dasnosti nepodporuje QUIC v produk\u010dn\u00edm vyd\u00e1n\u00ed. Ned\u00e1vno se objevila informace, \u017ee Chrome aktivoval podporu HTTP\/3, ale zat\u00edm pouze v Canary. <\/p>\n<p>Mezi backendy HTTP\/3 podporuje pouze <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/caddyserver\/caddy\">Caddy<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/http3-the-past-present-and-future\/\">Cloudflare<\/a><\/noindex>, ale zat\u00edm experiment\u00e1ln\u011b. NGINX na konci jara 2019 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/blog\/nginx-1-16-1-17-released\/\">ozn\u00e1mili<\/a><\/noindex>, ozn\u00e1mil, \u017ee za\u010dali pracovat na podpo\u0159e HTTP\/3, ale zat\u00edm to nedokon\u010dili.<\/p>\n<h4>Jak\u00e9 jsou probl\u00e9my<\/h4>\n<p>\n\u017dijeme v re\u00e1ln\u00e9m sv\u011bt\u011b, kde \u017e\u00e1dn\u00e1 velk\u00e1 technologie nem\u016f\u017ee proniknout do mas, ani\u017e by se setkala s odporem, a QUIC nen\u00ed v\u00fdjimkou.<\/p>\n<p>Nejd\u016fle\u017eit\u011bj\u0161\u00ed je n\u011bjak\u00fdm zp\u016fsobem vysv\u011btlit prohl\u00ed\u017ee\u010di, \u017ee \u201chttps:\/\/\u201d nyn\u00ed nemus\u00ed v\u00e9st na 443. TCP port. M\u016f\u017ee tam b\u00fdt dokonce \u017e\u00e1dn\u00fd TCP. K tomu se pou\u017e\u00edv\u00e1 hlavi\u010dka Alt-Svc. Ta umo\u017e\u0148uje sd\u011blit prohl\u00ed\u017ee\u010di, \u017ee tento web je tak\u00e9 dostupn\u00fd na ur\u010dit\u00e9m protokolu na ur\u010dit\u00e9 adrese. Teoreticky by to m\u011blo fungovat bez probl\u00e9m\u016f, ale v praxi se setk\u00e1v\u00e1me s t\u00edm, \u017ee UDP m\u016f\u017ee b\u00fdt nap\u0159\u00edklad zak\u00e1z\u00e1n na firewallu kv\u016fli DDoS \u00fatok\u016fm.<\/p>\n<p>Ale i kdy\u017e UDP nen\u00ed zak\u00e1z\u00e1n, klient m\u016f\u017ee b\u00fdt za NAT routerem, kter\u00fd je nastaven na udr\u017een\u00ed TCP sezen\u00ed podle IP adresy, a proto\u017ee pou\u017e\u00edv\u00e1me UDP, kde nen\u00ed hardwarov\u00e9 sezen\u00ed, NAT nebude udr\u017eovat spojen\u00ed a QUIC sezen\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/the-road-to-quic\/\">bude neust\u00e1le p\u0159eru\u0161ov\u00e1no.<\/a><\/noindex>. <\/p>\n<p>V\u0161echny tyto probl\u00e9my vypl\u00fdvaj\u00ed z toho, \u017ee UDP nebylo d\u0159\u00edve pou\u017e\u00edv\u00e1no k p\u0159enosu internetov\u00e9ho obsahu a v\u00fdrobci hardwaru nemohli p\u0159edv\u00eddat, \u017ee se to n\u011bkdy stane. Stejn\u011b tak administr\u00e1to\u0159i zat\u00edm p\u0159esn\u011b nech\u00e1pou, jak spr\u00e1vn\u011b nastavit sv\u00e9 s\u00edt\u011b pro pr\u00e1ci s QUIC. Tato situace se postupn\u011b m\u011bn\u00ed, a v ka\u017ed\u00e9m p\u0159\u00edpad\u011b takov\u00e9 zm\u011bny zabere m\u00e9n\u011b \u010dasu ne\u017e implementace nov\u00e9ho transportn\u00edho protokolu. <\/p>\n<p>Krom\u011b toho, jak ji\u017e bylo pops\u00e1no, QUIC v\u00fdrazn\u011b zvy\u0161uje zat\u00ed\u017een\u00ed procesoru. Daniel Stenberg <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=idViw4anA6E\">ohodnotil<\/a><\/noindex> n\u00e1r\u016fst zat\u00ed\u017een\u00ed procesoru a\u017e t\u0159ikr\u00e1t.<\/p>\n<h4>Kdy nastane HTTP\/3<\/h4>\n<p>\nStandard <noindex><a rel=\"nofollow\" href=\"https:\/\/datatracker.ietf.org\/wg\/quic\/about\/\">cht\u011bj\u00ed p\u0159ijmout.<\/a><\/noindex> K kv\u011btnu 2020, ale s ohledem na to, \u017ee dokumenty pl\u00e1novan\u00e9 na \u010dervenec 2019 jsou st\u00e1le nedokon\u010den\u00e9, lze \u0159\u00edci, \u017ee datum bude pravd\u011bpodobn\u011b posunuto.<\/p>\n<p>Google pou\u017e\u00edv\u00e1 svou implementaci gQUIC od roku 2013. Pokud se pod\u00edv\u00e1te na HTTP \u017e\u00e1dost, kter\u00e1 je odes\u00edl\u00e1na na vyhled\u00e1va\u010d Google, m\u016f\u017eete vid\u011bt toto:<br \/>\n<img decoding=\"async\" alt=\"HTTP\/3: rozbit\u00ed z\u00e1klad\u016f a divn\u00fd nov\u00fd sv\u011bt\" src=\"\/wp-content\/uploads\/2019\/11\/af422268eb85b488c7be1b70c6d33fad.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Z\u00e1v\u011bry<\/h2>\n<p>\nQUIC nyn\u00ed vypad\u00e1 jako pom\u011brn\u011b syrov\u00e1, ale velmi perspektivn\u00ed technologie. Vzhledem k tomu, \u017ee posledn\u00edch 20 let se v\u0161echny optimalizace transportn\u00edch protokol\u016f zam\u011b\u0159ovaly p\u0159ev\u00e1\u017en\u011b na TCP, QUIC, v\u011bt\u0161inou v\u00edt\u011bz\u00edc\u00ed z hlediska v\u00fdkonu, nyn\u00ed vypad\u00e1 velmi dob\u0159e. <\/p>\n<p>Nicm\u00e9n\u011b st\u00e1le existuj\u00ed nevy\u0159e\u0161en\u00e9 probl\u00e9my, se kter\u00fdmi se budeme muset pot\u00fdkat v n\u00e1sleduj\u00edc\u00edch letech. Proces m\u016f\u017ee b\u00fdt zpo\u017ed\u011bn kv\u016fli tomu, \u017ee je zapojeno za\u0159\u00edzen\u00ed, kter\u00e9 nikdo nechce aktualizovat, ale v\u0161echny probl\u00e9my se p\u0159esto zdaj\u00ed b\u00fdt \u0159e\u0161iteln\u00e9 a d\u0159\u00edve \u010di pozd\u011bji budeme m\u00edt v\u0161ichni HTTP\/3. <\/p>\n<p>Budoucnost je bl\u00edzko!<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/473930\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 20 \u043b\u0435\u0442 \u043c\u044b \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0438 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTP. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0414\u0440\u0443\u0433\u0438\u0435 \u0437\u043d\u0430\u044e\u0442, \u0447\u0442\u043e \u0433\u0434\u0435-\u0442\u043e \u043f\u043e\u0434 HTTP \u0435\u0441\u0442\u044c TLS, \u0430 \u043f\u043e\u0434 \u043d\u0438\u043c TCP, \u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c IP \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0410 \u0442\u0440\u0435\u0442\u044c\u0438 \u2013 \u0435\u0440\u0435\u0442\u0438\u043a\u0438 \u2013 \u0441\u0447\u0438\u0442\u0430\u044e\u0442, \u0447\u0442\u043e TCP \u2013 \u044d\u0442\u043e \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0432\u0435\u043a, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52181","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 20 \u043b\u0435\u0442 \u043c\u044b \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0438 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTP. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\" \/>\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\/cs\/blog\/administrirovanie\/http-3-razrushenie-osnov-i-divnyj-novyj-mir\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/3: \u0440\u0430\u0437\u0440\u0443\u0448\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432 \u0438 \u0434\u0438\u0432\u043d\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u043c\u0438\u0440 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 20 \u043b\u0435\u0442 \u043c\u044b \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0438 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTP. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/http-3-razrushenie-osnov-i-divnyj-novyj-mir\" \/>\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=\"2019-11-01T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:59:51+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\/3: rozvracen\u00ed z\u00e1klad\u016f a podivn\u00fd nov\u00fd sv\u011bt | ProHoster","description":"U\u017e v\u00edce ne\u017e 20 let prohl\u00ed\u017e\u00edme webov\u00e9 str\u00e1nky prost\u0159ednictv\u00edm protokolu HTTP. V\u011bt\u0161ina u\u017eivatel\u016f v\u016fbec nep\u0159em\u00fd\u0161l\u00ed o tom, co to je a jak to funguje.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/http-3-razrushenie-osnov-i-divnyj-novyj-mir","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/3: \u0440\u0430\u0437\u0440\u0443\u0448\u0435\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432 \u0438 \u0434\u0438\u0432\u043d\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u043c\u0438\u0440 | ProHoster","og:description":"\u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 20 \u043b\u0435\u0442 \u043c\u044b \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0438 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 HTTP. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/http-3-razrushenie-osnov-i-divnyj-novyj-mir","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":"2019-11-01T21:00:00+00:00","article:modified_time":"2020-02-18T10:59:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52181","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":"2026-01-24 02:46:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:48:31","updated":"2026-01-24 02:46:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/52181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=52181"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/52181\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=52181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=52181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=52181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}