19 komentářů k článku Front-end vývojáři, dejte si pozor na HTTP2! Mohli byste webům škodit.:

    1. Jan ŠablaturaAutor příspěvku

      Re: Úvod
      Já si myslím, že by se tím ztratilo rozdělení do odstavců „co se dělá teď“ – „proč se to tak dělá“ – „jak se to bude dělat“, které má kontinuální návaznost. Ale psaní článků nerozumím.

  1. sharkodlak

    Přijde mi pořád efektivní mít zvláštní doménu na servírování statického obsahu. I když jsou hlavičky komprimované, stále je zbytečné je přenášet tam a zpět, pokud nejsou vůbec potřeba. Navíc mám pocit, že v dnešní době, kdy převažují asymetrická připojení k internetu (kde download může být třeba 10* rychlejší než upload), se výrazněji ušetří přenosový čas každého požadavku.

    Souhrn:

    • jeden dotaz na DNS navíc
    • zmenšení přenášených dat při každém požadavku
    • urychlí přenosy i pro HTTP/1.x
    1. Jan ŠablaturaAutor příspěvku

      Re:
      Ano, to rozhodně bude mít efekt. U HTTP/1.x do té doby, než narazí na omezený počet requestů (ale v tom případě už by se sharding s více (sub)doménami vyplatil). A u HTTP/2 tím, že nebude přenášet zmíněné komprimované hlavičky. Čili proč ne.

  2. Dor

    Concatenating považuji i za součást obfuskace. Podle vzoru: Krádeži nelze zabránit, ale každá další překážka může rozhodnout o tom, že už se to nevyplatí krást.

  3. Jirka Kosek

    Benchmark
    A k tomu závěru se došlo teoreticky, nebo na základě měření skutečného webu servírovaého přes oba protokoly? Ptám se, protože v článku jsou různé nepřesnosti.

    1. Jan ŠablaturaAutor příspěvku

      Re: Benchmark
      Závisí na tom, kterou z optimalizačních metod posuzujete. Sharding/používání dodatečných (sub)domén je díky multiplexování a concurrency neefektivní. A slučování souborů (sprity/concenation) je zase zbytečné díky server push, který defacto dělá něco podobného. Nesporná výhoda je v tom, že nemusíte přenášet jeden velký soubor s tisíci nevyužitými css pravidly/js funkcemi/obrázky, ale pro každou stránku se stáhne jen to, co je aktuálně třeba. Protože nynější protokol není stavěný na to, aby ke stránce bylo přiloženo třeba 70 css souborů. A právě ty nevyužité části souborů v dnešním případě docela bolí na mobilních zařízeních, kde se zbytečně stahují javascriptové balíky, které mnohdy nejsou třeba. Určitě znáte desítky serverů, které použijí framework pro jednu jejich podstránku, ale includují jej na všech stránkách a uživatel jej tak mnohdy ani nepotřebuje, protože tu danou podstránku nikdy nenavštíví.

      Co se týká benchmarku, jeden je k článku přiložen: https://http2.akamai.com/

      Pokud jsou v článku nepřesnosti, sem s nimi. Vždycky je co vylepšit.

      1. Jaroslav Bereza

        Re: Benchmark
        Co třeba změna obrázku na najetí myši? Nebude to problikávat? Není tohle třeba výjimka kdy spritesheet použít?

        1. Jan ŠablaturaAutor příspěvku

          Re: Benchmark
          Momentálně to nemohu vyzkoušet a tudíž nechci fabulovat. Myslím si však, že z návrhu http2 se přenese push cache spojená s danou stránkou a tudíž se stáhne i hover obrázek, problikávat to pak nebude. Berte to ale spíš jako subjektivní názor, než jako fakt.

  4. Jirka Kosek

    Umožňuje otevřenou komunikaci pro zpětné použití requestu, čili není třeba složitého navazování komunikace, kterou HTTP1 potřebuje pro každý požadavek

    Tak to v HTTP/1.1 funguje stejně, spojení se standardně neuzavírá, v HTTP/1.0 jde toto chování vynutit pomocí hlavičky Keep-Alive

    HTTP2 oproti HTTP1 rovněž používá kompresi, čili velikost každého požadavku je výrazně nižší a tudíž rychlejší

    HTTP/1.1 samozřejmě kompresi podporuje, viz hlavička Content-Encoding (nepodporuje však komprimaci hlaviček)

    HTTP2 je bezesporu mnohem lepší a efektivnější, ale nemá cenu šiřit o HTTP/1.0/1.1 bludy.

  5. karel

    bezpečnost

    když například nejpoužívanější js framework jQuery nenutíte uživatele stahovat z vašeho serveru, ale ve svém zdrojového html souboru nalinkujete volně dostupný script z adresy http://code.jquery.com/jquery-latest.min.js

    Aneb jak si na webové stránky zatáhnout zranitelnost.
    Je celkem sranda, že na rootu dnes vyšli články o bezpečnosti a zde se nabádá k používaná nebezpečných věcí.
    Tohle vkládání javascriptu od kdejaké služby je strašlivá hloupost a neznalost. A navíc přes http. Je to jak, kdyby ste dali klíče od bytu náhodnému kolemjdoucímu a on Vám slíbyl, že po dobu dovoléne Vám zaleje kytky, ano nic se nemusí stát nebo taky po příjezdu zjistíte, že Vám krom zalívání kytek také vybílil.

    1. wsh

      Re: bezpečnost
      Tady bych viděl prostor pro vylepšení prohlížečů. Kdyby kodér mohl místo konkrétního url odkazovat na knihovnu s názvem XYZ ve verzi vM.N s nějakým checksumem a fallback url a prohlížeč by to držel v samostatné cache sdílené mezi weby, mohlo by to zejména na mobilech dost přenosu dat ušetřit.

      1. karel

        Re: bezpečnost
        ano to by mohla být cesta, dokonce by možná stačil checksum pro identifikaci,
        jen je otázkou co by na to řekli provozovatelé cdn, že jim někdo leze do zelí.

        ale teď vážně, většina postupů, rad a triků jak zvíšit rychlost načítání vebů je vlastně marginální v porovnaná s nutností cucnout si jquery, jquery.ui nebo bootstrap ….. opravdu zazdílení obsahu těchto knihoven by by bohatě stačilo

  6. Martin Šoch

    funkčí serverová implementace
    To je sice všechno hezké, ale co když chci ty HTTP2 vychytávky používat už teď? Existuje nějaká funkční serverová implementace, vhodná do produkce? Třeba „server push“ by se mi sakra hodil…

  7. Jan ŠablaturaAutor příspěvku

    Případně na stránce: https://github.com/http2/http2-spec/wiki/Implementations lze nalézt řadu implementací pro různé jazyky. Protože jde o experimentální implementace, je jejich vhodnost do produkce otázkou. Ale pokud se Vám podaří něco podobného bezproblémově rozjet, můžete říci, že máte jeden z prvních (českých) serverů na tomto protokolu. Já osobně o žádném neslyšel (což ale pranic neznamená).

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=15291