Stateless - Tidak ada memori (status) yang dikelola oleh program
Stateful - Program memiliki memori (status)
Untuk menggambarkan konsep negara saya akan mendefinisikan fungsi yang stateful dan yang stateless
Tanpa kewarganegaraan
//The state is derived by what is passed into the function
function int addOne(int number)
{
return number + 1;
}
Stateful
//The state is maintained by the function
private int _number = 0; //initially zero
function int addOne()
{
_number++;
return _number;
}
Seperti yang orang lain katakan, http pada dasarnya tidak bernegara. Jadi status harus dibangun ke dalam aplikasi Anda.
Bayangkan permintaan melalui web di mana Anda memiliki browser klien yang berkomunikasi dengan proses server. Untuk mempertahankan status melalui protokol http stateless, browser akan mengirim biasanya mengirim pengidentifikasi sesi ke server pada setiap permintaan. Untuk setiap permintaan server akan seperti "ah, ini orangnya". Informasi negara kemudian dapat dilihat dalam memori sisi server atau dalam database berdasarkan id sesi ini.
Dalam lingkungan yang murni tanpa kewarganegaraan, Anda tidak memerlukan id sesi ini. Setiap permintaan akan berisi semua informasi yang perlu diproses oleh server. Tetapi banyak aplikasi perlu mempertahankan status untuk melacak apakah suatu sesi diautentikasi untuk melihat konten tertentu atau untuk melacak apa yang dilakukan pengguna. Anda tidak ingin mengirim kredensial pengguna melalui kawat untuk setiap permintaan.