171121 Cookie & Session - RYUDONGJIN/Memo_wiki GitHub Wiki

Cookie

  • ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„๋กœ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„ ์ธก์—์„œ๋Š” ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์›น๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ตํ•œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„๋Š” ์›น๋ธŒ๋ผ์šฐ์ €์™€์˜ ๊ด€๊ณ„๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์›น๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต ํ›„ ๊ด€๊ณ„๋ฅผ ๋Š๋Š” ๊ฒƒ์€ httpํ”„๋กœํ† ์ฝœ์˜ ํŠน์ง•

์ฟ ํ‚ค๋ž€ : ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ์„ ๋–„ ์–ด๋–ค ์ •๋ณด๋ฅผ ์ง€์†์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ

  • ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•˜์—ฌ, ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํด๋ผ์ด์–ธํŠธ ์ธก์— ํŠน์ • ์ •๋ณด๋ฅผ ์ €์žฅ
  • ์„œ๋ฒ„์— ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ์ฟ ํ‚ค์˜ ์†์„ฑ๊ฐ’์„ ์ฐธ์กฐ ๋˜๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฟ ํ‚ค๋Š” 4kb๋กœ ์šฉ๋Ÿ‰์ด ์ œํ•œ / 300๊ฐœ๊นŒ์ง€ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ.

์ฟ ํ‚ค ์ƒ์„ฑ(Cookie class) -> ์†์„ฑ ์„ค์ •(setter) -> response๊ฐ์ฒด์— ์ฟ ํ‚ค ํƒ‘์žฌ(response.addCookie())

* setMaxAge() : ์ฟ ํ‚ค ์œ ํšจ๊ธฐ๊ฐ„์„ ์„ค์ •
* setPath() : ์ฟ ํ‚ค์‚ฌ์šฉ์˜ ์œ ํšจ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์„ค์ •
* setValue() : ์ฟ ํ‚ค์˜ ๊ฐ’์„ ์„ค์ •
* setVersion() : ์ฟ ํ‚ค ๋ฒ„์ „์„ ์„ค์ •
* getMaxAge() : ์ฟ ํ‚ค ์œ ํšจ๊ธฐ๊ฐ„ ์ •๋ณด๋ฅผ ์–ป๋Š”๋‹ค
* getName() : ์ฟ ํ‚ค ์ด๋ฆ„์„ ์–ป๋Š”๋‹ค
* getPath() : ์ฟ ํ‚ค ์‚ฌ์šฉ์˜ ์œ ํšจ ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ณด๋ฅผ ์–ป๋Š”๋‹ค
* getValue() : ์ฟ ํ‚ค์˜ ๊ฐ’์„ ์–ป๋Š”๋‹ค
* getVersion() : ์ฟ ํ‚ค ๋ฒ„์ „์„ ์–ป๋Š”๋‹ค

Session

  • ์„œ๋ฒ„์™€์˜ ๊ด€๊ณ„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ.
  • ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ํด๋ผ์ด์–ธํŠธ์˜ ํŠน์ • ์œ„์น˜์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์„œ๋ฒ„์ƒ์— ๊ฐ์ฒด๋กœ ์กด์žฌ
  • ์„ธ์…˜์€ ์„œ๋ฒ„์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ, ๋ณด์•ˆ์ด ์ข‹๊ณ  ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ํ•œ๊ณ„๊ฐ€ ์—†์Œ.

ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ(Web Browser) -> session ์ž๋™ ์ƒ์„ฑ -> Session ์†์„ฑ ์„ค์ • (session) ๋‚ด๋ถ€ ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ ์ด์šฉ

* setAttribute() : ์„ธ์…˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
* getAttribute() : ์„ธ์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค
* getAttributeNames() : ์„ธ์…˜์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ์˜ ์ด๋ฆ„(์œ ๋‹ˆํฌํ•œ ํ‚ค๊ฐ’)์„ Enumeration ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ๋ฆฌํ„ด
* getId() : ์ž๋™ ์ƒ์„ฑ๋œ ์„ธ์…˜์˜ ์œ ๋‹ˆํฌํ•œ ์•„์ด๋””๋ฅผ ์–ป๋Š”๋‹ค.
* isNew() : ์„ธ์…˜์ด ์ตœ์ดˆ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€, ์ด์ „์— ์ƒ์„ฑ๋œ ์„ธ์…˜์ธ์ง€๋ฅผ ๊ตฌ๋ถ„
* setMaxInactiveInterval() : ์„ธ์…˜์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์„ธ์…˜ ์œ ์ง€์‹œ๊ฐ„์„ ์ดˆ๋‹จ์œ„๋กœ ์„ค์ •
* getMaxInactiveInterval() : ์„ธ์…˜์˜ ์œ ํšจ์‹œ๊ฐ„์„ ์–ป๋Š”๋‹ค. ๊ฐ€์žฅ ์ตœ๊ทผ ์š”์ฒญ์‹œ์ ์„ ๊ธฐ์ค€์œผ๋กœ ์นด์šดํŠธ
* removeAttribute() : ์„ธ์…˜์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐ
* invalidate() : ์„ธ์…˜์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ
* getCreationTime() : ํ˜„์žฌ ์„ธ์…˜์ด ์ƒ์„ฑ๋œ ์‹œ๊ฐ„๊นŒ์ง€ ๊ฒฝ๊ณผํ•œ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฆฌํ„ด