کتابخانه‌ی استاندارد · شبکه

نشست اچ‌تی‌تی‌پی شبکه net/http/session

نشست کاربر با کوکی: نگه داشتن داده میان درخواست‌ها و توکن CSRF.

واردسازی شبکه.اچ تی تی پی شبکه.نشست اچ‌تی‌تی‌پی شبکه

نشست داده‌ی هر کاربر را روی سرور نگه می‌دارد و فقط یک شناسه‌ی تصادفی را در کوکی به مرورگر می‌دهد. در گرداننده، شروع نشست کاربر را پیدا می‌کند یا تازه می‌سازد؛ پس از تغییر مقدارها ذخیره را صدا بزنید.

پس از ورود کاربر، بازتولید شناسه را عوض کند تا شناسه‌ی قبلی به کار نیاید. داده‌ها در حافظه‌ی همان فرایند نگه داشته می‌شوند و با راه‌اندازی دوباره پاک می‌شوند.

گونه‌ها

داده نشست SessionData

ساختار داده نشست
کلیدها و مقدارهای نشست.
نامانگلیسیگونهتوضیح
itemsitemsنگاشت<رشته، رشته>مقدارها.
net-http-session-Session.salam
واردسازی شبکه.اچ تی تی پی شبکه
واردسازی شبکه.اچ تی تی پی شبکه.نشست اچ‌تی‌تی‌پی شبکه
واردسازی شبکه.مسیریاب شبکه
واردسازی تبدیل

روال بازدید(ز: صحیح۶۴):
    ناپایا ن := نشست اچ‌تی‌تی‌پی شبکه.شروع(ز)
    ناپایا شمار := ۱
    اگر نشست اچ‌تی‌تی‌پی شبکه.مقدار دارد(ن، "visits"):
        شمار = تبدیل.رشته به عدد(نشست اچ‌تی‌تی‌پی شبکه.مقدار(ن، "visits")) + ۱
    پایان
    نشست اچ‌تی‌تی‌پی شبکه.تنظیم مقدار(ن، "visits"، "" + شمار)
    نشست اچ‌تی‌تی‌پی شبکه.ذخیره(ن)
    اچ تی تی پی شبکه.متن زمینه(ز، "بازدید " + شمار)
پایان

روال ورود(ز: صحیح۶۴):
    ناپایا ن := نشست اچ‌تی‌تی‌پی شبکه.شروع(ز)
    نشست اچ‌تی‌تی‌پی شبکه.بازتولید(ز، ن)
    نشست اچ‌تی‌تی‌پی شبکه.تنظیم مقدار(ن، "user"، "ali")
    توکن := نشست اچ‌تی‌تی‌پی شبکه.توکن سی اس آر اف(ن)
    نشست اچ‌تی‌تی‌پی شبکه.ذخیره(ن)
    اچ تی تی پی شبکه.متن زمینه(ز، "" + نشست اچ‌تی‌تی‌پی شبکه.تایید سی اس آر اف(ن، توکن) + " " + نشست اچ‌تی‌تی‌پی شبکه.تایید سی اس آر اف(ن، "x"))
پایان

روال خروج(ز: صحیح۶۴):
    نشست اچ‌تی‌تی‌پی شبکه.پایان(ز)
    اچ تی تی پی شبکه.متن زمینه(ز، "خداحافظ")
پایان

روال ریشه:
    نشست اچ‌تی‌تی‌پی شبکه.پیکربندی("sid"، ۳۶۰۰، نادرست، "Lax")
    ناپایا م := مسیریاب شبکه.مسیریاب جدید()
    مسیریاب شبکه.دریافت(م، "/"، بازدید)
    مسیریاب شبکه.ارسال(م، "/login"، ورود)
    مسیریاب شبکه.ارسال(م، "/logout"، خروج)
    ناپایا س := اچ تی تی پی شبکه.سرور جدید(۱۹۶۰۶)
    اچ تی تی پی شبکه.استفاده(س، م)
    _ := اچ تی تی پی شبکه.اجرا در پس زمینه(س)
    ناپایا ک := اچ تی تی پی شبکه.کارخواه جدید()
    پایه := "http://127.0.0.1:19606"
    سرچاپ اچ تی تی پی شبکه.بدنه(ک.دریافت(پایه + "/"))
    سرچاپ اچ تی تی پی شبکه.بدنه(ک.دریافت(پایه + "/"))
    سرچاپ اچ تی تی پی شبکه.بدنه(ک.ارسال(پایه + "/login"، ""))
    سرچاپ اچ تی تی پی شبکه.بدنه(ک.دریافت(پایه + "/"))
    سرچاپ اچ تی تی پی شبکه.بدنه(ک.ارسال(پایه + "/logout"، ""))
    سرچاپ اچ تی تی پی شبکه.بدنه(ک.دریافت(پایه + "/"))
    ناپایا ن := نشست اچ‌تی‌تی‌پی شبکه.جدید()
    نشست اچ‌تی‌تی‌پی شبکه.تنظیم مقدار(ن، "a"، "1")
    نشست اچ‌تی‌تی‌پی شبکه.تنظیم مقدار(ن، "b"، "2")
    سرچاپ نشست اچ‌تی‌تی‌پی شبکه.حذف مقدار(ن، "a")، ن.data.items.اندازه()
    نشست اچ‌تی‌تی‌پی شبکه.ذخیره(ن)
    ناپایا یافت := نادرست
    ب := نشست اچ‌تی‌تی‌پی شبکه.دریافت(ن.id، یافت)
    سرچاپ یافت، نشست اچ‌تی‌تی‌پی شبکه.مقدار(ب، "b")، ب.max_age، ن.id.طول() > ۰
    نشست اچ‌تی‌تی‌پی شبکه.پاک کردن مقادیر(ن)
    نشست اچ‌تی‌تی‌پی شبکه.نابودسازی(ن.id)
    _ := نشست اچ‌تی‌تی‌پی شبکه.دریافت(ن.id، یافت)
    سرچاپ یافت، نشست اچ‌تی‌تی‌پی شبکه.پاکسازی منقضی شده ها() >= ۰
    سرچاپ نشست اچ‌تی‌تی‌پی شبکه.نام پیش فرض کوکی، نشست اچ‌تی‌تی‌پی شبکه.حداکثر عمر پیش فرض
