{"id":13504,"date":"2026-10-14T07:35:00","date_gmt":"2026-10-14T05:35:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=13504"},"modified":"2026-09-25T09:45:53","modified_gmt":"2026-09-25T07:45:53","slug":"301-302-307-and-308-which-redirect-changes-the-request-method","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/","title":{"rendered":"301, 302, 307 and 308: Which Redirect Changes the Request Method"},"content":{"rendered":"<p>A redirect is a short answer: not here, but there. It costs a round trip, it is invisible to the visitor, and almost every address on the web goes through at least one.<\/p>\n<p>Four codes do this job. They look like two matched pairs &#8211; permanent and temporary, twice over &#8211; and that reading is wrong in a way that quietly breaks forms.<\/p>\n<figure class=\"lw-diagram\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/weiterleitungen-en.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"One submitted form entering four redirect paths: two of them turn the POST into a GET, two preserve it\"><figcaption>Same request, four redirects &#8211; and two of them hand on something different from what arrived.<\/figcaption><\/figure>\n<h2>What a redirect actually is<\/h2>\n<p>The server answers with a status code in the 300s and a <code>Location<\/code> header naming another address. The client then makes a second request to that address. Nothing of the first response is displayed; it exists only to point somewhere else.<\/p>\n<p>Every hop is a full round trip: a name lookup if the host changes, a connection, a request, an answer. On a fast connection that is tens of milliseconds. On a phone with a weak signal it is noticeably more, and it happens before anything at all appears on screen.<\/p>\n<p>Which is why the number of hops matters as much as the codes. A chain of three is not three times slower than one, but it is three times as many chances for something to go wrong.<\/p>\n<h2>Permanent or temporary<\/h2>\n<p><code>301<\/code> says the address has moved for good. Search engines transfer the ranking to the new address and eventually drop the old one. Browsers remember it &#8211; sometimes very persistently, which is worth knowing before using it during a rebuild.<\/p>\n<p><code>302<\/code> says the detour is temporary. The old address keeps its ranking, and nothing is remembered for next time.<\/p>\n<p>Using <code>302<\/code> for a permanent move keeps a dead address alive in search results. Using <code>301<\/code> for a temporary detour is worse: browsers cache it, and the visitor who saw the temporary version may keep landing there long after it has been switched off, with no way to notice why.<\/p>\n<p>That distinction is well known. The second one is not.<\/p>\n<h2>The part that changes the method<\/h2>\n<p>A request has a method. Reading a page is a <code>GET<\/code>. Submitting a form is usually a <code>POST<\/code>, and the entered data travels with it.<\/p>\n<p>When a <code>POST<\/code> meets a <code>301<\/code> or a <code>302<\/code>, browsers turn it into a <code>GET<\/code>. The second request has a different method than the first, and the submitted data is gone &#8211; not rejected, not reported, simply not carried along.<\/p>\n<p>This was never the intention. The written rules said the method should be preserved; early browsers changed it anyway, enough of the web came to depend on that behaviour, and the rules eventually recorded what was actually happening.<\/p>\n<p><code>307<\/code> and <code>308<\/code> exist for exactly this reason. They are the same two meanings once more &#8211; temporary and permanent &#8211; with one addition: the method and the body stay as they were. <code>307<\/code> is the temporary one, <code>308<\/code> the permanent one.<\/p>\n<p>For an address that is only ever read, the difference is irrelevant, which is why it goes unnoticed for years. For an endpoint that receives form data, it decides whether the data arrives at all &#8211; and the failure looks like an empty form rather than an error.<\/p>\n<figure class=\"lw-illu\">\n<img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/illustrationen\/illu-weiterleitungen.webp\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"One thick band splitting into four parallel paths; two of them pass between blocks and turn coral, the other two carry on unchanged\"><br \/>\n<\/figure>\n<h2>What twelve real sites do<\/h2>\n<p>Twelve large sites were called on 1 September 2026 from an unencrypted address, following every hop to the end.<\/p>\n<p>Four arrive after a single hop. Seven need two. One needs three. Every first hop, in every case, was a <code>301<\/code> &#8211; the move from unencrypted to encrypted is the one thing everyone treats as permanent, and rightly so.<\/p>\n<p>The second hop is usually the switch between the bare domain and the one with <code>www<\/code>. The third, where it appears, is a language or region redirect: one site sent the request onward to a country-specific subdomain, another to a language path. Those are worth noticing, because they are the hops that get added later, by a different team, to a chain that was already finished.<\/p>\n<p>Two of the twelve answered the final request with a refusal rather than a page &#8211; bot defence reacting to an unusual client. That says nothing about their redirects and everything about how such measurements should be read.<\/p>\n<h2>Why every hop is worth removing<\/h2>\n<p>A chain that works is still worth shortening, for three reasons.<\/p>\n<p>The first is time, and it is the smallest. The second is that ranking signals weaken slightly along a chain, and search engines stop following after a handful of hops entirely.<\/p>\n<p>The third is the one that actually causes outages: things get lost on the way. A redirect to a different host drops the referrer under most policies. Cookies set for a bare domain do not travel to a subdomain. And the method change above applies at every single hop, so a chain that starts as a <code>307<\/code> and continues as a <code>301<\/code> still ends as a <code>GET<\/code>.<\/p>\n<p>Chains are almost never built on purpose. They accumulate: one rule for encryption, one for <code>www<\/code>, one for the trailing slash, one for the language. Each was correct when it was added.<\/p>\n<h2>What can be measured in one call<\/h2>\n<p>Four questions settle any address. How many hops lie between the entered address and the final page. Which code does each hop use. Does any hop point at a different host, and does anything need to survive that. And does a permanent code appear where the move is not permanent.<\/p>\n<p>The <a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/canonical-hreflang-indexing-inspector\/\">indexing inspector<\/a> follows the chain and lists every hop with its code, which also shows whether the final address is the one that was meant.<\/p>\n<p>The answer worth having is short: how many hops, and whether any of them changes something that should not change.<\/p>\n<div class=\"lw-faq\">\n<h2>Questions and answers<\/h2>\n<h3>How can a 301 that was set by mistake be undone?<\/h3>\n<p>For search engines this is easy, because they fetch the old address again and see the new state. For browsers it works only to a limited extent: a 301 may be cached even without an explicit instruction, and a browser that has cached it no longer asks the server at all. Three points help:<\/p>\n<ol>\n<li>Prevention: using 302 or 307 during a rebuild and switching to 301 or 308 only once the move is settled.<\/li>\n<li>Limitation: a 301 can carry its own Cache-Control header, for example <code>max-age=3600<\/code>. A browser then remembers the redirect only that long.<\/li>\n<li>No redirect back: the target must not redirect to the old address. Otherwise a browser that has cached the old redirect bounces between the two addresses until it gives up.<\/li>\n<\/ol>\n<p>Once a 301 has gone out without such a limit, it may stay in the affected browsers for a long time, in the worst case until their cache is cleared.<\/p>\n<h3>Which redirect fits an API endpoint that moves permanently?<\/h3>\n<p>308, because it preserves the method and the body. With a 301, not only browsers but also many HTTP libraries turn a POST into a GET. Even so, the redirect only works as a transition: not every client follows it for a POST at all, so the new address belongs in the clients themselves as soon as possible.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>Sources<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9110.html#name-redirection-3xx\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 9110: Redirection 3xx<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9110.html\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 9110: HTTP Semantics<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Four redirect codes look like two pairs and behave like two different things. Two of them quietly turn a submitted form into an ordinary page request, and the data never arrives.<\/p>\n","protected":false},"author":1,"featured_media":16124,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[158],"tags":[91094,91219,91315],"class_list":["post-13504","post","type-post","status-publish","format-standard","hentry","category-tutorials-en-web-development","tag-seo","tag-tutorial","tag-web-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>301, 302, 307 and 308: Which Redirect Changes the Request Method | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"What separates 301, 302, 307 and 308, why two of them turn a POST into a GET, and what twelve real sites do on the way from http to their front page.\" \/>\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.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"301, 302, 307 and 308: Which Redirect Changes the Request Method | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"What separates 301, 302, 307 and 308, why two of them turn a POST into a GET, and what twelve real sites do on the way from http to their front page.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-14T05:35:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13504-301-302-307-308-redirects-explained-nz.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"301, 302, 307 and 308: Which Redirect Changes the Request Method\",\"datePublished\":\"2026-10-14T05:35:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/\"},\"wordCount\":1166,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13504-301-302-307-308-redirects-explained-nz.png\",\"keywords\":[\"SEO\",\"Tutorial\",\"Web Performance\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/\",\"name\":\"301, 302, 307 and 308: Which Redirect Changes the Request Method | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13504-301-302-307-308-redirects-explained-nz.png\",\"datePublished\":\"2026-10-14T05:35:00+00:00\",\"description\":\"What separates 301, 302, 307 and 308, why two of them turn a POST into a GET, and what twelve real sites do on the way from http to their front page.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13504-301-302-307-308-redirects-explained-nz.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-13504-301-302-307-308-redirects-explained-nz.png\",\"width\":1200,\"height\":630,\"caption\":\"301, 302, 307 and 308: Which Redirect Changes the Request Method\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/web-development\\\/tutorials-en-web-development\\\/301-302-307-and-308-which-redirect-changes-the-request-method\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"301, 302, 307 and 308: Which Redirect Changes the Request Method\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"301, 302, 307 and 308: Which Redirect Changes the Request Method | Lukas Wojcik","description":"What separates 301, 302, 307 and 308, why two of them turn a POST into a GET, and what twelve real sites do on the way from http to their front page.","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.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/","og_locale":"en_US","og_type":"article","og_title":"301, 302, 307 and 308: Which Redirect Changes the Request Method | Lukas Wojcik","og_description":"What separates 301, 302, 307 and 308, why two of them turn a POST into a GET, and what twelve real sites do on the way from http to their front page.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-14T05:35:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13504-301-302-307-308-redirects-explained-nz.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"301, 302, 307 and 308: Which Redirect Changes the Request Method","datePublished":"2026-10-14T05:35:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/"},"wordCount":1166,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13504-301-302-307-308-redirects-explained-nz.png","keywords":["SEO","Tutorial","Web Performance"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/","name":"301, 302, 307 and 308: Which Redirect Changes the Request Method | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13504-301-302-307-308-redirects-explained-nz.png","datePublished":"2026-10-14T05:35:00+00:00","description":"What separates 301, 302, 307 and 308, why two of them turn a POST into a GET, and what twelve real sites do on the way from http to their front page.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13504-301-302-307-308-redirects-explained-nz.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-13504-301-302-307-308-redirects-explained-nz.png","width":1200,"height":630,"caption":"301, 302, 307 and 308: Which Redirect Changes the Request Method"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/web-development\/tutorials-en-web-development\/301-302-307-and-308-which-redirect-changes-the-request-method\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"301, 302, 307 and 308: Which Redirect Changes the Request Method"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13504","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=13504"}],"version-history":[{"count":3,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13504\/revisions"}],"predecessor-version":[{"id":22714,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/13504\/revisions\/22714"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/16124"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=13504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=13504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=13504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}