URL'nin bölümleri (scheme, host, path, query string) nelerdir?
Kısa cevap
URL (Uniform Resource Locator), bir kaynağın adresidir ve scheme://host:port/path?query#fragment biçimindedir: scheme (http ya da https) protokolü, host domain'i, port numarasını (yazılmazsa http'de 80, https'te 443), path domain'den sonra gelen kısmı (/urun/detay), query string ? sonrasındaki ad=değer parametrelerini gösterir; # sonrasındaki fragment tarayıcıda kalır, sunucuya gönderilmez. TR7'de her bölüm için ayrı koşul vardır: URL tam adresi (scheme ve host dahil), Path yalnızca path'i, Path + Query path ile query'yi, Query Parameter tek bir parametreyi değerlendirir; URL koşulundaki host kısmı Host header'ından alınır. Set Path ve Set Path + Query aksiyonları adresi Kurum Servisine gitmeden yeniden yazar, Location Redirection istemciyi başka bir adrese redirect eder, Cache profilindeki Ignore Query query string'i cache key'den çıkarır.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Load Balancer → Conditions (Policy Match) → Criteria | URL, Path, Path + Query, Query Parameter | Adresin farklı bölümlerine göre aksiyon ya da Conditional Backend Services kararı |
| Load Balancer → Actions (Policy Actions) | Set Path, Set Path + Query | Path'i (ve query'yi) Kurum Servisine gitmeden yeniden yazma |
| Load Balancer → Actions (Policy Actions) | Location Redirection, URL Normalization | Başka adrese redirect etme; adresi tek biçime getirme |
| Load Balancer → Profiles (L4-L7 Behavior Sets) → Cache | Ignore Query (varsayılan kapalı), Ignore Host Header (varsayılan kapalı) | Query string'i ya da host'u cache key'den çıkarma |
| Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → N page types → kural | Path, Query sekmeleri | Sayfanın path'ine ve query parametrelerine uygulanan WAF denetimleri |
Örnek
https://shop.example.com:443/urun/detay?id=42&renk=mavi#yorumlar
| Bölüm | Değer | Sunucuya gider mi |
|---|---|---|
| Scheme | https | Bağlantı türü olarak |
| Host | shop.example.com | Host header'ında |
| Port | 443 | Bağlantının hedef portu olarak |
| Path | /urun/detay | İstek satırında |
| Query string | id=42&renk=mavi | İstek satırında |
| Fragment | yorumlar | Hayır |
Tarayıcı varsayılan portu Host header'ına yazmadığı için bu örnekte URL koşulunun değerlendirdiği değer https://shop.example.com/urun/detay?id=42&renk=mavi, Path koşulununki /urun/detay, Path + Query koşulununki /urun/detay?id=42&renk=mavi'dir. URL'nin genel söz dizimi RFC 3986'dadır.
Sık Karıştırılan Noktalar
- "Path koşulu query'yi de görür." Path yalnızca path'i değerlendirir; query için Path + Query ya da Query parameter kullanılır.
- "# sonrası da sunucuya gelir." Fragment tarayıcıda kalır, isteğe eklenmez; TR7'deki hiçbir koşul onu göremez.
- "URL koşulu her zaman domain'i görür." Host header'ı olmayan istekte URL koşulu host yerine frontend IP:port değerini kullanır.
Dokümantasyonda nasıl yapılır
İlgili sorular
