303 See Other (Yönlendirmesi)

303 See Other yönlendirmesinin ne olduğunu, güç verdiği Post/Redirect/Get desenini, neden isteği GET veya HEAD'e çevirdiğini, 307'den ve 302'den farkını ve Google ile Bing'in neden neredeyse hiç 303'e özel SEO rehberi yayımlamadığını açıklar.

İlk yayın tarihi: 2 Tem 2026 · Son güncelleme: 22 Ağu 2026 · Advanced
Diller

303 See Other, istemciye özgün yöntem ne olursa olsun farklı bir URL'yi GET veya HEAD ile almasını söyleyen geçici bir HTTP yönlendirmesidir. Formu POST ile gönderdikten sonra sonuç sayfasına 303 dönerek yenilemenin özgün POST'u yeniden göndermesini önleyen Post/Redirect/Get (PRG) deseninin temelidir. Yöntemi koruyan 307'nin aksine yöntemi değiştirir; yöntemi belirsiz olan 302'den farkı budur. SEO açısından URL taşıma aracı değildir; Google 303'ü 302 ve 307 ile genel 3xx geçici/zayıf grupta anarken ne Google ne de Bing 303'e özel ayrıntılı bir rehber yayımlar.

Kısa özet — 303 (HTTP “303 See Other”), özgün isteğin kullandığı yöntem ne olursa olsun istemciyi başka bir kaynağı GET veya HEAD ile almaya yönelten geçici yönlendirmedir. Post/Redirect/Get (PRG) düzenini bu davranış çalıştırır: POST303GET sonuç sayfası; böylece yenileme formu yeniden göndermek yerine sayfayı tekrar getirir. 307’den (yöntemi her zaman korur) ve yöntem davranışı tarihsel olarak belirsiz olan 302’den ayrılır. Sayfadan sayfaya SEO yönlendirmesi olarak gerçekten nadirdir; URL taşıma aracı değil, web uygulaması mekanizmasıdır. Google 303’ü yalnızca 302 ve 307 ile aynı genel “geçici” 3xx grubunun üyesi ve zayıf kanonikleştirme sinyali olarak belgeler; 303’e özel rehber yayımlamaz. Bing için de özel rehber bulamadım. Var olmayan otoriteyi uydurmayın; söylenecek az şey olduğunu açıkça belirtin.

303 gerçekte nedir

303, yanıt gövdesinden önce yanıt başlıklarında dönen bir HTTP durum kodudur. Location başlığı, istemcinin sırada alması gereken URL’yi gösterir. Anlamı dar ve özeldir: isteğinizin yanıtı başka bir yerdedir ve onu GET veya HEAD ile almalısınız. Evidence for this claim RFC 9110 defines 303 See Other as directing the client to retrieve another resource identified by Location using GET or HEAD. Scope: HTTP semantics for 303 responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.4 — 303 See Other

GET veya HEAD ile alma davranışı 303’ün ayrı bir kod olarak var olmasının bütün nedenidir ve geçici sayılan üç yönlendirmenin ayrıldığı eksendir.

303, 302 ve 307: yöntem sorusu

SEO açısından üçü de “geçicidir”; Google bunları zayıf sinyaller olarak aynı grupta toplar. Teknik açıdan ise aynı soruya farklı yanıt verirler: istemci yönlendirmeyi izlerken hangi HTTP yöntemini kullanır?

KodAnlamYönlendirme sonrası istekte yöntem
302 FoundGeçiciTarihsel olarak belirsiz — birçok istemci POST’u GET’e çevirdi; spesifikasyon bunu garanti etmediği için davranış değişti
303 See OtherBaşka bir yere bak (geçici)GET veya HEAD — özgün yöntem bilerek değiştirilir
307 Temporary RedirectGeçiciHer zaman korunur — POST, POST olarak; PUT, PUT olarak kalır

303 ve 307, kısmen 302 çevresindeki karmaşayı netleştirmek için getirildi. Form gönderiminden sonra yöntemi GET’e zorlamak istiyorsanız 303 kullanın. Özgün yöntemin yeni uç noktaya taşınması gerekiyorsa (örneğin bir POST isteğini yeniden göndermek) 307 kullanın. 302, ikisini de kesinleştirmeyen tarihsel ara seçenektir.

