İçeriğe geç
DomainQ
Alan Adı ve DNS

RDAP Yanıtında HTTP Durum Kodu ve JSON Türü Nasıl Okunur?

RDAP sonucunu yorumlamaya nesne alanlarından önce HTTP durum kodu ve yanıtın JSON yapısıyla başlayın. Böylece başarılı sorgu, desteklenmeyen sorgu ve geçersiz istek ayrımını daha net yapabilirsiniz.

RDAP Yanıtında HTTP Durum Kodu ve JSON Türü Nasıl Okunur? — DomainQ blog kapak görseli

Bir alan adıyla ilgili RDAP sorgusu yaptığınızda ekranda JSON görünmesi, sonucun otomatik olarak kullanılabilir olduğu anlamına gelmez. Önce sunucunun sorguyu başarılı biçimde işleyip işlemediğini HTTP durum kodundan, ardından dönen yapının hangi RDAP yanıtı olduğunu JSON içeriğinden anlamak gerekir. RDAP HTTP durum kodu ve JSON yanıtı birlikte okunduğunda, nesne ayrıntılarını yorumlamadan önce doğru yerde olup olmadığınızı kontrol edebilirsiniz.

RDAP yanıtını okuma sırası: HTTP durum kodu; Olumlu JSON yapısı; objectClassName ile tür; Self bağlantısında application/rdap+json
RDAP yanıtını okuma sırası

Kısa özet

  • RDAP sunucusu, sorgunun işlenip işlenmediğini HTTP durum koduyla bildirir.
  • Tek nesne sorgusunun olumlu sonucu doğrudan o nesneyi temsil eden bir JSON nesnesidir; çoklu arama sonucu ise nesneler dizisi içeren bir JSON nesnesidir.
  • objectClassName nesne türünü belirtir; tanınmayan JSON üyeleri tek başına yanıt hatası sayılmamalıdır.
  • RDAP nesnesine yönelik self bağlantısında type değeri application/rdap+json olmalıdır.

Önce HTTP durum kodunu değerlendirin

HTTP durum kodu, istemci ile sunucu arasındaki isteğin sonucunu bildiren yanıttaki sayısal koddur. RDAP sunucuları, sorgu işlemenin başarılı ya da başarısız olduğunu istemciye uygun HTTP yanıt kodu döndürerek iletir. Bu nedenle JSON alanlarını incelemeye başlamadan önce yanıtın durum koduna bakın.

Örneğin bir araç bir RDAP isteğinden sonra JSON benzeri bir çıktı gösteriyorsa, ilk adım bu çıktının yanında veya ağ kaydında görünen HTTP durum kodunu doğrulamaktır. Durum kodu, sorgunun işlenme sonucunu bildirir; JSON gövdesi ise olumlu bir yanıtta hangi nesne ya da arama sonucunun döndüğünü açıklar.

RDAP sunucusu desteklemediği bir sorgu türüyle karşılaşırsa HTTP 501 Not Implemented döndürmek zorundadır. Bu yanıt, elinizdeki sorgu türünün o sunucuda desteklenmediğini gösterir; nesnenin içeriği hakkında bir sonuç çıkarmaz.

Sorgu dizgesi yüzde kod çözümlemesinden sonra geçerli UTF-8 değilse sunucu işlemi hemen durdurabilir ve HTTP 400 Bad Request döndürebilir. UTF-8, metni bilgisayar sistemlerinde temsil etmek için kullanılan bir karakter kodlamasıdır. Böyle bir durumda nesne verisi aramak yerine istekteki metin kodlamasını kontrol etmek daha uygundur.

  • HTTP durum kodunu, JSON alanlarından önce kontrol edin.
  • 501 yanıtını desteklenmeyen sorgu türü olarak değerlendirin.
  • 400 yanıtı alındığında, sorgu dizgesinin UTF-8 geçerliliğini gözden geçirin.

Kaynak: [1]

Olumlu yanıtta tek nesne ile arama sonucunu ayırın

