{"id":19883,"date":"2024-05-30T10:22:10","date_gmt":"2024-05-30T08:22:10","guid":{"rendered":"https:\/\/www.transparentedge.eu\/en\/blog\/"},"modified":"2024-10-30T12:06:49","modified_gmt":"2024-10-30T11:06:49","slug":"troubleshooting-transfer-encoding-chunked-issues","status":"publish","type":"post","link":"https:\/\/www.transparentedge.eu\/en\/blog\/troubleshooting-transfer-encoding-chunked-issues\/","title":{"rendered":"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections"},"content":{"rendered":"\n<p><strong>Ensuring that the server correctly handles the end of a <em>chunked transfer<\/em> and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.<\/strong><\/p>\n\n\n\n<p>HTTP is one of the fundamental protocols for communication between browsers (clients) and web servers. One of its features is the ability to maintain open connections with the <code>keep-alive<\/code> option, which allows for improved efficiency by reusing the same TCP connection for multiple requests.<\/p>\n\n\n\n<p>However, this functionality can bring with it some challenges, especially when using chunked transfer encoding (<code>Transfer-Encoding: chunked<\/code>) since junk data can remain on the socket in <code>keep-alive connections<\/code>, interfering and causing errors.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding Transfer-Encoding: chunked<\/h3>\n\n\n\n<p>First, let&#8217;s briefly look at how <code>Transfer-Encoding: chunked<\/code> works. This mechanism allows the server to send data in a series of chunks, which is useful when the server does not know the total size of the data in advance. Each chunk is preceded by its size in hexadecimal, followed by the chunk data, and ends with an end-of-line marker. The end of the transfer is indicated by a chunk of size zero.<\/p>\n\n\n\n<p>Example of a response with <code>Transfer-Encoding: chunked<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"350\" src=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/Transfer-Encoding-Chunked-01.png\" alt=\"Transfer encoding chunked\" class=\"wp-image-19104\" style=\"width:480px\" srcset=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/Transfer-Encoding-Chunked-01.png 600w, https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/Transfer-Encoding-Chunked-01-300x175.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">The problem: junk data in the socket<\/h3>\n\n\n\n<p>In scenarios where <em>keep-alive<\/em> connections are used, if the server does not properly handle the end of the <em>chunked transfer<\/em>, it is possible that unwanted data (junk) remains on the socket, which can interfere with subsequent requests reusing the same connection.<\/p>\n\n\n\n<p>Suppose you have a server that sends responses encoded in <em>chunks<\/em>. If the server does not properly read and handle the <em>zero-size chunk<\/em> that marks the end of the transfer, the remaining data on the socket may be interpreted incorrectly by the client in the next request.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Problem diagnosis<\/h3>\n\n\n\n<p>To diagnose this problem, you can use tools that analyze data packets such as <a href=\"https:\/\/www.wireshark.org\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Wireshark<\/a> (open source) or enable detailed logging on your server and client.<\/p>\n\n\n\n<p>Look for patterns where the expected data ends up correctly but you see additional content that shouldn&#8217;t be there in subsequent responses.<\/p>\n\n\n\n<p>Example of a log showing the problem:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"700\" src=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/Transfer-Encoding-Chunked-02.png\" alt=\"Ejemplo de un c\u00f3digo con Transfer-Encoding: chunked en keep-alive\" class=\"wp-image-19106\" style=\"width:366px\" srcset=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/Transfer-Encoding-Chunked-02.png 600w, https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/Transfer-Encoding-Chunked-02-257x300.png 257w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Fix<\/h3>\n\n\n\n<p>&#8211; Make sure the server handles the end of the <em>chunked transfer<\/em> correctly:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The server should send the zero-size fragment (<span style=\"font-family: 'Courier New', Courier, monospace;\">0\\r\\n\\r\\n<\/span>) to indicate the end of the data.<\/li>\n\n\n\n<li>After sending the final fragment, make sure that the server does not send any additional unwanted data.<\/li>\n<\/ul>\n\n\n\n<p>&#8211; Check server settings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Some servers have specific settings to handle <span style=\"font-family: 'Courier New', Courier, monospace;\">keep-alive<\/span> &amp; <span style=\"font-family: 'Courier New', Courier, monospace;\">Transfer-Encoding: chunked<\/span>. Please review the documentation and make sure the settings are set correctly.<\/li>\n<\/ul>\n\n\n\n<p>&#8211; Clean the socket:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>After sending a fragmented encoded response, verify that the server properly clears the socket buffer before processing the next request.<\/li>\n<\/ul>\n\n\n\n<p>&#8211; Update your server:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you are using an older HTTP server or a custom implementation, consider upgrading to a newer version that correctly handles <span style=\"font-family: 'Courier New', Courier, monospace;\">Transfer-Encoding: chunked<\/span> on <span style=\"font-family: 'Courier New', Courier, monospace;\">keep-alive<\/span> conections.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Summary<\/h3>\n\n\n\n<p>Using chunked in combination with <span style=\"font-family: 'Courier New', Courier, monospace;\">keep-alive<\/span> connections is a very good technique to optimize HTTP communication. The key is that the server properly manages the end of the chunked transfer and performs a correct cleanup of the socket buffer to ensure continuous and error-free communication.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ensuring that the server correctly handles the end of a chunked transfer and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.<\/p>\n","protected":false},"author":18,"featured_media":19108,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-19883","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections - Transparent Edge<\/title>\n<meta name=\"description\" content=\"Ensuring that the server correctly handles the end of a chunked transfer and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections - Transparent Edge\" \/>\n<meta property=\"og:description\" content=\"Ensuring that the server correctly handles the end of a chunked transfer and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/\" \/>\n<meta property=\"og:site_name\" content=\"Transparent Edge\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-30T08:22:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-30T11:06:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1128\" \/>\n\t<meta property=\"og:image:height\" content=\"635\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sonia Ar\u00e9valo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tedgeservices\" \/>\n<meta name=\"twitter:site\" content=\"@tedgeservices\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/\"},\"author\":{\"name\":\"Sonia Ar\u00e9valo\",\"@id\":\"https:\/\/www.transparentedge.eu\/#\/schema\/person\/545d3a2741e1ca37c2a7cfdd104a3505\"},\"headline\":\"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections\",\"datePublished\":\"2024-05-30T08:22:10+00:00\",\"dateModified\":\"2024-10-30T11:06:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/\"},\"wordCount\":517,\"publisher\":{\"@id\":\"https:\/\/www.transparentedge.eu\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/\",\"url\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/\",\"name\":\"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections - Transparent Edge\",\"isPartOf\":{\"@id\":\"https:\/\/www.transparentedge.eu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png\",\"datePublished\":\"2024-05-30T08:22:10+00:00\",\"dateModified\":\"2024-10-30T11:06:49+00:00\",\"description\":\"Ensuring that the server correctly handles the end of a chunked transfer and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage\",\"url\":\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png\",\"contentUrl\":\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png\",\"width\":1128,\"height\":635,\"caption\":\"abstracto protocolo http\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.transparentedge.eu\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.transparentedge.eu\/#website\",\"url\":\"https:\/\/www.transparentedge.eu\/\",\"name\":\"Transparent Edge\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.transparentedge.eu\/#organization\"},\"alternateName\":\"Transparent Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.transparentedge.eu\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.transparentedge.eu\/#organization\",\"name\":\"Transparent Edge Services\",\"alternateName\":\"Transparent Edge\",\"url\":\"https:\/\/www.transparentedge.eu\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.transparentedge.eu\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2023\/07\/logotipo-cuadrado.jpg\",\"contentUrl\":\"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2023\/07\/logotipo-cuadrado.jpg\",\"width\":1328,\"height\":1180,\"caption\":\"Transparent Edge Services\"},\"image\":{\"@id\":\"https:\/\/www.transparentedge.eu\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/tedgeservices\",\"https:\/\/www.linkedin.com\/company\/transparent-edge\/\",\"https:\/\/www.youtube.com\/channel\/UC5zZoyZmiLGBTAdiFpj2xHA\/videos\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.transparentedge.eu\/#\/schema\/person\/545d3a2741e1ca37c2a7cfdd104a3505\",\"name\":\"Sonia Ar\u00e9valo\",\"description\":\"Nada como la sensaci\u00f3n de maravilla e infinitud que se despierta cuando aprendo algo nuevo, cuando descubro cu\u00e1l era la historia y c\u00f3mo funciona algo. Vivo en Madrid hace poco, desarrollo sitios web hace siempre.\",\"sameAs\":[\"https:\/\/www.transparentedge.eu\/\",\"https:\/\/www.instagram.com\/aldeaglobal.web\",\"https:\/\/www.linkedin.com\/in\/soniaarevalo\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections - Transparent Edge","description":"Ensuring that the server correctly handles the end of a chunked transfer and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/","og_locale":"en_US","og_type":"article","og_title":"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections - Transparent Edge","og_description":"Ensuring that the server correctly handles the end of a chunked transfer and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.","og_url":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/","og_site_name":"Transparent Edge","article_published_time":"2024-05-30T08:22:10+00:00","article_modified_time":"2024-10-30T11:06:49+00:00","og_image":[{"width":1128,"height":635,"url":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png","type":"image\/png"}],"author":"Sonia Ar\u00e9valo","twitter_card":"summary_large_image","twitter_creator":"@tedgeservices","twitter_site":"@tedgeservices","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#article","isPartOf":{"@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/"},"author":{"name":"Sonia Ar\u00e9valo","@id":"https:\/\/www.transparentedge.eu\/#\/schema\/person\/545d3a2741e1ca37c2a7cfdd104a3505"},"headline":"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections","datePublished":"2024-05-30T08:22:10+00:00","dateModified":"2024-10-30T11:06:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/"},"wordCount":517,"publisher":{"@id":"https:\/\/www.transparentedge.eu\/#organization"},"image":{"@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage"},"thumbnailUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/","url":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/","name":"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections - Transparent Edge","isPartOf":{"@id":"https:\/\/www.transparentedge.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage"},"image":{"@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage"},"thumbnailUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png","datePublished":"2024-05-30T08:22:10+00:00","dateModified":"2024-10-30T11:06:49+00:00","description":"Ensuring that the server correctly handles the end of a chunked transfer and properly cleans up the socket buffer is essential to maintaining smooth, error-free communication between clients and servers.","breadcrumb":{"@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#primaryimage","url":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png","contentUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2024\/05\/TE-http.png","width":1128,"height":635,"caption":"abstracto protocolo http"},{"@type":"BreadcrumbList","@id":"https:\/\/www.transparentedge.eu\/blog\/troubleshooting-transfer-encoding-chunked-issues\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.transparentedge.eu\/en\/"},{"@type":"ListItem","position":2,"name":"Troubleshooting Transfer-Encoding: Chunked issues on HTTP Keep-Alive Connections"}]},{"@type":"WebSite","@id":"https:\/\/www.transparentedge.eu\/#website","url":"https:\/\/www.transparentedge.eu\/","name":"Transparent Edge","description":"","publisher":{"@id":"https:\/\/www.transparentedge.eu\/#organization"},"alternateName":"Transparent Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.transparentedge.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.transparentedge.eu\/#organization","name":"Transparent Edge Services","alternateName":"Transparent Edge","url":"https:\/\/www.transparentedge.eu\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.transparentedge.eu\/#\/schema\/logo\/image\/","url":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2023\/07\/logotipo-cuadrado.jpg","contentUrl":"https:\/\/www.transparentedge.eu\/wp-content\/uploads\/2023\/07\/logotipo-cuadrado.jpg","width":1328,"height":1180,"caption":"Transparent Edge Services"},"image":{"@id":"https:\/\/www.transparentedge.eu\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/tedgeservices","https:\/\/www.linkedin.com\/company\/transparent-edge\/","https:\/\/www.youtube.com\/channel\/UC5zZoyZmiLGBTAdiFpj2xHA\/videos"]},{"@type":"Person","@id":"https:\/\/www.transparentedge.eu\/#\/schema\/person\/545d3a2741e1ca37c2a7cfdd104a3505","name":"Sonia Ar\u00e9valo","description":"Nada como la sensaci\u00f3n de maravilla e infinitud que se despierta cuando aprendo algo nuevo, cuando descubro cu\u00e1l era la historia y c\u00f3mo funciona algo. Vivo en Madrid hace poco, desarrollo sitios web hace siempre.","sameAs":["https:\/\/www.transparentedge.eu\/","https:\/\/www.instagram.com\/aldeaglobal.web","https:\/\/www.linkedin.com\/in\/soniaarevalo\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts\/19883","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/comments?post=19883"}],"version-history":[{"count":2,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts\/19883\/revisions"}],"predecessor-version":[{"id":19887,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/posts\/19883\/revisions\/19887"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/media\/19108"}],"wp:attachment":[{"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/media?parent=19883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/categories?post=19883"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.transparentedge.eu\/en\/wp-json\/wp\/v2\/tags?post=19883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}