ð 1. ã¯ããã«
Webã¢ããªã«æ¬ ãããªãä»çµã¿ããããã解説ïŒ
Webã¢ããªãåŠã¶ãšå¿
ãç»å Žãã ã»ãã·ã§ã³ïŒSessionïŒã
ãããæåã¯ã€ã¡ãŒãžãæŽã¿ã«ããã§ãããã
ãã®èšäºã§ã¯ãåå¿è ã§ãåããããã«ã»ãã·ã§ã³ã® ã€ã¡ãŒãžå³ïŒMermaidïŒïŒå®éã®ãããŒå³ïŒMermaidïŒ ã䜿ã£ãŠãã»ãã·ã§ã³ãšã¯äœããããã£ããçè§£ã§ããããã«èª¬æããŸãã
ð§© 2. ãªãã»ãã·ã§ã³ãå¿ èŠãªã®ãïŒ
WebãåããHTTP㯠ã¹ããŒãã¬ã¹ïŒç¶æ ãèŠããªãïŒ ããããã°ã€ã³ããŠã次ã®ããŒãžã§ãµãŒããŒã¯èŠããŠããŸããã
ããã§ãµãŒããŒåŽã¯ ã»ãã·ã§ã³ ã䜿ãããšã§ããµãŒããŒåŽãã誰ããããã°ã€ã³æžã¿ãããšãã£ãç¶æ
ãä¿æã§ããããã«ãªããŸãã
ã€ãŸãç¶æ
ããµãŒããŒåŽã«ä¿åãããŠãŒã¶ãŒãšçŽä»ããä»çµã¿ïŒã»ãã·ã§ã³ãšãªããŸãã
ð 3.ãMermaidå³è§£ãã»ãã·ã§ã³ã®ã€ã¡ãŒãž
ã»ãã·ã§ã³ã®ã€ã¡ãŒãžã Mermaidã®ã¯ã©ã¹å³é¢š ã§ãããããã衚çŸãããšãããªããŸãã
ãã€ã³ãïŒ
-
ãã©ãŠã¶ã«ä¿åãããã®ã¯ sessionidã ã
-
ã»ãã·ã§ã³ã®æ¬äœïŒãŠãŒã¶ãŒæ å ±ãªã©ïŒã¯ å šãŠãµãŒããŒã«ä¿å
ããããã»ãã·ã§ã³ã¯å®å šããšèšãããçç±
ð 4. ã»ãã·ã§ã³ã¯ã©ãã«ä¿åãããïŒ
ã»ãã·ã§ã³æ¬äœã¯ãµãŒããŒåŽã«ä¿åãããŸãã
ä¿åãããå Žæã®äŸïŒ
-
ã¡ã¢ãªïŒRedisïŒ
-
ããŒã¿ããŒã¹ïŒPostgreSQL / MySQLïŒ
-
ãã¡ã€ã«ïŒDjangoããã©ã«ãïŒ
-
ãã£ãã·ã¥ã¹ãã¢
ðŠ 5. ã©ããªããŒã¿ãæã£ãŠããïŒ
ã»ãã·ã§ã³ã«å ¥ãããŒã¿ã¯ãŠãŒã¶ãŒã®ãç¶æ ãã
äŸïŒ
{
"user_id": 42,
"login": true,
"cart": ["item01", "item02"],
"lang": "ja"
}
äž»ãªçšéïŒ
-
ãã°ã€ã³ç¶æ
-
ã«ãŒãæ å ±
-
èšèªèšå®
-
äžæããŒã¿ããªã©
ð 6. ã©ããªãããã³ã«ã§éä¿¡ããïŒ
ã»ãã·ã§ã³ã§ãéä¿¡èªäœã¯ HTTP / HTTPS ã§ãã
ãã©ãŠã¶ãéãã®ã¯ Cookie: sessionid=xxx ã ãã
ãµãŒããŒã¯ãã®IDããã»ãã·ã§ã³ã¹ãã¢ã®ããŒã¿ãåãåºããŸãã
ð 7. ã»ãã·ã§ã³ã®ãããŒå³ïŒå®å šçïŒ
ð§Ÿ 8. Cookie ãš ã»ãã·ã§ã³ã®éãïŒè¶ éèŠïŒ
| é ç® | Cookie | Session |
|---|---|---|
| ä¿åå Žæ | ãã©ãŠã¶ | ãµãŒã㌠|
| ã»ãã¥ãªã㣠| æ¹ãããªã¹ã¯ãã | æ¬äœããµãŒããŒãªã®ã§å®å š |
| éä¿¡å 容 | Cookieæ¬äœ | sessionidã®ã¿ |
| çšé | 軜ãããŒã¿ | ãã°ã€ã³æ å ±ãªã©éèŠããŒã¿ |
â ïž 9. Cookie ã䜿ããã«ã»ãã·ã§ã³ãéçšã§ããã®ã¯ 1 å°æ§æã®ãšãã ã
ã»ãã·ã§ã³IDãéãæ¹æ³ã¯ Cookie 以å€ã«ããããŸãïŒ
-
URLãã©ã¡ãŒã¿
-
hidden input
-
POSTããã£
ãªã©ãæè¡çã«ã¯å¯èœã§ãã
ããããããæç«ããã®ã¯ åäžãµãŒããŒæ§æã®å Žåã ã ã§ãã
ãªãè€æ°ãµãŒããŒã§æ§æãããå Žåã®å³è§£ã¯ãã¡ã
âš 10. ãŸãšã
ã»ãã·ã§ã³ã¯ãWebã¢ããªã«ãããããŠãŒã¶ãŒã®ç¶æ
ãä¿æããããã®ä»çµã¿ãã§ãã
HTTP ã¯æ¬æ¥ ãã¹ããŒãã¬ã¹ïŒèšæ¶ããªãïŒã ããããã®ãŸãŸã§ã¯ãã°ã€ã³ç¶æ
ãç¶æããããšããã§ããŸããã
ããã§ç»å Žããã®ã ã»ãã·ã§ã³ID ïŒ ã»ãã·ã§ã³ã¹ã㢠ãšããä»çµã¿ã§ãã
åäžãµãŒããŒã§ã¯ãµãŒããŒå ã¡ã¢ãªã«ä¿åããã ãã§ãåãããã©ãè€æ°ãµãŒããŒæ§æã«ãªããš Cookie ã«ããã»ãã·ã§ã³IDã®ä¿æãå¿ é
ã»ãã·ã§ã³ã®äžèº«ã¯ãµãŒããŒéã§å ±æãããRedis ãªã©ã®ã¹ãã¢ãå ±éã®ä¿åå ãšãªããšããæµããçè§£ã§ããã°ãã»ãã·ã§ã³ã®ä»çµã¿ã¯ã»ãŒå®ç§ã§ãã
ãŸããæè¿ã¯ JWTïŒJSON Web TokenïŒ ã䜿ã£ãã»ãã·ã§ã³ã¬ã¹èªèšŒãåºãå©çšãããŠããŸãã
ãããããã®å Žåã§ã Cookieã»ã»ãã·ã§ã³ã¹ãã¢æ¹åŒã®çè§£ã¯ãšãŠãéèŠã§ã
ã©ã¡ãã®æ¹åŒãèªåã®ã¢ããªã«åã£ãŠããã ã倿ããåºç€ã«ãªããŸãã
ã»ãã·ã§ã³ã¯é£ãããã«èŠããŠãå®éã¯ãéµïŒã»ãã·ã§ã³IDïŒãšå庫ïŒã»ãã·ã§ã³ã¹ãã¢ïŒããšããã·ã³ãã«ãªçºæ³ã§ãã
ãã®èšäºããããªãã®çè§£ãåŸæŒãã§ããã°å¬ããã§ãã
ð¯ 11. æåŸã«
æåŸãŸã§ã芧ããã ããããããšãããããŸãããããããåŒãç¶ãèšäºãæçš¿ããŸãã®ã§ãå¿æŽããŠãããããšå¬ããã§ãã
ä»ã®èšäºããããããã°ããé£çµ¡ããã ãããšå¹žãã§ããããããããããããé¡ãããŸãã