Bir pratik fark daha vardır: 303 yanıtları varsayılan olarak önbelleğe alınamaz, oysa 301 alınabilir. Tarayıcının veya CDN’in yönlendirme hedefini yanlış biçimde önbelleğe almasından endişe ediyorsanız 303’te bu sorun yoktur.

Post/Redirect/Get düzeninin kesin akışı

PRG, 303’ün temel kullanım alanıdır ve hata durumu değil, kasıtlı ve doğru bir tasarım düzenidir:

  1. İstemci formu POST olarak gönderir (sipariş oluşturma, yorum yayımlama veya ödeme yapma).
  2. Sunucu yan etkiyi işler, sonra GET ile alınabilen sonuç URL’sini (makbuz, onay veya güncellenmiş kaynak görünümü) gösteren Location başlığıyla 303 See Other döndürür.
  3. İstemci bu URL’ye GET (veya HEAD) isteği gönderir. Tarayıcı geçmişi ve yenileme düğmesi artık güvenli, idempotent bir alma işlemine işaret eder; yenilemek veya geri gitmek POST’u tekrarlamak yerine sonuç sayfasını yeniden getirir.

Kazanç, sıradan tarayıcı yenilemesinin formu yeniden göndermeyi bırakmasıdır; “formu yeniden göndermeyi onayla” iletişim kutusu artık çıkmaz. Bunun neyi sağladığını doğru sınırlayın: PRG yalnızca bu belirli tekrar yolunu önler, tüm yinelenen yazmaları değil. İşlemin kesinlikle bir kez yapılacağını garanti etmez. Yeniden denemeler, zaman aşımları, çift tıklamalar ve eşzamanlı istekler özgün POST’u yine iki kez çalıştırabilir. Durum değiştiren sipariş, ödeme ve yorum işlemleri; yinelenme gerçek riskse uygulama düzeyinde idempotency anahtarları, işlem sınırları ve yinelenen istek algılama kontrollerine ihtiyaç duyar. RESTful API’lerde, etkilenen kaynağın temsilini göstermek üzere PUT veya DELETE sonrasında da 303 görebilirsiniz.

Google 303’ü nasıl işler ve neden işlenecek pek az şey vardır

Bu konunun temel ve açık bulgusu şudur: Google’ın 303’e özel SEO rehberi yoktur. Kod, Google’ın yönlendirme belgelerinde yalnızca “geçici” yönlendirme tablosunda 302 ve 307’nin yanındaki bir satır olarak görünür. Google bu grubun tamamını net biçimde tanımlar: tarayıcı yönlendirmeyi izler, ancak dizine ekleme hattı yönlendirmenin kendisini hedefin kanonik olması gerektiğine dair sinyal olarak kullanmaz; başka sinyaller yine de Google’ın hedefi dizine eklemesine yol açabilir. Bu, kalıcı 301’in güçlü kanonikleştirmesinden farklı ve daha dar bir davranıştır. Evidence for this claim Google groups HTTP 303 with temporary redirects, follows it, and does not use it as a signal that the destination should become canonical. Scope: Google Search canonicalization behavior for server-side temporary redirects. Confidence: high · Verified: Google: Redirects and Google Search

John Mueller’in yönlendirme türleri hakkındaki gayriresmî yazısı daha da açıklayıcıdır. 301, 302 ve 307’yi ayrıntılı anlattıktan sonra 303’ü tek bir ara sözle geçer: “What about 303? 304.5? If you have strong feelings about one of the other kinds of redirects, feel free to use them.” (çeviri) “303 ne olacak? 304,5? Diğer yönlendirme türlerinden biri hakkında güçlü tercihleriniz varsa kullanmakta özgürsünüz.” Ardından yararlı pratik sonucu ekler: “We’ll have to figure out which URL to index the content under, so if you have strong feelings about that too, make sure to follow up with other canonicalization signals.” (çeviri) “İçeriği hangi URL altında dizine ekleyeceğimizi çözmemiz gerekecek; bu konuda da güçlü tercihleriniz varsa başka kanonikleştirme sinyalleriyle destekleyin.” Başka deyişle 303 kullanıyor ve hangi URL’nin dizine girdiğini önemsiyorsanız yönlendirme türüne güvenmeyin; rel="canonical", iç bağlantılar ve site haritalarıyla destekleyin.

