URL
URL Koşulu Nedir?
URL koşulu, HTTP isteğinin tam URL'sini (şema ve host dahil) değerlendirerek trafik yönlendirme ve manipülasyon kararları almak için kullanılan bir koşul tipidir.
URL, isteğin hedef adresinin tamamını kapsar.
Bu koşul, protokol (http/https) ve host bilgisi dahil tam URL eşleştirmesi gerektiğinde kullanılır.
URL Yapısı
Full URL Yapısı
| Bileşen | Açıklama |
|---|---|
| Scheme | Kullanılan protokolü ifade eder (http/https). |
| Domain Name | İsteğin gönderildiği sunucu adresini belirtir. |
| Port | Sunucunun servis portu; URL değerinde yalnızca istemci Host başlığında portu açıkça gönderdiyse yer alır (varsayılan 80/443'te bulunmaz). |
| Path to the File | Sunucu üzerindeki erişilecek kaynak yolunu belirtir. |
| Parameters (Query) | İstekle birlikte gönderilen sorgu (query string) parametrelerini içerir. |
| Anchor | Sayfa içi konumu ifade eder, sunucuya gönderilmez. |
TIP
URL koşulu, HTTP isteğinde sunucuya iletilen URL bileşenlerini (scheme, domain adı (Host başlığından harfiyen), path ve query string) değerlendirir. Değerlendirilen tam biçim http(s)://host[:port]/path?query şeklindedir; şema, bağlantının TR7'de SSL ile sonlanıp sonlanmadığına göre belirlenir. Fragment (Anchor) bilgisi istemci tarafında işlendiğinden URL koşuluna dahil değildir.
Fragment (Anchor) (#...) tarayıcının sayfa içi gezinmesi için vardır ve:
- HTTP request line içinde yer almaz.
- TR7 (Load Balancer & WAF) tarafından görülemez.
- Log'lara düşmez.
- Koşul olarak kullanılamaz.
URL Koşulunun Önemi
Bazı senaryolarda sadece path değil, tam URL bilgisi gereklidir. Özellikle multi-tenant ortamlarda veya farklı protokoller için farklı davranışlar uygulanması gerektiğinde URL koşulu kullanılır.
URL koşulu sayesinde;
- Tam URL bazlı eşleştirme yapılabilir,
- Protokol (HTTP/HTTPS) dahil kontrol sağlanabilir,
- Host ve path kombinasyonları hedeflenebilir,
- Multi-domain ortamlarda spesifik URL'ler için kurallar tanımlanabilir.
URL vs Path + Query vs Path:
| Kriter | Kapsam | Örnek |
|---|---|---|
| URL | Protokol, host, path, query | http://www.tr7.com/api/users?id=123 |
| Path | Yalnızca path | /api/users |
| Path + Query | Path ve query string | /api/users?id=123 |
Kullanılabildiği vService Tipleri
Nasıl Eklenir?
Yeni bir URL 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 URL seçilir.
- Koşula ait ilgili konfigürasyonlar yapılandırılır.
Addbutonuna tıklanarak koşul eklenir.
URL Koşulu Ekleme Formu
URL 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 URL 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
Content Matching Method Varsayılan: Exact match
İçeriğin nasıl eşleştirileceğini belirler. Alan, formda etiketsiz bir açılır liste olarak Criteria'nın hemen altında görünür ve Exact match seçili açılır. Bu kriterde Is present seçeneği sunulmaz.
| Seçenek | Kod | Açıklama |
|---|---|---|
| Exact match | exactMatch | Değer birebir eşleşmelidir. |
| Start | start | Değer belirtilen metinle başlamalıdır. |
| End | end | Değer belirtilen metinle bitmelidir. |
| Includes | sub | Değer belirtilen metni içermelidir. |
| Regex | regex | Değer düzenli ifadeyle eşleşmelidir. |
Örnek URL eşleştirmeleri:
| Yöntem | Query | Eşleşen URL'ler |
|---|---|---|
| Exact Match | http://www.tr7.com/ | http://www.tr7.com/ |
| Start | https:// | Tüm HTTPS istekleri |
| Includes | tr7.com | http://www.tr7.com/api, https://api.tr7.com |
| Regex | ^https?://[^/]+/api/ | API endpoint'leri |
INFO
Case Insensitive Varsayılan: Kapalı
Büyük/küçük harf duyarlılığını kontrol eder.
- Aktif:
example,EXAMPLE,Exampleaynı kabul edilir - Aktif Değil: Tam eşleşme gerekir (varsayılan)
INFO
Query Zorunlu
Eşleştirilecek olan değer bu alana girilir. Seçilen eşleştirme yöntemine göre:
- Exact match: Değerin birebir karşılığını kontrol eder.
- Start: Aranacak metin parçasının başlangıcını kontrol eder.
- End: Aranacak metin parçasının bitişini kontrol eder.
- Includes: Aranacak metin parçasının içinde geçme durumunu kontrol eder.
- Regex: Düzenli ifade deseni (Regex) ile kontrol eder.
Örnek değerler:
http://www.tr7.com/login.php?id=7: Exact match için (tam URL)https://: Start için (HTTPS trafiği).tr7.com: Includes için (TR7 domain'leri)
URL Kodlaması ve Host Kaynağı
Koşul, URL'yi ham (kodlanmamış) haliyle değerlendirir; %2F gibi kodlamalar çözülmez ve URL Normalization aksiyonu koşuldan sonra çalışır. Host bölümü istemcinin gönderdiği Host başlığından harfiyen alınır; Host başlığı olmayan isteklerde host yerine vService adres bilgisi kullanılır: host bazlı desenler bu isteklerle eşleşmez.
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
Değerlendirilen URL, aksiyonlarda %URL akıllı değişkeniyle kullanılabilir. Ayrıca koşul seçim listelerinde URL yapısına dair hazır koşullar sunulur: If URL structure is standard, If URL starts with /, If URL is *: bunlar bu kriterden bağımsız, ürün tanımlı denetimlerdir.
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
- Gerekmedikçe Path Tercih Edin. Host bilgisine ihtiyacınız yoksa Path koşulunu kullanın, daha basit ve performanslıdır.
- Protocol-Agnostic Kurallar. HTTP ve HTTPS için aynı kuralı uygulamak istiyorsanız
://veya host kısmından eşleştirme yapın. - www ve non-www Dikkat.
www.example.comveexample.comfarklı URL'lerdir. Her ikisini de kapsamak için uygun eşleştirme yöntemi seçin.
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: HTTP Trafiğini HTTPS'e Yönlendirme
Kullanım Amacı: Güvenlik politikası gereği HTTP protokolü ile gelen tüm istekleri HTTPS'e otomatik yönlendirerek şifreli iletişim sağlamak.
Konfigürasyon: Content Matching Method → Start · Query → http://
Aksiyon Önerileri:
- ✅ Redirect to HTTPS → HTTP ile gelen tüm istekler 301 Permanent Redirect ile HTTPS protokolüne yönlendirilir.
- ✅ Advanced Traffic Inspection → HTTP vs HTTPS kullanım oranı analizi için detaylı loglama yapılır.
Senaryo 2: Belirli Subdomain için API Rate Limiting
Kullanım Amacı: Multi-domain ortamda API subdomain'ine (api.tr7.com) özel bant genişliği sınırlaması ve özel header ekleme.
Konfigürasyon: Content Matching Method → Includes · Query → api.tr7.com
Aksiyon Önerileri:
- ✅ Bandwidth Limitation → API subdomain'ine IP bazlı 20 Mbps throughput sınırı uygulanır.
- ✅ Add HTTP Header → API isteklerine
X-API-Domain: trueveX-Rate-Limit-Policy: strictheader'ları eklenir.
Senaryo 3: www Prefix Normalizasyonu
Kullanım Amacı: SEO ve tutarlılık için www prefix içeren URL'leri non-www versiyonuna yönlendirmek.
Konfigürasyon: Content Matching Method → Includes · Query → ://www.
Aksiyon Önerileri:
- ✅ Location Redirection → www.tr7.com URL'leri 301 redirect ile tr7.com non-www versiyonuna yönlendirilir.
- ✅ Advanced Traffic Inspection → www vs non-www kullanım istatistikleri toplanır, SEO analizi yapılır.
Senaryo 4: Güvenli Subdomain için Özel Güvenlik Başlıkları
Kullanım Amacı: Kritik işlemlerin yapıldığı secure subdomain'ine (secure.tr7.com) ekstra güvenlik başlıkları eklemek.
Konfigürasyon: Content Matching Method → Regex · Query → ^https://secure\.tr7\.com/
Aksiyon Önerileri:
- ✅ Manage HTTP Security Headers → Secure subdomain'ine HSTS, CSP, X-Frame-Options, X-Content-Type-Options güvenlik header'ları eklenir.
- ✅ Add HTTP Header →
X-Secure-Endpoint: trueveStrict-Transport-Security: max-age=31536000header'ları eklenir.
