RESTful API'sinde oturum kullanmak RESTfulness'i gerçekten ihlal ediyor mu? Her iki yönde de birçok fikir gördüm, ancak oturumların RESTsiz olduğuna ikna olmadım . Benim açımdan:
- RESTfulness için kimlik doğrulaması yasak değildir (aksi takdirde RESTful hizmetlerinde çok az kullanım olurdu)
- kimlik doğrulama, istekte, genellikle başlıkta bir kimlik doğrulama belirteci göndererek yapılır
- bu kimlik doğrulama belirtecinin bir şekilde edinilmesi gerekir ve iptal edilebilir, bu durumda yenilenmesi gerekir
- kimlik doğrulama belirtecinin sunucu tarafından doğrulanması gerekir (aksi takdirde kimlik doğrulama olmaz)
Peki oturumlar bunu nasıl ihlal ediyor?
- istemci tarafında, oturumlar çerezler kullanılarak gerçekleştirilir
- çerezler sadece fazladan bir HTTP başlığıdır
- bir oturum çerezi her zaman elde edilebilir ve iptal edilebilir
- oturum çerezleri gerekirse sonsuz bir yaşam süresine sahip olabilir
- oturum kimliği (kimlik doğrulama belirteci) sunucu tarafında doğrulanır
Bu nedenle, istemciye, bir oturum çerezi diğer herhangi bir HTTP üstbilgisi tabanlı kimlik doğrulama mekanizmasıyla tamamen aynıdır, tek fark, başka bir özel üstbilgi Cookie
yerine üstbilgiyi kullanmasıdır Authorization
. Sunucu tarafında çerez değeri eklenmiş bir oturum olmasaydı, bu neden bir fark yaratsın ki? Sunucu RESTful davrandığı sürece sunucu tarafı uygulamasının istemciyi ilgilendirmesi gerekmez . Bu nedenle, çerezler kendi başlarına bir API RESTless yapmamalıdır ve oturumlar sadece istemciye çerezlerdir.
Varsayımlarım yanlış mı? Oturum çerezlerini RESTless yapan nedir ?