์น ๋ธ๋ผ์ฐ์ ์์ ๋ก์ปฌ์ ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์ญ์ธ ์ฟ ํค!..
์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ํ๋ฅผ ์ ์งํ๊ณ ์ถ์ ํ๊ธฐ ์ํด ์ฌ์ฉ์ ํ๋๋ฐ, ์ฌ๋ฌ ๊ฐ์ง ์ต์ ์ด ์๋ค.
๊ทธ์ค ์ ํจ๊ธฐ๊ฐ์ ๋ํ ์ต์ ์ ์ดํด๋ณด๋ ค๊ณ ํ๋ค.
๋ณดํต ์ฟ ํค๊ฐ ์ธ์ ๊น์ง ์ ํจํ์ง ์ค์ ๋์ด ์์ง ์์ผ๋ฉด, ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ ๋ ์ฟ ํค๋ ํจ๊ป ์ฌ๋ผ์ง๋ค. ์ด๋ฐ ์ฟ ํค๋ฅผ ์ธ์ ์ฟ ํค๋ผ๊ณ ํ๋ค.
๊ทธ๋ผ ์ฟ ํค์ ์ ํจ๊ธฐ๊ฐ์ ์ด๋ป๊ฒ ์ค์ ํ ๊น? ๐ค
MaxAge
MaxAge ์ต์ ์ ์ฟ ํค์ ๋ง๋ฃ๊ธฐ๊ฐ์ ์ค์ ํ ๋ ์ฌ์ฉํ๋ค.
ํ์ฌ๋ถํฐ ๋ง๋ฃ๊ธฐ๊ฐ๊น์ง์ ๋ธ๋ผ์ฐ์ ์์ ์ ์ง๋๋ ์๊ฐ์ ์ด ๋จ์๋ก ์ค์ ํ๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด Max-Age=3600
์ด๋ผ๊ณ ํ๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ ํ 1์๊ฐ ๋์ ์ ์ง๋๋ค.
Set-Cookie: id=a3fWa; Max-Age=3600; Path=/
0์ด๋ ์์๊ฐ์ ์ค์ ํ๋ฉด ์ฟ ํค๋ ๋ฐ๋ก ์ญ์ ๋๋ค.
// 1์๊ฐ ๋ค์ ์ฟ ํค๊ฐ ์ญ์ ๋ฉ๋๋ค.
document.cookie = "user=John; max-age=3600";
// ๋ง๋ฃ ๊ธฐ๊ฐ์ 0์ผ๋ก ์ง์ ํ์ฌ ์ฟ ํค๋ฅผ ๋ฐ๋ก ์ญ์ ํจ
document.cookie = "user=John; max-age=0";
Expires
Expires ์ต์
์ ์ฟ ํค์ ์ ํจ์ผ์๋ฅผ ์ค์ ํ๋ค. ๋ ์ง/์๊ฐ
๊ฐ์ผ๋ก ์ง์ ์ด ๋๋ค.expires=Wed, 21 Oct 2023 07:28:00 GMT
๋ก ์ง์ ์ด ๋์์ ๋, ํด๋น ๋ ์ง์ ์๊ฐ์ ์ฟ ํค๊ฐ ๋ง๋ฃ๋๋ค.
expires๋ ๋ฐ๋์ GMT(Greenwich Mean Time) ํฌ๋งท์ผ๋ก ์ค์ ์ด ๋์ด์ผ ํ๋ค.
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2023 07:28:00 GMT; Path=/
์๋ฐ์คํฌ๋ฆฝํธ์์๋ date.toUTCString
๋ฉ์๋๋ก ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค.
// ์ง๊ธ์ผ๋ก๋ถํฐ ํ๋ฃจ ํ
let date = new Date(Date.now() + 86400e3);
date = date.toUTCString();
document.cookie = "user=John; expires=" + date;
๊ทธ๋ผ MaxAge์ Expires ๋ ๋ค ์ฟ ํค์ ๋ง๋ฃ๊ธฐํ์ ๋ํ ์ค์ ์ต์ ์ธ๋ฐ ์ฐจ์ด๊ฐ ์์๊น? ๐ค
MaxAge
- ์๋์ ์ธ ์๊ฐ์ ์ฌ์ฉ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์๊ฐ ์ฐจ์ด์ ์ํฅ์ ๋ฐ์ง ์๋๋ค
Expires
- ํน์ ์๊ฐ๋๋ก ์ค์ ๋์ด ์์
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์๊ฐ ์ฐจ์ด๊ฐ ์๊ธธ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์
์ด ์ธ์๋ HTTPS๋ก ํต์ ํ๋ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์กํ๋ secure
๋ฑ ๋ค์ํ ์ต์
์ด ์๋ ๊ฒ ๊ฐ๋ค.
์ถ์ฒ
'๐ Studying > CS & Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ธ๋ผ์ฐ์ ์ ์ฅ์ (Local/Session Storage, Cookie) (0) | 2023.03.31 |
---|---|
HTTP์ HTTP์ ๋ฉ์ธ์ง ๊ตฌ์กฐ (0) | 2023.03.30 |
ํ๋ก ํธ์๋์์์ ์บ์ (0) | 2023.03.29 |
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด์ (0) | 2023.03.29 |
RESTful API (0) | 2023.03.27 |
Comment