💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Soroosh
تفاوت session و token:
محسن محمدی رهنما حل شده توسط محسن محمدی رهنما

با سلام و احترام سوالم اینه که تفاوت 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 استفاده کنید .

امیدوارم تونسته باشم کمکت کنم . پیروز و موفق باشی

بهترین پاسخ
محسن محمدی رهنما ۲۴ اردیبهشت ۱۳۹۹، ۰۷:۴۲