{"id":35486,"date":"2019-10-31T22:04:36","date_gmt":"2019-10-31T19:04:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\/"},"modified":"2019-10-31T22:04:36","modified_gmt":"2019-10-31T19:04:36","slug":"vypusk-http-tcp-balansirovshhika-haproxy-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","title":{"rendered":"Release of HTTP\/TCP load balancer HAProxy 2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.haproxy.com\/blog\/haproxy-2-0-and-beyond\/\">Gepubliceerd<\/a><\/noindex> uitgave van de load balancer <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\">HAProxy 2.0<\/a><\/noindex>, die HTTP-verkeer en willekeurige TCP-verzoeken kan verdelen over een groep servers, rekening houdend met verschillende factoren (bijvoorbeeld controleert de beschikbaarheid van servers, beoordeelt het niveau van belasting, biedt het middelen tegen DDoS-aanvallen) en voert een eerste filtering van gegevens uit (bijvoorbeeld het kan HTTP-headers analyseren, onjuiste parameteroverdracht filteren, SQL-injectie en XSS blokkeren, contentverwerkingsagenten aansluiten). HAProxy kan ook <noindex><a rel=\"nofollow\" href=\"https:\/\/www.haproxy.com\/solutions\/microservices\/\">worden gebruikt<\/a><\/noindex> voor het co\u00f6rdineren van de interactie tussen componenten in systemen op basis van microservices-architectuur. De projectcode is geschreven in C en <noindex><a rel=\"nofollow\" href=\"http:\/\/git.haproxy.org\/\">wordt geleverd<\/a><\/noindex> geleverd onder GPLv2. Het project wordt gebruikt op veel grote websites, waaronder Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter en Vimeo.<\/p>\n<p>Belangrijkste kenmerken van de uitgave:<\/p>\n<ul>\n<li class=\"l\"> Een nieuwe API <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/haproxytech\/dataplaneapi\">Data Plan<\/a><\/noindex>, die het mogelijk maakt om HAProxy-instellingen in realtime te beheren via de REST Web API. Onder andere is het mogelijk om backend-servers dynamisch toe te voegen en te verwijderen, ACL's te maken, de route van verzoeken te wijzigen, en handler-bindings aan IP's te wijzigen;\n<li class=\"l\"> De directive nbthread is toegevoegd, die het mogelijk maakt om het aantal threads dat in HAProxy wordt gebruikt te configureren voor optimalisatie op multi-core CPU's. Standaard wordt het aantal werkthreads gebaseerd op het beschikbare aantal CPU-kernen in de huidige omgeving gekozen, terwijl in cloudomgevingen standaard \u00e9\u00e9n thread is ingesteld. Voor het instellen van strikte limieten zijn de buildopties MAX_THREADS en MAX_PROCS toegevoegd, die de bovenste grens voor het aantal threads en processen beperken;\n<li class=\"l\"> Het gebruik van de bind-directive voor het koppelen van handlers aan netwerkadressen is vereenvoudigd. Bij de configuratie is het nu niet meer noodzakelijk om procesparameters te defini\u00ebren - standaard worden verbindingen verdeeld over threads op basis van het aantal actieve verbindingen.\n<li class=\"l\"> De configuratie van logs bij het draaien in ge\u00efsoleerde containers is vereenvoudigd - logs kunnen nu worden omgeleid naar stdout en stderr, evenals naar elke bestaande bestandsdescriptor (bijvoorbeeld 'log fd@1 local0');\n<li class=\"l\"> Standaard ondersteuning voor HTX (Native HTTP Representation) is ingeschakeld, wat balans mogelijk maakt bij het gebruik van geavanceerde functies zoals end-to-end HTTP\/2, Layer 7 Retries en gRPC. HTX vervangt de headers niet ter plekke, maar reduceert de wijziging tot het verwijderen en toevoegen van een nieuwe header aan het einde van de lijst, waardoor manipulatie van alle geavanceerde versies van het HTTP-protocol mogelijk is, met behoud van de oorspronkelijke semantiek van de headers en het behalen van hogere prestaties bij de conversie van HTTP\/2 naar HTTP\/1.1 en vice versa;\n<li class=\"l\"> Offici\u00eble ondersteuning voor de End-to-End HTTP\/2-modus is toegevoegd (verwerking van alle fasen in HTTP\/2, inclusief aanvragen aan de backend en niet alleen interactie tussen proxy en klant);\n<li class=\"l\"> Volledige ondersteuning voor bidirectionele proxying van het gRPC-protocol is ge\u00efmplementeerd, met de mogelijkheid om gRPC-stromen te parseren, afzonderlijke berichten te \u0432\u044b\u0434\u0435\u043b\u044f\u0442\u044c, gRPC-verkeer in de log vast te leggen en berichten te filteren met behulp van ACL. gRPC maakt het mogelijk om microservices te laten werken in verschillende programmeertalen, die met elkaar communiceren via een universele API. Netwerkinteractie in gRPC is ge\u00efmplementeerd bovenop het HTTP\/2-protocol en is gebaseerd op het gebruik van Protocol Buffers voor dataverzameling.\n<li class=\"l\"> Ondersteuning voor de 'Layer 7 Retries'-modus is toegevoegd, waarmee herhaalde HTTP-verzoeken kunnen worden verzonden in geval van softwarefouten die niet verband houden met netwerkverbindingproblemen (bijvoorbeeld bij gebrek aan een antwoord of een leeg antwoord op een POST-verzoek). Om de modus uit te schakelen, is de vlag 'disable-l7-retry' toegevoegd aan de optie 'http-request', en er is een optie 'retry-on' toegevoegd in de secties defaults, listen en backend voor fijne tuning. De volgende indicatoren zijn beschikbaar voor herhaling: all-retryable-errors, none, conn-failure, empty-response, junk-response, response-timeout, 0rtt-rejected, en ook binding aan teruggegeven statuscodes (404 enzovoort);\n<li class=\"l\"> Een nieuwe procesmanager (Process Manager) is ge\u00efmplementeerd, waarmee de aanroep van externe uitvoerbare bestanden met handlers voor HAProxy kan worden ingesteld.<br \/>\nBijvoorbeeld, als een externe handler is het API Data Plan (\/usr\/sbin\/dataplaneapi) ge\u00efmplementeerd, evenals verschillende engines voor Offload-verwerking van stromen;<\/p>\n<li class=\"l\"> Voor .NET Core, Go, Lua en Python zijn bindings toegevoegd voor de ontwikkeling van extensies voor SPOE (Stream Processing Offload Engine) en SPOP (Stream Processing Offload Protocol). Eerder werd de ontwikkeling van extensies alleen in C ondersteund;\n<li class=\"l\"> Een externe handler spoa-mirror (\/usr\/sbin\/spoa-mirror) is toegevoegd voor het spiegelen van verzoeken naar een aparte server (bijvoorbeeld voor het kopi\u00ebren van een deel van het werkverkeer voor het testen van een experimentele omgeving onder echte belasting);\n<li class=\"l\"> Ge\u00efntroduceerd  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/haproxytech\/kubernetes-ingress\/\">HAProxy Kubernetes Ingress Controller<\/a><\/noindex> om integratie met het Kubernetes-platform te waarborgen;\n<li class=\"l\"> Ingebouwde ondersteuning voor het exporteren van statistieken naar het monitoringsysteem is toegevoegd. <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex>;\n<li class=\"l\"> Het Peers Protocol, dat wordt gebruikt voor informatie-uitwisseling met andere knooppunten met HAProxy, is uitgebreid. Inclusief de ondersteuning voor Heartbeat en versleutelde gegevensoverdracht;\n<li class=\"l\"> De directive 'log' heeft de parameter 'sample' toegevoegd, waarmee slechts een deel van de verzoeken naar de log kan worden weggeschreven, bijvoorbeeld 1 van de 10, voor het cre\u00ebren van een analytische steekproef;\n<li class=\"l\"> Een automatische profilering modus is toegevoegd (directive profiling.tasks, die waarden kan aannemen als auto, on en off). Automatische profilering wordt ingeschakeld wanneer de gemiddelde vertraging de drempel van 1000 ms overschrijdt. Om profileringsgegevens in de Runtime API te bekijken, is er een commando 'show profiling' toegevoegd of het is mogelijk om de statistieken naar de log te resetten;\n<li class=\"l\"> Ondersteuning voor toegang tot backend-servers met behulp van het SOCKS4-protocol is toegevoegd;\n<li class=\"l\"> End-to-end ondersteuning voor het snelle openen van TCP-verbindingen (TFO - TCP Fast Open, RFC 7413) is toegevoegd, waardoor het aantal stappen voor het opzetten van een verbinding kan worden verminderd door de eerste en tweede stap van het klassieke 3-stappen proces voor het onderhandelen van verbindingen in \u00e9\u00e9n verzoek te combineren, en de mogelijkheid biedt om gegevens in een vroeg stadium van het opzetten van de verbinding te verzenden;\n<li class=\"l\"> Nieuwe acties zijn toegevoegd:\n<ul>\n<li class=\"l\"> 'http-request replace-uri' voor het vervangen van de URL met behulp van reguliere expressies;\n<li class=\"l\"> 'tcp-request content do-resolve' en 'http-request do-resolve' voor het resolven van hostnamen;\n<li class=\"l\">  'tcp-request content set-dst' en 'tcp-request content set-dst-port' voor het invullen van het doel-IP-adres en poort.\n<\/ul>\n<li class=\"l\"> Nieuwe conversiemodules zijn toegevoegd:\n<ul>\n<li class=\"l\"> aes_gcm_dev voor het ontsleutelen van stromen met gebruik van AES128-GCM, AES192-GCM en AES256-GCM-algoritmen;\n<li class=\"l\"> protobuf voor het extraheren van velden uit Protocol Buffers-berichten;\n<li class=\"l\"> ungrpc voor het extraheren van velden uit gRPC-berichten.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Bron: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50904\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy 2.0, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c HTTP-\u0442\u0440\u0430\u0444\u0438\u043a \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 TCP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u0435\u0436\u0434\u0443 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438\u043c\u0435\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f DDoS) \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0443\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 SQL \u0438 XSS, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430). HAProxy \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 [&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":[702],"tags":[],"class_list":["post-35486","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.\" \/>\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\/nl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\udd47\u0412\u044b\u043f\u0443\u0441\u043a HTTP\/TCP-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 HAProxy 2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\" \/>\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-31T19:04:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:04:36+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\udd47Uitgave van de HTTP\/TCP-load balancer HAProxy 2.0 | ProHoster","description":"De release van de HAProxy load balancer is gepubliceerd.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\udd47\u0412\u044b\u043f\u0443\u0441\u043a HTTP\/TCP-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 HAProxy 2.0 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.","og:url":"https:\/\/prohoster.info\/nl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","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-31T19:04:36+00:00","article:modified_time":"2019-10-31T19:04:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35486","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 23:28:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:01:26","updated":"2026-01-21 23:28:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/35486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=35486"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/35486\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=35486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=35486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=35486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}