پایان
خروجیبازدید 1 بازدید 2 true false بازدید 3 خداحافظ بازدید 1 true 1 true 2 3600 true false true salam_sid 86400

نشست Session

ساختار نشست
نشست یک کاربر.
نامانگلیسیگونهتوضیح
ididرشته = ""شناسه‌ی تصادفی که در کوکی است.
datadataداده نشستداده‌های نشست.
created_atcreated_atصحیح۶۴ = 0زمان ساختن.
last_seenlast_seenصحیح۶۴ = 0آخرین استفاده.
max_agemax_ageصحیح = 0عمر نشست بر حسب ثانیه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

پایاها و متغیرها

نام پیش فرض کوکی DefaultCookieName

پایا نام پیش فرض کوکی: رشته = "salam_sid"
نام پیش‌فرض کوکی نشست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

حداکثر عمر پیش فرض DefaultMaxAge

پایا حداکثر عمر پیش فرض: صحیح۳۲ = 86400
عمر پیش‌فرض: یک روز.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

روال‌ها

پیکربندی Configure

روال پیکربندی(cookie_name: رشته، max_age_seconds: صحیح، secure: منطقی، same_site: رشته)
نام کوکی، عمر، فقط‌HTTPS بودن و SameSite را برای همه‌ی نشست‌ها تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

پاکسازی منقضی شده ها CleanupExpired

روال پاکسازی منقضی شده ها(): صحیح
نشست‌های منقضی را پاک می‌کند و تعدادشان را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

جدید New

روال جدید(): نشست
نشست تازه با شناسه‌ی تصادفی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

دریافت Get

روال دریافت(id: رشته، ok &: منطقی): نشست
نشست را با شناسه پیدا می‌کند؛ اگر نباشد یا منقضی شده باشد، ok نادرست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

ذخیره Save

روال ذخیره(s: نشست)
نشست را ذخیره می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

نابودسازی Destroy

روال نابودسازی(id: رشته)
نشست را با شناسه پاک می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

مقدار Value

روال مقدار(s: نشست، key: رشته): رشته
مقدار یک کلید؛ اگر نباشد، رشته‌ی خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

مقدار دارد HasValue

روال مقدار دارد(s: نشست، key: رشته): منطقی
اگر کلید باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

تنظیم مقدار SetValue

روال تنظیم مقدار(s &: نشست، key: رشته، value: رشته)
مقدار کلید را تنظیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

حذف مقدار DeleteValue

روال حذف مقدار(s &: نشست، key: رشته): منطقی
کلید را برمی‌دارد و می‌گوید بود یا نه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

پاک کردن مقادیر ClearValues

روال پاک کردن مقادیر(s &: نشست)
همه‌ی مقدارها را پاک می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

شروع Start

روال شروع(h: صحیح۶۴): نشست
نشست کاربر این درخواست را از کوکی پیدا می‌کند یا تازه می‌سازد و کوکی را تنظیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

پایان End

روال پایان(h: صحیح۶۴)
نشست را پاک می‌کند و کوکی را در مرورگر منقضی می‌کند؛ برای خروج.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

بازتولید Regenerate

روال بازتولید(h: صحیح۶۴، s &: نشست)
به نشست شناسه‌ی تازه می‌دهد و شناسه‌ی قبلی را باطل می‌کند؛ پس از ورود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

توکن سی اس آر اف CSRFToken

روال توکن سی اس آر اف(s &: نشست): رشته
توکن CSRF نشست را برمی‌گرداند و اگر نباشد، می‌سازد؛ آن را در فرم‌ها بگذارید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam

تایید سی اس آر اف CSRFVerify

روال تایید سی اس آر اف(s: نشست، token: رشته): منطقی
اگر توکن با توکن نشست یکی باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-http-session-Session.salam