Status Code
Status Code Koşulu Nedir?
Status Code koşulu, Kurum Servisinden dönen HTTP yanıtının durum kodunu değerlendirerek trafik manipülasyon kararları almak için kullanılan bir koşul tipidir.
HTTP durum kodu, yanıtın ilk satırında bulunur.
Bu koşul yalnızca yanıt (response) aşamasında değerlendirilebilir.
WARNING
Status Code koşulu yalnızca Response aşamasında çalışır. Kurum Servisi yanıt vermeden önce bu koşul değerlendirilemez.
Status Code Koşulunun Önemi
HTTP durum kodları, isteğin sonucunu belirten standart kodlardır ve yanıt işleme için kritik öneme sahiptir.
Status Code koşulu sayesinde;
- Hata yanıtları (4xx, 5xx) tespit edilip özel sayfalar gösterilebilir,
- Yönlendirmeler (3xx) izlenebilir veya değiştirilebilir,
- Başarılı yanıtlar (2xx) için cache kuralları uygulanabilir,
- Belirli durum kodlarına göre loglama yapılabilir,
- Backend sağlık durumu izlenebilir.
HTTP Durum Kodu Kategorileri:
| Aralık | Kategori | Açıklama |
|---|---|---|
| 1xx | Informational | Bilgilendirme |
| 2xx | Success | Başarılı |
| 3xx | Redirection | Yönlendirme |
| 4xx | Client Error | İstemci hatası |
| 5xx | Server Error | Sunucu hatası |
Kullanılabildiği vService Tipleri
Nasıl Eklenir?
Yeni bir Status Code Koşulu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- Load Balancer → Conditions → Add adımları takip edilir.
- Criteria olarak Status Code seçilir.
- Koşula ait ilgili konfigürasyonlar yapılandırılır.
Addbutonuna tıklanarak koşul eklenir.
Status Code Koşulu Ekleme Formu
Status Code Koşulu Ekleme Formu
INFO
Condition Name
Oluşturulacak koşul için isteğe bağlı bir isim girilebilir.
Bu alan, özellikle aşağıdaki senaryolarda önemlidir:
- Aynı vService altında çok sayıda koşul tanımlandığında,
- Benzer kriterlere sahip koşulların ayırt edilmesi gerektiğinde,
- Koşulun hangi iş kuralını temsil ettiğinin hızlıca anlaşılması istendiğinde.
Bu alan boş bırakıldığında, TR7 ilgili koşulun içeriğini analiz ederek Condition Description alanında otomatik ve açıklayıcı bir isim oluşturur. Oluşturulan bu açıklama, koşul listelerinde isim olarak kullanılır.
INFO
Criteria Zorunlu
Koşulun tipini belirleyen alandır; aranabilir açılır listeden Status Code seçilir. Bu seçim, formda görüntülenecek alanları belirler. Kriter, koşul kaydedildikten sonra değiştirilemez: farklı bir kritere ihtiyaç duyulursa yeni bir koşul tanımlanır. Listedeki tüm kriterler ve kapsamları için Conditions sayfasındaki kriter kataloğuna bakılabilir.
INFO
Operator
Sayısal karşılaştırma operatörü ve değeri girilir. Form, Equals to (=) 200 seçili olarak açılır; girilen değer tamsayı olmalıdır (100-599 aralığı zorlanmaz: geçerli bir HTTP durum kodu girilmesi kullanıcının sorumluluğundadır). Range (-) seçildiğinde iki sınır da aralığa dahildir.
| Operatör | Sembol | Açıklama |
|---|---|---|
| Less than | < | Değer küçük olmalı |
| Equals to | = | Değer tam olarak eşleşmeli |
| Greater than | > | Değer büyük olmalı |
| Range | - | Değer iki değer arasında olmalı |
Karşılaştırma için kullanılacak HTTP durum kodu manuel girilir.
Yaygın HTTP Durum Kodları:
| Kod | Anlam |
|---|---|
200 | OK - Başarılı |
201 | Created - Oluşturuldu |
204 | No Content - İçerik yok |
301 | Moved Permanently - Kalıcı yönlendirme |
302 | Found - Geçici yönlendirme |
304 | Not Modified - Değişmedi |
400 | Bad Request - Hatalı istek |
401 | Unauthorized - Yetkisiz |
403 | Forbidden - Yasaklı |
404 | Not Found - Bulunamadı |
429 | Too Many Requests - Çok fazla istek |
500 | Internal Server Error - Sunucu hatası |
502 | Bad Gateway - Geçersiz gateway |
503 | Service Unavailable - Servis kullanılamaz |
504 | Gateway Timeout - Gateway zaman aşımı |
TIP
Tüm 5xx hatalarını yakalamak için Range operatörü ile 500-599 kullanılabilir.
INFO
Condition Description
Girilen kriter ve değerler doğrultusunda TR7 tarafından otomatik olarak oluşturulur.
Bu açıklama;
- Koşulun hangi değer için geçerli olduğunu,
- Hangi kriter üzerinden çalıştığını,
- Listeleme ekranlarında koşulun hızlıca anlaşılmasını
sağlayacak şekilde sistem tarafından dinamik olarak üretilir.
TIP
Dönen durum kodu, yanıt aşamasındaki aksiyonlarda ve log formatlarında Dönen durum kodu akıllı değişkeniyle kullanılabilir.
INFO
Form Butonları
Add
Add butonuna tıklanarak koşul ekleme işlemi tamamlanır.
Add & Repeat
Add & Repeat butonu ile koşul ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir koşul daha eklenebilir.
Koşul Eklendi
Operasyonel Kullanım Önerileri
- Özel Hata Sayfaları. 404 ve 500 hatalarını yakalayıp kullanıcı dostu hata sayfaları gösterin.
- Backend Sağlık İzleme. 5xx hatalarını izleyerek Kurum Servisi sağlık durumunu takip edin.
- Cache Stratejisi. Sadece 200 OK yanıtlarını cache'leyin. Hata yanıtlarını cache'lemeyin.
- Yönlendirme Yönetimi. 3xx yanıtlarını izleyerek yönlendirme zincirlerini kontrol edin.
Canlı Ortamlarda Yaygın Kullanım Senaryoları
Aşağıdaki örnekler, ilgili koşulun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.
Senaryo 1: 404 Not Found Özel Hata Sayfası
Kullanım Amacı: 404 hatalarında kullanıcı dostu özel sayfa göstermek.
Konfigürasyon: Operator → Equals to (=) 404
Aksiyon Önerileri:
- ✅ Show Content → Özel tasarlanmış 404 sayfası gösterilir, kullanıcıya yardımcı linkler sunulur. (Koşul gerektirmeyen sabit kod eşlemesi için Show Content for Backend Service Errors aksiyonu da kullanılabilir: o aksiyon kendi kod listesini alır, bu koşula bağlanmaz.)
Senaryo 2: Sunucu Hataları (5xx) Yönetimi
Kullanım Amacı: Tüm 5xx sunucu hatalarını yakalayıp Kurum Servisi sağlık durumunu izlemek ve özel hata sayfası göstermek.
Konfigürasyon: Operator → Range (-) 500-599
Aksiyon Önerileri:
- ✅ Show Content → "Servis geçici olarak kullanılamıyor" bakım sayfası gösterilir.
Senaryo 3: Başarılı Yanıtlara Cache Header Ekleme
Kullanım Amacı: Sadece başarılı (2xx) yanıtlara cache header'ları eklemek ve performansı artırmak.
Konfigürasyon: Operator → Range (-) 200-299
Aksiyon Önerileri:
- ✅ Add HTTP Header →
Cache-Control: public, max-age=3600header eklenir, CDN ve browser cache etkinleştirilir. - ✅ Set HTTP Header →
ETagveLast-Modifiedheader'ları düzenlenir, cache validation sağlanır.
Senaryo 4: Yetkilendirme Hatalarını İzleme (401)
Kullanım Amacı: Kurum Servisinden dönen 401 yanıtlarını işaretleyip oturum/yetki sorunlarını izlemek. (401 yanıtı istemciye ulaşmadan yönlendirme yapılamaz: yönlendirme aksiyonları yalnızca istek aşamasında çalışır; oturuma zorlama ihtiyacı uygulama tarafında veya AGS ile çözülür.)
Konfigürasyon: Operator → Equals to (=) 401
Aksiyon Önerileri:
- ✅ Add HTTP Header →
X-Auth-Required: truebaşlığı eklenir; ön yüz uygulaması bu işaretle giriş sayfasına yönlendirme yapar. - ✅ Advanced Traffic Inspection → 401 oranı ve kaynak dağılımı raporlanır.
Senaryo 5: 403 Forbidden CORS Header Ekleme
Kullanım Amacı: 403 hatalarında CORS sorunlarını çözmek için özel header'lar eklemek.
Konfigürasyon: Operator → Equals to (=) 403
Aksiyon Önerileri:
- ✅ Add HTTP Header → 403 yanıtlarına tanılama amaçlı
Access-Control-Allow-Originve bilgilendirme başlıkları eklenir. (CORS ve HTTP Güvenlik Başlıkları aksiyonları koşula bağlanmaz: vService genelinde çalışır.) - ✅ Show Content → "Erişim engellendi" sayfası gösterilir, kullanıcıya bilgi verilir.
