{"id":69894,"date":"2022-08-18T09:55:58","date_gmt":"2022-08-18T07:55:58","guid":{"rendered":"https:\/\/rmarketingdigital.com\/wiki\/post-redirect-get\/"},"modified":"2024-10-28T22:47:31","modified_gmt":"2024-10-28T21:47:31","slug":"post-redirect-get","status":"publish","type":"glossary","link":"https:\/\/rmarketingdigital.com\/en\/wiki\/post-redirect-get\/","title":{"rendered":"Post-Redirect-Get"},"content":{"rendered":"<p><\/p>\n<div id=\"mw-content-text\" lang=\"es\" dir=\"ltr\" class=\"mw-content-ltr\">\n<p>El <b>patr\u00f3n art\u00edculo \/ redirect \/ get<\/b> o patr\u00f3n <b>PRG<\/b> es un enfoque de desarrollo que evita la duplicaci\u00f3n de contenido al enviar formularios y proporciona una interfaz de usuario m\u00e1s intuitiva. El patr\u00f3n post-redirect-get te permite determinar marcadores, compartir URLs y recargar un portal web que consulta y env\u00eda datos de formularios, sin crear contenido duplicado o casi duplicado.\n<\/p>\n<p>El <b>patr\u00f3n PRG<\/b> es utilizado frecuentemente por las grandes tiendas online para permitir la limitaci\u00f3n de productos y categor\u00edas de productos con navegaci\u00f3n por facetas y reducir el presupuesto del  crawl. Desde el punto de vista del dise\u00f1o web y el SEO, se recomienda el <b>patr\u00f3n PRG<\/b> para evitar la duplicaci\u00f3n de contenido, proporcionar URLs divididas y conservar los recursos del crawl. La implementaci\u00f3n de este enfoque de desarrollo requiere conocimiento del art\u00edculo y conseguir consultas en la versi\u00f3n 1.1 del protocolo HTTP, y puede requerir  etiquetas can\u00f3nicas y marcado de Noindex.\n<\/p>\n<h2>\n<span class=\"mw-headline\" id=\"Informaci.C3.B3n_general\">Informaci\u00f3n general<\/span><br \/>\n<\/h2>\n<p>El motivo para el uso del <b>patr\u00f3n PRG<\/b> es la pr\u00f3xima: Cuando se env\u00edan datos de formulario mediante de una solicitud de correo HTTP, esta solicitud puede enviarse al servidor varias veces si el usuario que env\u00eda la solicitud vuelve a cargar el formulario con el bot\u00f3n F5 o recargar. Como resultado, los formularios web o pedidos pueden terminar siendo enviados dos veces. Se puede usar el <b>patr\u00f3n PRG<\/b> para evitar este contenido duplicado. En vez de un portal web con contenido duplicado, se muestra el portal web que se entrega por medio de una solicitud posterior y una redirecci\u00f3n.\n<\/p>\n<h2>\n<span class=\"mw-headline\" id=\"C.C3.B3mo_funciona\">C\u00f3mo funciona<\/span><br \/>\n<\/h2>\n<p>Cuando un cliente llama y rellena un formulario web, normalmente se entrega al servidor mediante de una solicitud de correo. El servidor realiza un cambio en la base de datos e introduce la informaci\u00f3n desde el formulario web. Normalmente, el servidor enviar\u00e1 una p\u00e1gina de confirmaci\u00f3n al cliente. Si existen errores o entradas no v\u00e1lidas, se mostrar\u00e1 un formulario web, que indica estos errores al usuario. A continuaci\u00f3n, el usuario corrige los datos y hace clic en Enviar. Los datos correctos se env\u00edan al servidor. Si el usuario recarga el formulario web ahora, se crear\u00e1 otra transferencia de datos indeseable de dos entradas desde la base de datos.\n<\/p>\n<p>Aqu\u00ed es donde entra en juego el <b>patr\u00f3n PRG<\/b>. Posteriormente de la entrada en la base de datos, se env\u00eda una redirecci\u00f3n al cliente. El cliente inicia entonces una petici\u00f3n de conseguir al servidor, que a su vez env\u00eda una p\u00e1gina de confirmaci\u00f3n. Si el usuario recarga el portal web, s\u00f3lo se enviar\u00e1 al servidor otra solicitud de get. En vez de un cambio en la base de datos con la post-solicitud, al usuario se le mostrar\u00e1 la p\u00e1gina de confirmaci\u00f3n. Su solicitud ya ha sido cumplida y la recarga del formulario web no da lugar a la duplicaci\u00f3n de contenidos.\n<\/p>\n<p>El <b>patr\u00f3n PRG<\/b> se trata de dos peticiones HTTP y una redirecci\u00f3n que hace referencia a los resultados modificados. El patr\u00f3n permite el procesamiento sem\u00e1nticamente correcto de los mensajes y conseguir peticiones en el protocolo HTTP 1.1:\n<\/p>\n<ul>\n<li> POST: Se env\u00eda un formulario al servidor con una post-solicitud y se cambia una entrada en la base de datos.<\/li>\n<li> Redirect: Posteriormente de una solicitud de env\u00edo, se entrega al cliente la p\u00e1gina web correcta con los datos modificados por medio de la instrucci\u00f3n de redireccionamiento ( HTTP 303).<\/li>\n<li> GET: El cliente solicita una p\u00e1gina de confirmaci\u00f3n. Cuando se recarga, esto adem\u00e1s se hace sin un cambio en la base de datos y, seguramente, sin duplicar el contenido resultante.<\/li>\n<\/ul>\n<h2>\n<span class=\"mw-headline\" id=\"Relevancia_pr.C3.A1ctica\">Relevancia pr\u00e1ctica<\/span><br \/>\n<\/h2>\n<p>En la pr\u00e1ctica, la implementaci\u00f3n del <b>patr\u00f3n PRG<\/b> depende del lenguaje de programaci\u00f3n utilizado en el lado del servidor y del sistema de administraci\u00f3n de contenidos. Una soluci\u00f3n en PHP puede tener el siguiente aspecto: El formulario web se llama echo.php, debe ser causado y el servidor de procesamiento debe soportar el an\u00e1lisis de PHP o utilizar PHP como lenguaje del lado del servidor. En el ejemplo, la primera carga del archivo es lanzada por un usuario que navega al portal web www.ejemplo.com\/hecho.php. Se muestra el HTML del archivo. El usuario introduce los datos y pulsa Intro. La entrada se env\u00eda al servidor como un cambio de base de datos y se entrega al cliente mediante de una petici\u00f3n get. Inclusive con otra petici\u00f3n de obtenci\u00f3n, la entrada permanece actual, dado que el contenido modificado se retiene a trav\u00e9s la sesi\u00f3n. El resultado es un portal web HTML que contiene las entradas pero que llega mediante de una petici\u00f3n de obtenci\u00f3n y no crea contenido duplicado debido a otra petici\u00f3n de publicaci\u00f3n.\n<\/p>\n<pre>\n&lt;?php\n    session_start();\n\n    $echoedShout = \"\";\n\n    if(count($_POST) &gt; 0) {\n        $_SESSION['shout'] = $_POST['shout'];\n\n        header(\"HTTP\/1.1 303 See Other\");\n        header(\"Location: http:\/\/$_SERVER[HTTP_HOST]\/echo.php\");\n        die();\n    }\n    else if (isset($_SESSION['shout'])){\n        $echoedShout = $_SESSION['shout'];\n\n        \/*\n            The source code which changes the database goes here.\n        *\/\n\n        session_unset();\n        session_destroy();\n    }\n?&gt;\n\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;&lt;title&gt;PRG pattern example in PHP&lt;\/title&gt;\n\n&lt;body&gt;\n    &lt;?php echo \"&lt;p&gt;$echoedShout&lt;\/p&gt;\"\u00a0?&gt;\n    &lt;form action=\"echo.php\" method=\"POST\"&gt;\n        &lt;input type=\"text\" name=\"shout\" value=\"\" \/&gt;\n    &lt;\/form&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/pre>\n<p><sup id=\"cite_ref-1\" class=\"reference\">[1]<\/sup><\/p>\n<h2>\n<span class=\"mw-headline\" id=\"Relevancia_para_la_optimizaci.C3.B3n_de_motores_de_b.C3.BAsqueda\">Relevancia para la optimizaci\u00f3n de motores de b\u00fasqueda<\/span><br \/>\n<\/h2>\n<p>El <b>patr\u00f3n PRG<\/b> es recomendado por dise\u00f1adores web y  SEOs en ciertos casos. En detalle, la implementaci\u00f3n depende de muchos factores distintos relacionados con la tecnolog\u00eda del servidor. Los CMS, los lenguajes de programaci\u00f3n del lado del servidor y las distintos versiones de PHP o ASP.NET pueden provocar errores y complicar la implementaci\u00f3n. Concretamente en el caso de apps como la navegaci\u00f3n por filtros, se debe tener cuidado de qu\u00e9 recursos se muestran a los usuarios y a los motores de b\u00fasqueda. En casos individuales, las etiquetas can\u00f3nicas, las instrucciones de noindex, y los argumentos de SEO, tales como URLs habladas, pueden ser utilizados para la implementaci\u00f3n impecable del patr\u00f3n PRG. En el caso de la navegaci\u00f3n por filtros, el presupuesto de rastreo adem\u00e1s puede controlarse hasta cierto punto.\n<\/p>\n<h2>\n<\/h2>\n<h2>\n<span class=\"mw-headline\" id=\"Enlaces_Web\">Enlaces Web<\/span><br \/>\n<\/h2>\n<ul>\n<li> <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" class=\"external text\" href=\"http:\/\/findwords.info\/term\/post%2Fredirect%2Fget\">Qu\u00e9 es \u201cart\u00edculo\/redirect\/get\u201d<\/a>\n<\/li>\n<li> <a rel=\"nofollow noopener noreferrer\" target=\"_blank\" class=\"external text\" href=\"https:\/\/www.youtube.com\/watch?v=gu50pxTYc3U\">PRG Tutorial en v\u00eddeo con patrones<\/a>\n<\/li>\n<\/ul>\n<p><!-- \nNewPP limit report\nCached time: 20200503011542\nCache expiry: 86400\nDynamic content: false\nCPU time usage: 0.008 seconds\nReal time usage: 0.008 seconds\nPreprocessor visited node count: 56\/1000000\nPreprocessor generated node count: 122\/1000000\nPost\u2010expand include size: 0\/2097152 bytes\nTemplate argument size: 0\/2097152 bytes\nHighest expansion depth: 2\/40\nExpensive parser function count: 0\/100\n--><!-- \nTransclusion expansion time report (%,ms,calls,template)\n100.00%    0.000      1 - -total\n--><!-- Saved in parser cache with key es_:stable-pcache:idhash:266-0!*!0!!es!*!* and timestamp 20200503011542 and revision id 2077\n -->\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>El patr\u00f3n art\u00edculo \/ redirect \/ get o patr\u00f3n PRG es un enfoque de desarrollo que evita la duplicaci\u00f3n de contenido al enviar formularios y proporciona una interfaz de usuario&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"template":"","glossary-cat":[],"class_list":["post-69894","glossary","type-glossary","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Post-Redirect-Get - R Marketing Digital<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rmarketingdigital.com\/en\/wiki\/post-redirect-get\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Post-Redirect-Get\" \/>\n<meta property=\"og:description\" content=\"El patr\u00f3n art\u00edculo \/ redirect \/ get o patr\u00f3n PRG es un enfoque de desarrollo que evita la duplicaci\u00f3n de contenido al enviar formularios y proporciona una interfaz de usuario...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rmarketingdigital.com\/en\/wiki\/post-redirect-get\/\" \/>\n<meta property=\"og:site_name\" content=\"R Marketing Digital\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-28T21:47:31+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/wiki\\\/post-redirect-get\\\/\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/wiki\\\/post-redirect-get\\\/\",\"name\":\"Post-Redirect-Get - R Marketing Digital\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\"},\"datePublished\":\"2022-08-18T07:55:58+00:00\",\"dateModified\":\"2024-10-28T21:47:31+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rmarketingdigital.com\\\/wiki\\\/post-redirect-get\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/\",\"name\":\"R Marketing Digital\",\"description\":\"Agencia SEO | Publicidad redes sociales | Community Management\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rmarketingdigital.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Post-Redirect-Get - R Digital Marketing","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:\/\/rmarketingdigital.com\/en\/wiki\/post-redirect-get\/","og_locale":"en_US","og_type":"article","og_title":"Post-Redirect-Get","og_description":"El patr\u00f3n art\u00edculo \/ redirect \/ get o patr\u00f3n PRG es un enfoque de desarrollo que evita la duplicaci\u00f3n de contenido al enviar formularios y proporciona una interfaz de usuario...","og_url":"https:\/\/rmarketingdigital.com\/en\/wiki\/post-redirect-get\/","og_site_name":"R Marketing Digital","article_modified_time":"2024-10-28T21:47:31+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/rmarketingdigital.com\/wiki\/post-redirect-get\/","url":"https:\/\/rmarketingdigital.com\/wiki\/post-redirect-get\/","name":"Post-Redirect-Get - R Digital Marketing","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/#website"},"datePublished":"2022-08-18T07:55:58+00:00","dateModified":"2024-10-28T21:47:31+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rmarketingdigital.com\/wiki\/post-redirect-get\/"]}]},{"@type":"WebSite","@id":"https:\/\/rmarketingdigital.com\/#website","url":"https:\/\/rmarketingdigital.com\/","name":"R Digital Marketing","description":"SEO Agency | Advertising social networks | Community Management","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rmarketingdigital.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/glossary\/69894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/types\/glossary"}],"author":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":0,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/glossary\/69894\/revisions"}],"wp:attachment":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/media?parent=69894"}],"wp:term":[{"taxonomy":"glossary-cat","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/glossary-cat?post=69894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}