Exact Path ile glob path arasındaki fark nedir?
Kısa cevap
Exact Path (/login) isteğin path'iyle birebir karşılaştırılır; glob path (/api/v*/login) bir desendir ve desene uyan bütün path'leri kapsar (Add nedir). Hangisinin oluşacağını Path alanına yazılan değer belirler: değerde *, ?, [ ], { } gibi bir joker varsa kural kendiliğinden glob olur ve form glob moduna geçer (test tablosu ve Structure Checks açıkken Path Length ile Path Depth alanları görünür); formda ayrı bir tür seçici yoktur. Eşleşmede exact kural her zaman önce gelir; exact kural yoksa path'e uyan bütün glob kurallar birlikte uygulanır; hiçbiri uymuyorsa Any Paths uygulanır (çalışma anı kural eşleşmesi). İkisi de büyük/küçük harfe duyarlıdır, sorgu dizesine bakmaz ve isteğin sondaki / karakteri eşleştirmeden önce atılır.
Nasıl Çalışır?
- Kural kaydedilirken Path değeri incelenir; joker içermeyen değer exact, joker içeren değer glob kural olarak işaretlenir.
- İstek geldiğinde path'i önce exact kurallarla birebir karşılaştırılır; eşleşen exact kural varsa glob kurallar yalnızca onun tanımlamadığı Check fields bölümlerini tamamlar.
- Exact eşleşme yoksa path'e uyan bütün glob kurallar tanımlanma sırasıyla birleştirilir, sonuna Any paths eklenir (Bir istek birden fazla page type'a uyarsa kurallar nasıl uygulanır (exact path önceliği, glob kurallarının Any Paths ile birleşmesi)?).
Karşılaştırma
| Exact | Glob | |
|---|---|---|
| Örnek | /login, /api/users | /api/v*/login, /files/**, /img/*.{png,jpg} |
| Eşleşme | Birebir | Desene uyan bütün path'ler |
| Öncelik | Önce exact; eşleşirse path ayarları ondan gelir | Exact yoksa uyan glob'lar birlikte; path ayarları ilk eşleşen glob'dan gelir |
| Path length · Path depth | Formda gösterilmez (path sabit) | Var (Path Length ve Path Depth kısıtları ne işe yarar?) |
| Test tablosu | Yok | Input / Result tablosu (Glob pattern'leri (*, **) nasıl yazılır; path test aracı nasıl kullanılır?) |
| Listede | En üstte, alfabetik sırayla | Exact kuralların altında, ekleme sırasıyla; satır ve path vurgu rengiyle |
| Aynı grupta | Aynı path'le ikinci kural eklenemez (Rule collision) | Aynı desenle ikinci kural eklenemez; /a exact ile /a/* glob birlikte bulunabilir |
- Sondaki
/: istek path'inin sondaki/karakteri eşleştirmeden önce atılır;/api/login/yazılmış exact kural/api/login/isteğiyle eşleşmez (istek/api/loginolarak karşılaştırılır) (Path). - Exact ile glob arasında geçiş için kuralın Edit formunda Path değeri değiştirilir; Check fields denetimleri korunur.
- Host desenlerindeki
*farklı bir mekanizmadır (Virtual Host Patterns alanında wildcard (*.example.com) kullanabilir miyim, yoksa birebir eşleşme mi aranır?).
Sık Karıştırılan Noktalar
- "Glob daha kapsamlı olduğu için exact'i ezer." Exact kural varsa path ayarları exact kuraldan gelir; glob yalnızca exact kuralın tanımlamadığı Check fields bölümlerini tamamlar.
- "Tür formdan seçilir." Tür, yazılan değerde joker olup olmamasından çıkarılır.
- "Listede üstte olan kural önce uygulanır." Exact, glob ve Any paths arasındaki öncelik kuralın türünden gelir; tanımlanma sırası yalnızca birden çok glob kural arasında önemlidir (path ayarları önce tanımlanmış eşleşen glob kuraldan gelir).
Dokümantasyonda nasıl yapılır
İlgili sorular
- Glob pattern'leri (*, **) nasıl yazılır; path test aracı nasıl kullanılır?
- Bir istek birden fazla page type'a uyarsa kurallar nasıl uygulanır (exact path önceliği, glob kurallarının Any Paths ile birleşmesi)?
- Virtual Host Patterns alanında wildcard (*.example.com) kullanabilir miyim, yoksa birebir eşleşme mi aranır?
