{"id":33901,"date":"2019-10-31T21:55:19","date_gmt":"2019-10-31T18:55:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\/"},"modified":"2019-10-31T21:55:19","modified_gmt":"2019-10-31T18:55:19","slug":"cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","title":{"rendered":"Cloudflare, Mozilla i Facebook rozwijaj\u0105 BinaryAST w celu przyspieszenia \u0142adowania JavaScript","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In\u017cynierowie z firm Cloudflare, Mozilla, Facebook i Bloomberg <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/binary-ast\/\">zapropnowano<\/a><\/noindex> nowy format <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tc39\/proposal-binary-ast\">BinaryAST<\/a><\/noindex>  w celu przyspieszenia dostarczania i przetwarzania kodu JavaScript podczas otwierania stron w przegl\u0105darkach. BinaryAST przenosi faz\u0119 analizy sk\u0142adniowej na serwer i dostarcza ju\u017c utworzone abstrakcyjne drzewo sk\u0142adniowe (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D0%BE%D0%B5_%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE\">AST<\/a><\/noindex>). Po otrzymaniu BinaryAST przegl\u0105darka mo\u017ce od razu przej\u015b\u0107 do etapu kompilacji, omijaj\u0105c analiz\u0119 kodu \u017ar\u00f3d\u0142owego JavaScript. <\/p>\n<p>Do testowania <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/binast\/binjs-ref\">przygotowano<\/a><\/noindex> referencyjna implementacja udost\u0119pniana na licencji MIT. Do analizy u\u017cywane s\u0105 komponenty Node.js, a kod do optymalizacji i tworzenia AST napisany jest w j\u0119zyku Rust. Po stronie przegl\u0105darek wsparcie<br \/>\nBinaryAST jest ju\u017c dost\u0119pne w <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/channel\/desktop\/#nightly\">nocnych wersjach<\/a><\/noindex> Firefox. Koder w BinaryAST mo\u017ce by\u0107 stosowany zar\u00f3wno na poziomie narz\u0119dzi ko\u0144cowej strony, jak i do pakowania skrypt\u00f3w stron zewn\u0119trznych po stronie proxy lub sieci dostarczania tre\u015bci. W chwili obecnej rozpocz\u0105\u0142 si\u0119 ju\u017c proces standaryzacji BinaryAST przez grup\u0119 robocz\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/tc39.github.io\/\">ECMA TC39<\/a><\/noindex>, po zako\u0144czeniu kt\u00f3rej format b\u0119dzie m\u00f3g\u0142 wsp\u00f3\u0142istnie\u0107 z istniej\u0105cymi metodami kompresji dostarczanych tre\u015bci, takimi jak gzip i brotli. <\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/content\/images\/2019\/05\/without-binAST.png\"><img decoding=\"async\" alt=\"Cloudflare, Mozilla i Facebook rozwijaj\u0105 BinaryAST w celu przyspieszenia \u0142adowania JavaScript\" src=\"\/wp-content\/uploads\/2019\/05\/fdb78c6b073295f42c6ed83e0ba73dd1.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><br \/>\n<center><noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/content\/images\/2019\/05\/With-BinAST.png\"><img decoding=\"async\" alt=\"Cloudflare, Mozilla i Facebook rozwijaj\u0105 BinaryAST w celu przyspieszenia \u0142adowania JavaScript\" src=\"\/wp-content\/uploads\/2019\/05\/457e5f127c81b8708cdc04ba0176a636.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Znacz\u0105ca cz\u0119\u015b\u0107 czasu przetwarzania JavaScript zajmuje faza \u0142adowania i analizy sk\u0142adni kodu. Bior\u0105c pod uwag\u0119, \u017ce obj\u0119to\u015b\u0107 \u0142adowanego JavaScriptu na wielu popularnych stronach internetowych zbli\u017ca si\u0119 do 10 MB (na przyk\u0142ad dla LinkedIn \u2014 7,2 MB, Facebook \u2014 7,1 MB, Gmail \u2014 3,9 MB), pocz\u0105tkowe przetwarzanie JavaScriptu wprowadza istotne op\u00f3\u017anienia. Etap analizy w przegl\u0105darce r\u00f3wnie\u017c zwalnia z powodu niemo\u017cno\u015bci pe\u0142nego budowania AST w locie, podczas \u0142adowania kodu (przegl\u0105darka musi czeka\u0107 na zako\u0144czenie \u0142adowania blok\u00f3w kodu, na przyk\u0142ad ko\u0144ca funkcji, aby uzyska\u0107 brakuj\u0105ce informacje potrzebne do analizy bie\u017c\u0105cych element\u00f3w).<\/p>\n<p>Cz\u0119\u015bciowo problem ten pr\u00f3buje si\u0119 rozwi\u0105za\u0107 poprzez rozpowszechnianie kodu w zminimalizowanej i skompresowanej formie, a tak\u017ce przy pomocy pami\u0119ci podr\u0119cznej przegl\u0105darki, kt\u00f3ra generuje kod bajtowy. Na nowoczesnych stronach kod jest aktualizowany do\u015b\u0107 cz\u0119sto, dlatego pami\u0119ci podr\u0119czne jedynie cz\u0119\u015bciowo rozwi\u0105zuj\u0105 problem. Rozwi\u0105zaniem mog\u0142oby by\u0107 WebAssembly, ale wymaga ono u\u017cycia jawnej typizacji w kodzie i nie nadaje si\u0119 do przyspieszenia przetwarzania ju\u017c istniej\u0105cego kodu JavaScript. <\/p>\n<p>Innym rozwi\u0105zaniem jest dostarczenie gotowego skompilowanego bajtkodu zamiast skrypt\u00f3w JavaScript, jednak deweloperzy silnik\u00f3w przegl\u0105darek s\u0105 przeciwni temu, poniewa\u017c zewn\u0119trzny bajtkod jest trudny do weryfikacji, a jego bezpo\u015brednie przetwarzanie mo\u017ce prowadzi\u0107 do rozwarstwienia Web, pojawiaj\u0105 si\u0119 dodatkowe zagro\u017cenia dla bezpiecze\u0144stwa i wymagana jest rozw\u00f3j formatu uniwersalnego bajtkodu.<\/p>\n<p>BinaryAST pozwala na wpasowanie si\u0119 w obecny model rozwoju i dostarczania kodu bez tworzenia nowego bajtkodu i bez zmiany j\u0119zyka JavaScript. Rozmiar danych w formacie BinaryAST jest por\u00f3wnywalny z skompresowanym, zminimalizowanym kodem JavaScript, a pr\u0119dko\u015b\u0107 przetwarzania wzrasta znacz\u0105co dzi\u0119ki wyeliminowaniu fazy analizy tekst\u00f3w \u017ar\u00f3d\u0142owych. Dodatkowo, format umo\u017cliwia kompilacj\u0119 do bajtkodu podczas \u0142adowania BinaryAST, nie czekaj\u0105c na zako\u0144czenie odbioru wszystkich danych. Co wi\u0119cej, analiza po stronie serwera pozwala na wykluczenie z przekazywanego przedstawienia BinaryAST nieu\u017cywanych funkcji i zb\u0119dnego kodu, na co przy analizie po stronie przegl\u0105darki tracony jest czas zar\u00f3wno na analiz\u0119, jak i na przesy\u0142anie zb\u0119dnego ruchu.<\/p>\n<p>Cech\u0105 BinaryAST jest r\u00f3wnie\u017c mo\u017cliwo\u015b\u0107 odtworzenia czytelnego JavaScriptu, kt\u00f3ry nie jest identyczny z orygina\u0142em, ale semantycznie r\u00f3wnowa\u017cny i zawiera te same nazwy zmiennych oraz funkcji (BinaryAST zachowuje nazwy, ale nie przechowuje informacji o pozycjach w kodzie, formatowaniu i komentarzach). Drug\u0105 stron\u0105 medalu jest pojawienie si\u0119 nowych wektor\u00f3w atak\u00f3w, ale wed\u0142ug deweloper\u00f3w s\u0105 one znacznie mniejsze i bardziej kontrolowane ni\u017c w przypadku alternatyw, jak np. rozpowszechnianie bajtkodu.<\/p>\n<p>Testy kodu facebook.com wykaza\u0142y, \u017ce analizowanie JavaScriptu zajmuje 10-15% zasob\u00f3w CPU, a analiza zajmuje wi\u0119cej czasu ni\u017c generowanie bajtkodu i pocz\u0105tkowe formowanie kodu do JIT. W silniku SpiderMonkey czas pe\u0142nego budowania AST wynosi 500-800 ms, a zastosowanie BinaryAST pozwoli\u0142o skr\u00f3ci\u0107 ten czas o 70-90%.<br \/>\nOg\u00f3lnie rzecz bior\u0105c, dla wi\u0119kszo\u015bci framework\u00f3w webowych przy zastosowaniu BinaryAST czas analizy JavaScriptu skraca si\u0119 o 3-10% w trybie bez optymalizacji i o 90-97% przy w\u0142\u0105czeniu trybu ignorowania nieu\u017cywanych funkcji.<br \/>\nPodczas testowania zestawu JavaScript o rozmiarze 1,2 MB u\u017cycie BinaryAST pozwoli\u0142o skr\u00f3ci\u0107 czas uruchamiania z 338 do 314 ms na komputerach stacjonarnych (Intel i7) oraz z 2019 do 1455 ms na urz\u0105dzeniach mobilnych (HTC One M8).<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>\u0179r\u00f3d\u0142o: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50701\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 JavaScript \u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u0430\u0439\u0442\u043e\u0432 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435. BinaryAST \u0432\u044b\u043d\u043e\u0441\u0438\u0442 \u0444\u0430\u0437\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e (AST). \u041f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 BinaryAST \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u0440\u0430\u0437\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043c\u0438\u043d\u0443\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 JavaScript. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25564,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-33901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\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\/pl\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\" \/>\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\udd47Cloudflare, Mozilla \u0438 Facebook \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 JavaScript | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\" \/>\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-10-31T18:55:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:55:19+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\udd47Cloudflare, Mozilla i Facebook rozwijaj\u0105 BinaryAST, aby przyspieszy\u0107 \u0142adowanie JavaScript | ProHoster","description":"In\u017cynierowie z firm Cloudflare, Mozilla, Facebook i Bloomberg zaproponowali nowy format","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","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\udd47Cloudflare, Mozilla \u0438 Facebook \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 JavaScript | ProHoster","og:description":"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","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-10-31T18:55:19+00:00","article:modified_time":"2019-10-31T18:55:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33901","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-21 17:09:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:31:22","updated":"2026-01-21 17:09:19","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\/33901","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=33901"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/33901\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/25564"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=33901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=33901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=33901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}