Başarılı bir RDAP yanıtında JSON yapısı, yapılan sorgunun niteliğine göre değişir. Kayıt sistemindeki tek bir nesneye yönelik lookup sorgusunun olumlu sonucu, sorgulanan nesnenin kendisi olan bir JSON nesnesidir.

Buna karşılık birden fazla nesneyi arayan sorgunun olumlu sonucu da bir JSON nesnesidir; ancak bu nesne, arama sonucundaki nesneleri taşıyan bir JSON nesneleri dizisi içerir. Yani dış katmanın JSON nesnesi olması tek başına tek bir kayıt bulunduğu anlamına gelmez.

Örnek senaryo: Bir yönetici alan adı için tek nesne sorgusu gönderir ve olumlu bir yanıt alır. Bu durumda dönen JSON nesnesi aranan nesnedir. Yönetici bunun yerine birden çok nesneyi hedefleyen bir arama yaparsa, olumlu yanıtta sonuç nesnelerini içeren bir dizi beklemelidir. İki yapıyı aynı kabul etmek, sonraki alan okumalarını karıştırabilir.

  • Tek nesne lookup yanıtında JSON nesnesi, aranan nesnenin kendisidir.
  • Çoklu arama yanıtında dış JSON nesnesi, sonuç nesnelerinden oluşan bir dizi barındırır.
  • JSON görünmesi yeterli değildir; sorgunun tek nesne mi, çoklu arama mı olduğunu da dikkate alın.

Kaynak: [2]

Nesne türünü objectClassName ile doğrulayın

RDAP yanıt nesnelerinde objectClassName adlı üye, işlenen nesnenin türünü belirten bir metin değeridir. Nesne türünün yorumlanabilmesi için tüm RDAP yanıt nesnelerinde bulunması zorunludur.

Bu alanı, HTTP durum kodu olumlu bir işlemi gösterdikten sonra yapısal kontrolün parçası olarak okuyun. Böylece bir JSON nesnesinin hangi tür RDAP nesnesi olarak işleneceğini, yalnızca alan adlarından tahmin etmek yerine yanıtın kendi tür bildiriminden kontrol edebilirsiniz.

RDAP yanıtında alan adı durumunu ve kayıt olaylarını ayrı yorumlamak için RDAP’te Alan Adı Durumu ve Kayıt Olayları Nasıl Ayrılır? rehberindeki ayrımı da kullanabilirsiniz. Ancak bu ayrıntılara geçmeden önce burada anlatılan durum kodu, yanıt şekli ve nesne türü kontrollerini tamamlamak daha düzenli bir inceleme sağlar.

  • Olumlu yanıttaki RDAP nesnesinde objectClassName değerini bulun.
  • Bu değeri nesnenin türünü belirleyen zorunlu üye olarak ele alın.
  • Nesne alanlarının anlamına geçmeden önce yanıtın yapısını ve türünü doğrulayın.

Kaynak: [2]

Tanınmayan JSON üyelerini hata diye işaretlemeyin

RDAP JSON yanıtlarını işleyen istemciler, tanımadıkları JSON üyelerini yok saymalıdır. Sunucular, tanımda belirtilmeyen üyeleri yanıta ekleyebilir; bu üyelerin varlığı yanıtın hatalı olduğu anlamına gelmez.

Bu kural özellikle kendi betiğinizi, entegrasyonunuzu veya bir yönetim aracındaki veri eşlemesini gözden geçirirken önemlidir. İstemci, yalnızca beklemediği bir üye gördüğü için bütün yanıtı geçersiz saymamalıdır. Bunun yerine tanıdığı üyeleri işlemeli, tanımadıklarını yok saymalıdır.

Örnek senaryo: Bir araç objectClassName alanını okuyup başka, tanımadığı bir üyeyle karşılaşabilir. Tanınmayan üye tek başına hata değildir; araç bu üyeyi atlayarak tanıdığı RDAP yapısını işlemeye devam etmelidir.

  • Bilinmeyen JSON üyesini tek başına hata kabul etmeyin.
  • İstemcinizin tanıdığı üyeleri işlemesini, tanımadıklarını yok saymasını sağlayın.
  • Yanıtın geçerliliğini HTTP sonucu ve beklenen RDAP yapısıyla birlikte değerlendirin.

