ไร้สัญชาติ - ไม่มีหน่วยความจำ (สถานะ) ที่ดูแลโดยโปรแกรม
Stateful - โปรแกรมมีหน่วยความจำ (สถานะ)
เพื่อแสดงให้เห็นถึงแนวคิดของรัฐฉันจะกำหนดฟังก์ชั่นที่statefulและหนึ่งที่ไร้สัญชาติ
ไร้สัญชาติ
//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;
}
อย่างที่คนอื่นบอกว่า http นั้นไร้สัญชาติโดยเนื้อแท้ ดังนั้นสถานะจะต้องสร้างขึ้นในแอปพลิเคชันของคุณ
ลองนึกภาพคำขอผ่านทางเว็บที่คุณมีเบราว์เซอร์ลูกค้าสื่อสารกับกระบวนการเซิร์ฟเวอร์ เพื่อรักษาสถานะผ่านโปรโตคอล http ไร้สัญชาติเบราว์เซอร์จะส่งโดยทั่วไปจะส่งตัวระบุเซสชันไปยังเซิร์ฟเวอร์ในแต่ละคำขอ สำหรับคำขอแต่ละครั้งเซิร์ฟเวอร์จะเป็น "อามันเป็นคนนี้" สามารถค้นหาข้อมูลสถานะในหน่วยความจำฝั่งเซิร์ฟเวอร์หรือในฐานข้อมูลโดยยึดตามรหัสเซสชันนี้
ในสภาพแวดล้อมที่ไร้สัญชาติอย่างแท้จริงคุณไม่จำเป็นต้องใช้รหัสเซสชันนี้ แต่ละคำขอจะมีข้อมูลทั้งหมดที่เซิร์ฟเวอร์จะต้องดำเนินการ แต่แอปพลิเคชันจำนวนมากจำเป็นต้องรักษาสถานะเพื่อติดตามว่าเซสชันนั้นได้รับการรับรองความถูกต้องเพื่อดูเนื้อหาบางอย่างหรือเพื่อติดตามสิ่งที่ผู้ใช้กำลังทำอยู่ คุณไม่ต้องการที่จะส่งข้อมูลประจำตัวของผู้ใช้มากกว่าลวดสำหรับแต่ละคำขอ