Google belgeleri bu kodların tamamı için önemli bir not daha ekler: aynı biçimde işlese de “keep in mind that they’re semantically different. Use the status code that’s appropriate for the redirect.” (çeviri) “Anlamsal olarak farklı olduklarını unutmayın. Yönlendirmeye uygun durum kodunu kullanın.” “SEO önemsemiyor” gerçeği, kalıcı taşımalara 303 koyma izni değildir; diğer istemcilerin doğru davranması için niyetinize uyan kodu kullanın.

Bing 303’ü nasıl işler

Açıkça söylemek gerekirse Bing Webmaster Tools yardımındaki genel HTTP durum kodu atıfları dışında 303 işlemeye özgü herkese açık bir Bing rehberi bulamadım. Fabrice Canel’in veya Microsoft’tan başka birinin 303’ü ayrı ele alan doğrulanmış açıklaması yoktur. Bu, “belgemiz yok” diye dürüstçe kaydedilmesi gereken veri noktasıdır; Google’ın açıkladığı davranışı Bing’e varsayarak boşluğu kapatmayacağım. Belge yokluğu işlemenin aynı olduğuna kanıt değildir. Özellikle Bing için kesin yanıt gerekiyorsa konu çözümlenmiş değil, açık sorudur.

303 SEO için önemli mi? Nadiren.

Açık sonucum, kamuya açık yazdıklarımla aynıdır: 303 bir sayfa taşıma aracı değildir. 11 Yönlendirme Türü ve SEO Etkileri yazısında 303’ün kullanıcıyı istenene benzer bir kaynağa götüren geçici yönlendirme olduğunu, genellikle tarayıcının geri düğmesine basıldığında formun yeniden gönderilmesini önlemek için kullanıldığını ve SEO amacıyla karşılaşıldığında 302/307 gibi ele alındığını açıkladım.

Kendi eski içeriklerimdeki bir gerilimi de açıkça belirteyim. HTTP Durum Kodları ve SEO Etkileri yazısında 303 işlemesini “undefined… They may be treated as 301 or 302, depending on how they function.” (çeviri) “tanımsız; işlevlerine göre 301 veya 302 gibi ele alınabilirler” diye anlatmıştım. Bugün bunu daha kesin kurardım: Google belgeleri 303’ün 302 ve 307 ile birlikte geçici/zayıf grupta olduğundan emindir. Uygulamada “tanımsız” hissinin nedeni, 303’lerin sahada çok nadir olması ve Google’ın uç durumları açıklamak zorunda kalmamasıdır; gizli, daha güçlü bir davranış değil. Belgelenmiş varsayılanı (302/307 ile gruplanan zayıf/geçici davranış) öne alın; sürprizi gizli kurala değil nadirliğe bağlayın.

Ne zaman biraz önem taşıyabilir? Genellikle yalnızca form, ödeme veya API ağırlıklı uygulamalarda durum kodu taramasında 303 göründüğünde. O zaman bile yanıt çoğunlukla “amaçlandığı gibi çalışıyor, bırakın” olur. URL’yi bilerek taşıyorsanız 303 kullanmayın; kalıcı taşıma için 301, geçici taşıma için 302, özellikle yöntem korunacaksa 308 veya 307 kullanın.

Yazma işleminden sonra doğru durum kodu: 303, 201, 202 veya 204

303, durum değiştiren bir istekten sonraki tek seçenek değildir ve alışkanlıkla ona yönelmek kolaydır. Tarayıcı form akışından farklı olarak bir API’de üç 2xx kodu çoğu zaman daha uygundur:

  • 201 Created — istek bir veya daha fazla kaynağı eşzamanlı oluşturmuştur; yanıt, varsa Location içinde, yoksa hedef URI ile birincil kaynağı tanımlamalıdır. Oluşturma tamamlandığında ve istemcinin ayrı GET turu yerine yeni kaynağı doğrudan almasını istediğinizde kullanın.
  • 202 Accepted — istek kabul edilmiştir ancak işleme henüz bitmemiştir (kuyruk işi, eşzamansız görev). Yanıt bilinçli olarak kesin değildir: güncel durumu açıklayın ve tercihen istemcinin sorgulayabileceği durum izleyicisine yönlendirin.
  • 204 No Content — işlem başarılıdır ve gönderilecek başka şey yoktur; gövde ve yönlendirme gerekmez. Yanıt başlık bölümünde biter.

