Well-Known URI: İnternetin Standart Dosya Düzeni
Selamlar, ben Alper. Bugün yazılım dünyasında pek çoğumuzun bir şekilde denk geldiği ama "Bu klasör de nereden çıktı?" dediği bir konuyu, yani Well-Known URI (Bilinen URI) kavramını konuşacağız. Eğer bir web sitesinin sunucu dosyalarına göz attıysanız, muhtemelen /.well-known/ isimli o gizemli klasörü görmüşsünüzdür. Peki, neden her şey bu klasörün içine girmeye başladı? Gelin, bu standartlaşma hikayesine yakından bakalım.
Nedir Bu Well-Known URI Meselesi?
Eskiden internet daha "vahşi batı" kıvamındaydı. Bir web sitesi hakkında bilgi almak istediğimizde (örneğin arama motoru botları için kurallar), bu dosyaları doğrudan ana dizine (root directory) atardık. robots.txt bunun en bilinen örneğidir. Sonra favicon.ico geldi, ardından sitemap dosyaları derken ana dizin bir çöplüğe dönmeye başladı. Her yeni protokol veya servis, kendi dosyasını ana dizine koymak istiyordu.
İşte bu karmaşayı çözmek için RFC 8615 (eskiden RFC 5785) standardı getirildi. Bu standart diyor ki: "Eğer bir web sitesi veya sunucu hakkında makine tarafından okunabilir bir metadata (üst veri) sunacaksanız, bunu ana dizini kirletmeden /.well-known/ yolu altında yapın." Yani burası, internetin ortak ve üzerinde uzlaşılmış "bilgi danışma masası" haline geldi.
Neden Kendi URI'nızı Tanımlamak İsteyesiniz?
Diyelim ki yeni bir teknoloji geliştiriyorsunuz. Bu teknoloji, bir web sitesinin belirli özelliklerini (örneğin ödeme yöntemleri, güvenlik politikaları veya mobil uygulama bağlantıları) otomatik olarak keşfetmek zorunda. Eğer her geliştirici kafasına göre bir dosya ismi uydurursa, tarayıcılar veya botlar bu bilgiyi nerede arayacağını bilemez. Interoperability (birlikte çalışabilirlik) sağlamak için standart bir konuma ihtiyacınız vardır.
Örneğin, Let's Encrypt gibi servisler SSL sertifikası doğrulaması yaparken /.well-known/acme-challenge/ yolunu kullanır. Ya da sitenizin güvenlik açıklarını bildirmek isteyen araştırmacılar için /.well-known/security.txt dosyasını kullanırsınız. Bunların hepsi, belirli bir amaca hizmet eden ve herkes tarafından kabul görmüş "iyi bilinen" adreslerdir.
Yeni Bir Well-Known URI Nasıl Tanımlanır?
Kendi projeniz için bir Well-Known URI tanımlamak istiyorsanız, bu işin bir resmi yolu olduğunu bilmelisiniz. "Ben yaptım oldu" diyerek bir klasör açabilirsiniz ama bunun küresel bir standart haline gelmesi için IANA (Internet Assigned Numbers Authority - İnternet Atanmış Numaralar Kurumu) üzerinden kayıt yaptırmanız gerekir.
- İhtiyacı Belirleyin: Gerçekten yeni bir URI'ya ihtiyacınız var mı? Eğer veriniz sadece belirli bir uygulamaya özelse, genel bir standart yerine uygulamanın kendi API yollarını kullanmak daha mantıklıdır.
- Dokümantasyon Hazırlayın: URI'nızın ne işe yaradığını, hangi formatta veri döndüreceğini ve güvenlik gereksinimlerini anlatan bir taslak hazırlamalısınız.
- IANA Kaydı: IANA'nın "Well-Known URIs" siciline başvurmalısınız. Bu süreç genellikle bir Expert Review (uzman incelemesi) gerektirir. Uzmanlar, önerdiğiniz ismin uygun olup olmadığını ve mevcut standartlarla çakışıp çakışmadığını kontrol eder.
- Kısa ve Öz İsim Seçin: Seçtiğiniz isim (suffix) açıklayıcı ama kısa olmalıdır. Örneğin:
openid-configurationveyaassetlinks.json.
Uygulamada Dikkat Edilmesi Gerekenler
Bir Well-Known URI tanımlarken veya kullanırken sadece dosyayı oraya koymak yetmez. Bazı teknik detaylara dikkat etmekte fayda var:
HTTPS Zorunluluğu: Modern standartların çoğu, bu dosyaların sadece güvenli bağlantı (HTTPS) üzerinden sunulmasını şart koşar. Güvenlik bilgilerinin veya yapılandırma dosyalarının şifrelenmemiş bir kanaldan (HTTP) sunulması ciddi riskler doğurabilir.
CORS Ayarları: Eğer bu dosyaya başka web sitelerinden (tarayıcı tabanlı) erişilecekse, CORS (Cross-Origin Resource Sharing - Kökenler Arası Kaynak Paylaşımı) ayarlarını doğru yapmalısınız. Aksi takdirde tarayıcılar güvenlik gerekçesiyle bu isteği engelleyecektir.
Dosya Formatı: Genellikle bu dizin altındaki dosyalar JSON formatında olur. Makine tarafından kolayca ayrıştırılabilir (parse edilebilir) olması temel amaçtır. Ancak security.txt gibi istisnalar düz metin (plain text) olabilir.
Özetle
Well-Known URI'lar, internetin daha düzenli ve tahmin edilebilir bir yer olmasını sağlıyor. Eğer büyük ölçekli bir sistem tasarlıyorsanız veya servis keşfi (service discovery) gibi bir problemle uğraşıyorsanız, tekerleği yeniden icat etmek yerine bu standart yolu kullanmalısınız. Ancak unutmayın, burası sadece "kamuya açık ve standartlaşmış" bilgiler içindir. Gizli verilerinizi veya uygulamaya özel karmaşık yollarınızı buraya koymaktan kaçının.
Umarım bu yazı, projelerinizde doğru mimariyi kurmanıza yardımcı olur. Bir sonraki teknik yazımızda görüşmek üzere, kodunuz temiz, yolunuz açık olsun!