Kaynak: [2]

Self bağlantısındaki medya türünü kontrol edin

RDAP nesne örneğine işaret eden self bağlantısında type öğesi application/rdap+json medya türünü içermek zorundadır. Medya türü, bağlantının işaret ettiği içeriğin biçimini tanımlayan etikettir.

Bu denetim, bir bağlantının RDAP nesne örneğine yöneldiğini doğrularken yararlıdır. Self bağlantısı RDAP nesne örneğine işaret ediyorsa type öğesinde application/rdap+json değerini bekleyin. Bu kontrol, HTTP durum kodunun yerine geçmez; başarılı işlem bilgisini durum kodundan, nesne bağlantısının RDAP medya türünü ise self bağlantısından okuyun.

Alan adı nesnesinin alanlarına geçmeniz gerektiğinde, RDAP Nameserver Bilgisi Alan Adı Delegasyonuyla Nasıl Okunur? içeriği nameserver bilgilerini ayrı bir bağlamda ele alır. Bu makaledeki amaç ise önce yanıtın işlenme sonucunu ve JSON nesnesinin nasıl sınıflandırılacağını belirlemektir.

  • RDAP nesne örneğine giden self bağlantısını bulun.
  • type öğesinde application/rdap+json medya türünü kontrol edin.
  • HTTP durum kodu, JSON yapı ve bağlantı medya türünü farklı kontroller olarak ele alın.

Kaynak: [2]

Uygulama kontrol listesi

  • RDAP yanıtındaki HTTP durum kodunu JSON alanlarından önce kontrol ettim.
  • 501 yanıtını desteklenmeyen sorgu türü olarak ayırdım.
  • 400 yanıtı varsa sorgu dizgesinin UTF-8 geçerliliğini gözden geçirdim.
  • Olumlu JSON yanıtının tek nesne lookup mı yoksa çoklu arama sonucu mu olduğunu belirledim.
  • RDAP yanıt nesnesindeki objectClassName değerini kontrol ettim.
  • Tanınmayan JSON üyelerini tek başına hata olarak işaretlemedim.
  • RDAP nesnesine yönelik self bağlantısında type değerinin application/rdap+json olduğunu kontrol ettim.

RDAP yanıtını güvenle okumak için sırayı tersine çevirmeyin: önce HTTP durum koduyla sorgu işlemenin sonucunu değerlendirin, sonra olumlu JSON yapısının tek nesne mi yoksa sonuç dizisi mi taşıdığını ayırın. Ardından objectClassName ile nesne türünü doğrulayın, tanınmayan üyeleri tek başına hata saymayın ve uygun self bağlantısında application/rdap+json medya türünü kontrol edin. Bu temel kontroller, nesne içeriğine geçmeden önce yanıtı doğru çerçeveye yerleştirir.

Sık sorulan sorular

RDAP yanıtında JSON görmem sorgunun başarılı olduğu anlamına gelir mi?

Hayır. RDAP sunucusu sorgu işlemenin başarılı ya da başarısız olduğunu uygun HTTP durum koduyla bildirir. JSON içeriğini yorumlamadan önce bu kodu değerlendirmek gerekir.

HTTP 501 RDAP yanıtı neyi gösterir?

HTTP 501 Not Implemented, RDAP sunucusunun sorgu türünü desteklemediğini gösterir. RDAP sunucuları desteklemedikleri sorgu türleri için bu yanıtı döndürmek zorundadır.

RDAP yanıtındaki tanımadığım bir JSON alanı hata mıdır?

Hayır. RDAP istemcileri tanımadıkları JSON üyelerini yok saymalıdır. Sunucunun tanımda yer almayan üye eklemesi, tek başına yanıt hatası oluşturmaz.

Kaynaklar

[1] rfc9082.txt

[2] rfc9083.txt