303 bu üçünden farklı bir yapıya uyar: yazma işleminden sonra istemcinin ayrı tanımlanmış bir sonuç kaynağını alması gerektiğinde, çoğunlukla tarayıcıdaki PRG düzeninde kullanılır. Eşzamanlı oluşturmanın (201), eşzamansız kabulün (202) veya gövdesiz sıradan başarının (204) yerine geçmez; her biri yönlendirmenin anlatmadığı farklı sonucu bildirir.

Yaygın efsaneler

  • “303 sayfanın taşındığı veya bozuk olduğu anlamına gelir.” Hayır. Genellikle POST/PUT/DELETE sonrasında verilen, yöntemi değiştiren kasıtlı yanıttır; “içerik taşındı” ya da hata sinyali değildir. Onu “sayfa taşındığı için tarayıcı URL’yi bulamıyor” diye tanımlayan siteler 301/302 veya 404 ile karıştırır.
  • “303, 301 gibi SEO değeri aktarır.” Aktarmaz. Google belgelerine göre 302 ve 307 ile aynı geçici/zayıf gruptadır.
  • “SEO uzmanları genel yönlendirme için 303 kullanmalı.” Bu amaçla tasarlanmamıştır. Dar bir form/API düzenidir; sıradan URL taşımalarında kullanılması olağan değildir.
  • “Google’ın 303’e özel ayrıntılı kuralları vardır.” Yoktur. Gruplanmış tek atıf ve Mueller’in “feel free to use them” (çeviri) “kullanmakta özgürsünüz” omuz silkişinden ibarettir.
  • “303 ve 302 teknik olarak aynıdır.” SEO işlemleri aynı grupta olabilir, ancak teknik olarak aynı değildir. 303 takip isteğini GET veya HEAD’e çevirir; 302’nin yöntem davranışı tarihsel olarak tutarsızdır. 303 ve 307 tam da bu belirsizliği gidermek için getirildi.

Konunun sistem içindeki yeri

303, geçici yönlendirme ailesindeki kodlardan biridir. En yakın akrabaları, birlikte gruplandığı esnek geçici yönlendirme 302 ve yöntemi koruyan karşıtı 307’dir; 307 yöntemi korur, 303 GET veya HEAD’e geçer. Kalıcı yönlendirme olan 301’den ayrılır: 301 sıralama sinyallerini birleştirir ve 303’ün hiçbir zaman tasarlanmadığı URL taşıma işini yapar. 301/308 kalıcı, 302/303/307 geçici, 404/410 kayıp ve 5xx hata ailesinin tamamı için bu sayfanın bulunduğu HTTP durum kodları kümesine bakın.

303 akışını güvenle doğrulama

Sahadaki 303’e güvenmeden önce otomatik olarak körlemesine izlemeyin: Location değerini inceleyin (mutlak mı, göreli mi, çözümlenebilir mi), yönlendirme döngülerini veya gereksiz zincirleri arayın, gerçek takip isteğinin GET ya da HEAD kullandığını doğrulayın ve son yanıtın durumunu ve içeriğini kontrol edin. Form veya API akışında, özgün yazmanın yeniden çalıştırılmadığını doğrulamak için uygulama günlüklerini de inceleyin.

Bir uyarı: tek istemcinin davranışını evrensel kural saymayın. Tarayıcı, HTTP istemcisi ve framework’ün otomatik izleme davranışı ürün, sürüm ve yapılandırmaya göre değişir; adı ve sürümü belirtilmiş tek istemci raporu hepsi için kanıt değildir. URL denetleyicisi yönlendirme ile hedefin biçimini doğrulayabilir, ancak idempotency, kimlik bilgisi işleme veya kaynaklar arası güvenliği sizin yerinize doğrulayamaz; bunun için gerçek gönderim akışını test etmelisiniz.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.