با سلام و احترام سوالم اینه که تفاوت session و token در چی هست؟ آیا کاربرد هر دو یکسان هست؟ و این که اگر کاربردشوت یکی هست استفاده از کدوم مورد بهتره؟
با تشکر.
سلام سروش جان وقتت بخیر ، در مرحله اول هم از شما و هم از استاد محترم عذر میخوام که بنده دارم پاسخ میدم . سروش اگه بخوام طبق فرمایشات استاد و مقاله هایی که از Brian Iyoha و Sherry Hsu خوندم برات توضیح بدم .
session: زمانی که کاربر وارد سیستم میشه ، سرور بلافاصله طبق state کاربر (منظورم اون پیمایش هایی که توی سایت انجام میده) میاد براش session ایجاد میکنه این session سمت سرور و داخل یک حافظه (همون حافظه ای که استاد درباره ش صحبت کردن) ذخیره میشه و برای اینکه sessionها باهم قاطی نشن (چون ممکنه چندی کاربر وارد سایت بشه ) بهشون یه SessionID داخل cookie سمت مرورگر کاربر اختصاص داده میشه که مشخص بشه کدوم session برای کدوم کاربره ( اینم میدونی دیگه برای چیه؟ برای stateless بودن http هست )
Token: در این حالت state کاربر میاد سمت client ذخیره میشه و طبق مقاله ای که خوندم گفته که یه روش برتری هست توی APIهای RESTful چون تمامی data کاربر بصورت رمزنگاری شده داخل یک JWT یا همون Json Web Token ( که خداکنه سرفصلش باشه توی دوره ) سمت کاربر (که درواقع اغلب داخل localStorage هست) ذخیره میشه و به عنوان یک header ارسال میکنه برای requestهای بعدی. و در نهایت سرور هم میاد اون JWT رو دریافت و اعتبار سنجی میکنه قبل از اینکه response ی رو بفرسته سمت client. و یک مشکلی که JWT دراه حجم بالای اون نسبت به sessionID هست که اونم بخاطر اینه که JWT اطلاعات بیشتری از کاربر داخلش قرار میگیره
درنهایت بخوام نتیجه گیری کنم ، هردو بزرگوار پیشنهاد دادن که برای ایجاد web applicationهای مدرن بهتره از Token استفاده کنید .