Penafian: Saya baru di sekolah pemikiran REST, dan saya mencoba membungkus pikiran saya dengannya.
Jadi, saya membaca halaman ini, Kesalahan REST Umum , dan saya merasa saya benar-benar bingung dengan sesi yang tidak relevan. Inilah yang dikatakan halaman:
Seharusnya tidak perlu bagi klien untuk "masuk" atau "memulai koneksi." Otentikasi HTTP dilakukan secara otomatis pada setiap pesan. Aplikasi klien adalah konsumen sumber daya, bukan layanan. Karena itu tidak ada yang bisa masuk! Katakanlah Anda memesan penerbangan pada layanan web REST. Anda tidak membuat koneksi "sesi" baru ke layanan. Alih-alih Anda meminta "objek pembuat jadwal" untuk membuat Anda jadwal perjalanan baru. Anda dapat mulai mengisi bagian yang kosong tetapi kemudian mendapatkan beberapa komponen yang sangat berbeda di tempat lain di web untuk mengisi bagian yang kosong lainnya. Tidak ada sesi sehingga tidak ada masalah kondisi sesi migrasi antara klien. Juga tidak ada masalah "afinitas sesi"
Oke, saya mendapatkan bahwa otentikasi HTTP dilakukan secara otomatis pada setiap pesan - tetapi bagaimana caranya? Apakah nama pengguna / kata sandi dikirimkan bersama setiap permintaan? Bukankah itu hanya meningkatkan luas permukaan serangan? Saya merasa seperti kehilangan bagian dari teka-teki.
Apakah buruk untuk memiliki layanan REST, katakanlah,, /session
yang menerima permintaan GET, di mana Anda akan memasukkan nama pengguna / kata sandi sebagai bagian dari permintaan, dan mengembalikan token sesi jika otentikasi berhasil, yang kemudian bisa diteruskan dengan permintaan selanjutnya? Apakah itu masuk akal dari sudut pandang REST, atau apakah itu melewatkan intinya?