{"id":6074,"date":"2019-06-12T21:26:13","date_gmt":"2019-06-12T21:26:13","guid":{"rendered":"https:\/\/gtechbooster.com\/?p=6074"},"modified":"2026-01-03T15:27:36","modified_gmt":"2026-01-03T15:27:36","slug":"securing-the-internet","status":"publish","type":"post","link":"https:\/\/gtechbooster.com\/securing-the-internet\/","title":{"rendered":"Securing the internet"},"content":{"rendered":"\n<p>Privacy and security  has justified a cause to bring encryption to an internet which was built without a foundation for security with an aims to put an end to the unencrypted Internet. But the web has a chicken and egg problem moving to HTTPS.<\/p>\n\n\n\n<div class=\"gtech-migrated-from-ad-inserter-placement-2\" style=\"text-align: center;\" id=\"gtech-276233786\"><div style=\"margin-left: auto;margin-right: auto;text-align: center;\" id=\"gtech-1552126533\"><a data-bid=\"1\" data-no-instant=\"1\" href=\"https:\/\/gtechbooster.com\/linkout\/78735\" rel=\"noopener\" class=\"notrack\" aria-label=\"005\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/gtechbooster.com\/media\/2026\/03\/005.webp\" alt=\"\"  srcset=\"https:\/\/gtechbooster.com\/media\/2026\/03\/005.webp 1000w, https:\/\/gtechbooster.com\/media\/2026\/03\/005-768x768.webp 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" width=\"500\" height=\"500\"  style=\"display: inline-block;\" \/><\/a><\/div><\/div><p>Long ago it was difficult, expensive, and slow to set up an HTTPS capable web site. Then along came services like CloudFlare\u2019s Universal SSL  that made switching from http:\/\/ to https:\/\/ as easy as clicking a  button. With one click a site was served over HTTPS with a freshly  minted, free SSL certificate.<\/p>\n\n\n\n<p>Boom.<\/p>\n\n\n\n<p>Suddenly, the website is available over HTTPS, and, even better, the  website gets faster because it can take advantage of the latest web  protocol HTTP\/2.<\/p>\n\n\n\n<p>Unfortunately, the story doesn\u2019t end there. Many otherwise secure \nsites suffer from the problem of mixed content.  And mixed content means\n the green padlock icon will not be displayed for an https:\/\/ site \nbecause, in fact, it\u2019s not truly secure.<\/p>\n\n\n\n<p>Here\u2019s the problem: if an https:\/\/ website includes any content from a\n site (even its own) served over http:\/\/ the green padlock can\u2019t be \ndisplayed. That\u2019s because resources like images, JavaScript, audio, \nvideo etc. included over http:\/\/ open up a security hole into the secure\n web site. A backdoor to trouble.<\/p>\n\n\n\n<p>Web browsers have known this was a problem for a long, long time. Way  back in 1997, Internet Explorer 3.0.2 warned users of sites with mixed  content with the following dialog box.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"157\" src=\"https:\/\/gtechbooster.com\/media\/2019\/06\/xp-https-warning.gif\" alt=\"\" class=\"wp-image-6075\"\/><\/figure><\/div>\n\n\n\n<p> Today, Google Chrome shows a circled i on any https:\/\/ that has insecure content. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"302\" height=\"138\" src=\"https:\/\/gtechbooster.com\/media\/2019\/06\/chrome-https-warning.png\" alt=\"\" class=\"wp-image-6076\" srcset=\"https:\/\/gtechbooster.com\/media\/2019\/06\/chrome-https-warning.png 302w, https:\/\/gtechbooster.com\/media\/2019\/06\/chrome-https-warning-300x137.png 300w\" sizes=\"auto, (max-width: 302px) 100vw, 302px\" \/><\/figure><\/div>\n\n\n\n<p> And Firefox shows a padlock with a warning symbol. To get a green  padlock from either of these browsers requires every single subresource  (resource loaded by a page) has to be served over HTTPS. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"330\" height=\"129\" src=\"https:\/\/gtechbooster.com\/media\/2019\/06\/firefox-https-warning.png\" alt=\"\" class=\"wp-image-6077\" srcset=\"https:\/\/gtechbooster.com\/media\/2019\/06\/firefox-https-warning.png 330w, https:\/\/gtechbooster.com\/media\/2019\/06\/firefox-https-warning-300x117.png 300w\" sizes=\"auto, (max-width: 330px) 100vw, 330px\" \/><\/figure><\/div>\n\n\n\n<p>If you had clicked Yes back in 1997, Internet Explorer would have \nignored the dangers of mixed content and gone ahead and loaded \nsubresources using plaintext HTTP. Clicking No prevented them from being\n loaded (often resulting in a broken but secure web page).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"transitioningtofullysecurecontent\">Transitioning to fully secure content<\/h2>\n\n\n\n<p>It&#8217;s tempting, but naive, to think that the solution to mixed content  is easy: \u201cSimply load everything using https:\/\/ and just fix your  website\u201d. Unfortunately, the sm\u00f6rg\u00e5sbord of content loaded into modern  websites from first-party and third-party web sites makes it very hard  to \u2018simply\u2019 make that change.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>&#8220;[\u2026] one of the biggest challenges of moving to HTTPS is  preparing all of our content to be delivered over secure connections. If  a page is loaded over HTTPS, all other assets (like images and  Javascript files) must also be loaded over HTTPS. We are seeing a high  volume of reports of these \u201cmixed content\u201d issues, or events in which an  insecure, HTTP asset is loaded in the context of a secure, HTTPS page.  To do our rollout right, we need to ensure that we have fewer mixed  content issues\u2014that we are delivering as much of WIRED.com\u2019s content as  securely possible.\u201d<\/em><\/p><\/blockquote>\n\n\n\n<p>In 2014, the New York Times identified mixed content as a <a href=\"http:\/\/open.blogs.nytimes.com\/2014\/11\/13\/embracing-https\/\" target=\"_blank\" rel=\"noreferrer noopener\">major hurdle<\/a> to going secure:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>&#8220;To successfully move to HTTPS, all requests to page assets need  to be made over a secure channel. It\u2019s a daunting challenge, and there  are a lot of moving parts. We have to consider resources that are  currently being loaded from insecure domains \u2014 everything from  JavaScript to advertisement assets.\u201d<\/em><\/p><\/blockquote>\n\n\n\n<p>And the W3C <a rel=\"noreferrer noopener\" href=\"https:\/\/www.w3.org\/TR\/upgrade-insecure-requests\/\" target=\"_blank\">recognized<\/a> this as a huge problem saying: <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>\u201cMost  notably, mixed content checking has the potential to cause real  headache for administrators tasked with moving substantial amounts of  legacy content onto HTTPS. In particular, going through old content and  rewriting resource URLs manually is a huge undertaking.\u201d<\/em> <\/p><\/blockquote>\n\n\n\n<p>And cited the BBC\u2019s <a rel=\"noreferrer noopener\" href=\"http:\/\/www.bbc.co.uk\/blogs\/internet\/entries\/f7126d19-2afa-3231-9c4e-0f7198c468ab\" target=\"_blank\">huge archive<\/a> as a difficult example.<\/p>\n\n\n\n<p>But it\u2019s not just media sites that have a problem with mixed content.\n Many CMS users find it difficult or impossible to update all the links \nthat their CMS generates as they may be buried in configuration files, \nsource code or databases. In addition, sites that need to deal with \nuser-generated content also face a problem with http:\/\/ URIs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"thedangersofmixedcontent\">The Dangers of Mixed Content<\/h3>\n\n\n\n<p>Mixed content comes in two flavors: active and passive. Modern web  browsers approach the dangers from these different types of mixed  content as follows: active mixed content (the most dangerous) is  automatically and completely blocked, passive mixed content is allowed  through but results in a warning.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/gtechbooster.com\/media\/2019\/06\/mixed-content-1024x768.jpg\" alt=\"\" class=\"wp-image-6078\" srcset=\"https:\/\/gtechbooster.com\/media\/2019\/06\/mixed-content.jpg 1024w, https:\/\/gtechbooster.com\/media\/2019\/06\/mixed-content-300x225.jpg 300w, https:\/\/gtechbooster.com\/media\/2019\/06\/mixed-content-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><strong> <\/strong><a rel=\"noreferrer noopener\" href=\"https:\/\/creativecommons.org\/licenses\/by\/2.0\/\" target=\"_blank\"><strong>CC BY 2.0<\/strong><\/a><strong> <\/strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.flickr.com\/photos\/99mph\/6714200883\/in\/photolist-bej31c-szQAb-i2swr-fnz3A-avkaMz-SB8LC-4kKK2r-6UFtFq-5EhUFH-i2sBe-dHEMmA-A4cie-aC6Wtc-4ZRUkX-srjkGs-5raEpY-eosHU-Ee7Ye-6vWtxh-6Pd2Nq-5Yz5u2-nU1Pfn-nBPiU4-N6B99-7WL2J9-FEkU5X-dU1PPb-JbHZad-aBEqKL-6w5v1r-65Nths-6DbhPs-nsfgLN-67jbBc-nAxzxi-7krEou-4GxJDe-nUsvgg-9kk75E-8AAsi-jJpNkj-4a5Znf-NQtE-d5xmAL-qiBCh-8cM-qXdkTc-9aLMpU-dWVoe-4A1jyr\" target=\"_blank\"><strong>image<\/strong><\/a><strong> by <\/strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.flickr.com\/photos\/99mph\/\" target=\"_blank\"><strong>Ben Tilley<\/strong><\/a> <\/figcaption><\/figure><\/div>\n\n\n\n<p>Active content is anything that can modify the DOM (the web page itself). Resources included via the <code>&lt;script&gt;<\/code>, <code>&lt;link&gt;<\/code>, <code>&lt;iframe&gt;<\/code> or <code>&lt;object&gt;<\/code> tags, CSS values that use <code>url<\/code> and anything requested using <code>XMLHTTPRequest<\/code> is capable of modifying a page, reading cookies and accessing user credentials.<\/p>\n\n\n\n<p>Passive content is anything else: images, audio, video that are \nwritten into the page but that cannot themselves access the page.<\/p>\n\n\n\n<p>Active content is a real threat because if an attacker manages to \nintercept the request for an http:\/\/ URI they can replace the content \nwith their own. This is not a theoretical concern. In 2015 Github was \nattacked by a system dubbed the <a href=\"https:\/\/citizenlab.org\/2015\/04\/chinas-great-cannon\/\" target=\"_blank\" rel=\"noreferrer noopener\">Great Cannon<\/a>\n that intercepted requests for common JavaScript files over HTTP and \nreplaced them with a JavaScript attack script. The Great Cannon \nweaponized innocent users\u2019 machines by intercepting TCP and exploiting \nthe inherent vulnerability in active content loaded from http:\/\/ URIs.<\/p>\n\n\n\n<p>Passive content is a different kind of threat: because requests for \npassive content are sent in the clear an eavesdropper can monitor the \nrequests and extract information. For example, a well positioned \neavesdropper could monitor cookies, web pages visited and potentially \nauthentication information.<\/p>\n\n\n\n<p>The <a href=\"http:\/\/codebutler.com\/firesheep\/\" target=\"_blank\" rel=\"noreferrer noopener\">Firesheep<\/a>\n Firefox add-on can be used to monitor a local network (for example, in a\n coffee shop) for requests sent over HTTP and automatically steal \ncookies allowing a user to hijack someone\u2019s identity with a single \nclick.<\/p><div class=\"gtech-mid-cont\" style=\"text-align: center;\" id=\"gtech-2245281353\"><div style=\"margin-right: auto;margin-left: auto;text-align: center;\" id=\"gtech-1236416741\"><a data-bid=\"1\" data-no-instant=\"1\" href=\"https:\/\/gtechbooster.com\/linkout\/17207\" rel=\"noopener\" class=\"notrack\" aria-label=\"26001\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/gtechbooster.com\/media\/2023\/01\/26001.jpeg\" alt=\"\"  srcset=\"https:\/\/gtechbooster.com\/media\/2023\/01\/26001.jpeg 1024w, https:\/\/gtechbooster.com\/media\/2023\/01\/26001-768x960.jpeg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" width=\"500\" height=\"625\"  style=\"display: inline-block;\" \/><\/a><\/div><\/div>\n\n\n\n<p>Today, modern browsers block active content that&#8217;s loaded insecurely,\n but allow passive content through. Nevertheless, transitioning to all \nhttps:\/\/ is the only way to address all the security concerns of mixed \ncontent.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"fixingmixedcontentautomatically\">Fixing Mixed Content Automatically<\/h3>\n\n\n\n<p>We\u2019ve wanted to help fix the mixed content properly for a long time  as our goal is that the web become completely encrypted. And, like other  CloudFlare services, we wanted to make this a \u2018one click\u2019 experience.<\/p>\n\n\n\n<p>We considered a number of approaches:<\/p>\n\n\n\n<p><em>Automatically insert the upgrade-insecure-requests CSP directive<\/em><\/p>\n\n\n\n<p>The <a href=\"https:\/\/www.w3.org\/TR\/upgrade-insecure-requests\/\" target=\"_blank\" rel=\"noreferrer noopener\">upgrade-insecure-requests<\/a> directive can be added in a <a href=\"https:\/\/www.w3.org\/TR\/CSP\/\" target=\"_blank\" rel=\"noreferrer noopener\">Content Security Policy<\/a> header like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Content-Security-Policy: upgrade-insecure-requests\n<\/code><\/pre>\n\n\n\n<p>which instructs the browser to automatically upgrade any HTTP request\n to HTTPS. This can be useful if the website owner knows that every \nsubresource is available over HTTPS. The website will not have to \nactually change http:\/\/ URIs embedded in the website to https:\/\/, the \nbrowser will take care of that automatically.<\/p>\n\n\n\n<p>Unfortunately, there is a large downside to \nupgrade-insecure-requests. Since the browser blindly upgrades every URI \nto https:\/\/ regardless of whether the resulting URI will actually work \npages can be <a href=\"https:\/\/www.w3.org\/TR\/upgrade-insecure-requests\/#example-failed\" target=\"_blank\" rel=\"noreferrer noopener\">broken<\/a>.<\/p>\n\n\n\n<p><em>Modify all links to use https:\/\/<\/em><\/p>\n\n\n\n<p>Since not all browsers used by visitors to CloudFlare web sites \nsupport upgrade-insecure-requests we considered upgrading all http:\/\/ \nURIs to https:\/\/ as pages pass through our service. Since we are able to\n parse and modify web pages in real-time we could have created an \n\u2018upgrade-insecure-requests\u2019 service that did not rely on browser \nsupport.<\/p>\n\n\n\n<p>Unfortunately, that still suffers from the same problem of broken \nlinks when an http:\/\/ URI is transformed to https:\/\/ but the resource \ncan\u2019t actually be loaded using HTTPS<\/p>\n\n\n\n<p><em>Modify links that point to other CloudFlare sites<\/em><\/p>\n\n\n\n<p>Since CloudFlare gives all our 4 million customers free <span class=\"removed_link\" title=\"https:\/\/blog.cloudflare.com\/introducing-universal-ssl\/\">Universal SSL<\/span>\n and we cover a large percentage of web traffic we considered just \nupgrading http:\/\/ to https:\/\/ for URIs that we know (because they use \nour service) will work.<\/p>\n\n\n\n<p>This solves part of the problem but isn\u2019t a good solution for the general problem of upgrading from HTTP to HTTPS<\/p>\n\n\n\n<p><em>Create a system that rewrites known HTTPS capable URIs<\/em><\/p>\n\n\n\n<p>Finally, we settled upon doing something smart: upgrade a URI from \nhttp:\/\/ to https:\/\/ if we know that the resource can be served using \nHTTPS. To figure out which links are upgradable we turned to the EFF\u2019s \nexcellent <a href=\"https:\/\/www.eff.org\/https-Everywhere\" target=\"_blank\" rel=\"noreferrer noopener\">HTTPS Everywhere<\/a> extension and Google Chrome <a href=\"https:\/\/github.com\/chromium\/hstspreload.appspot.com\" target=\"_blank\" rel=\"noreferrer noopener\">HSTS preload<\/a> list to augment our knowledge of CloudFlare sites that have SSL enabled.<\/p>\n\n\n\n<p>We are very grateful that the EFF graciously accepted to help us with this project.<\/p>\n\n\n\n<p>The HTTPS Everywhere ruleset goes far beyond just switching http:\/\/ \nto https:\/\/: it contains rules (and exclusions) that allow it (and us) \nto target very specific URIs. For example, here\u2019s an actual HTTP \nEverywhere rule for gstatic.com:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;rule from=\"^http:\/\/(csi|encrypted-tbn\\d|fonts|g0|[\\w-]+\\.metric|ssl|t\\d)\\.\ngstatic\\.com\/\" to=\"https:\/\/$1.gstatic.com\/\"\/>\n<\/code><\/pre>\n\n\n\n<p>It uses a regular expression to identify specific subdomains of \ngstatic.com that can safely be upgraded to use HTTPS. The complete set \nof rules can be browsed <a href=\"https:\/\/www.eff.org\/https-everywhere\/atlas\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<p>Because we need to upgrade a huge number of URIs embedded in web \npages (we estimate around 5 million per second) we benchmarked existing \nHTML parsers (including our own) and decided to write a new one for this\n type of rewriting task. We\u2019ll write more about its design, testing and \nperformance in a future post.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"automatichttpsrewrites\">Automatic HTTPS Rewrites<\/h3>\n\n\n\n<p>Automatic HTTPS Rewrites are now available in the customer dashboard  for all CloudFlare customers. Today, this feature is disabled by default  and can be enabled in \u2018one click\u2019:<\/p>\n\n\n\n<p>We will be monitoring the performance and effectiveness of this \nfeature and enable it by default for Free and Pro customers later in the\n year. We also plan to use the Content Security Policy reporting \nfeatures to give customers an automatic view of which URIs remain to be \nupgraded so that their transition to all https:\/\/ is made as simple as \npossible: sometimes just finding which URIs need to be changed can be \nvery hard as Wired <a href=\"https:\/\/www.wired.com\/2016\/05\/wired-first-big-https-rollout-snag\/\" target=\"_blank\" rel=\"noreferrer noopener\">found out<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">More Information<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.w3.org\/TR\/upgrade-insecure-requests\/\">https:\/\/www.w3.org\/TR\/upgrade-insecure-requests<\/a><\/li><li><a href=\"https:\/\/cloudflare.com\">cloudflare.com<\/a><\/li><li><a href=\"https:\/\/developers.google.com\/web\/fundamentals\/performance\/http2\">https:\/\/developers.google.com\/web\/fundamentals\/performance\/http2<\/a>\/<\/li><li><a href=\"http:\/\/www.bbc.co.uk\/blogs\/internet\/entries\/f7126d19-2afa-3231-9c4e-0f7198c468ab\">http:\/\/www.bbc.co.uk\/blogs\/internet\/entries\/f7126d19-2afa-3231-9c4e-0f7198c468ab<\/a><\/li><li><a href=\"https:\/\/citizenlab.org\/2015\/04\/chinas-great-cannon\/\">https:\/\/citizenlab.org\/2015\/04\/chinas-great-cannon\/<\/a><\/li><li><a href=\"http:\/\/codebutler.com\/firesheep\/\">http:\/\/codebutler.com\/firesheep\/<\/a><\/li><\/ul>\n<div class=\"gtech-end-cont\" id=\"gtech-3724332949\"><div style=\"margin-left: auto;margin-right: auto;text-align: center;\" id=\"gtech-3466177271\"><a data-bid=\"1\" data-no-instant=\"1\" href=\"https:\/\/gtechbooster.com\/linkout\/78735\" rel=\"noopener\" class=\"notrack\" aria-label=\"005\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/gtechbooster.com\/media\/2026\/03\/005.webp\" alt=\"\"  srcset=\"https:\/\/gtechbooster.com\/media\/2026\/03\/005.webp 1000w, https:\/\/gtechbooster.com\/media\/2026\/03\/005-768x768.webp 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" width=\"500\" height=\"500\"  style=\"display: inline-block;\" \/><\/a><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Privacy and security has justified a cause to bring encryption to an internet which was built without a foundation for security with an aims to put an end to the unencrypted Internet. But the web has a chicken and egg problem moving to HTTPS. Long ago it was difficult, expensive, and slow to set up [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":6079,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[2657,2601,1444,425,426,663,937,146,2661],"class_list":["post-6074","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-internet","tag-browser","tag-communications","tag-cyber-security","tag-hypertext-transfer-protocol","tag-hypertext-transfer-protocol-secure","tag-privacy","tag-transport-layer-security","tag-web-browser","tag-web-standards"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/posts\/6074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/comments?post=6074"}],"version-history":[{"count":1,"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/posts\/6074\/revisions"}],"predecessor-version":[{"id":78272,"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/posts\/6074\/revisions\/78272"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/media\/6079"}],"wp:attachment":[{"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/media?parent=6074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/categories?post=6074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechbooster.com\/api-json\/wp\/v2\/tags?post=6074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}