HTTP ํ๋กํ ์ฝ์ Connectionless Protocol
์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๊ด๊ณ๋ฅผ ์ ์งํ๋ ์น์๋น์ค์ HTTP ํ๋กํ ์ฝ์์๋ Connectionless Protocol ์ด๋ผ๋ ๊ท์น์ด ์๋ค.
ํ ๋ฒ์ ์์ฒญ์ ๋ํด์ ์๋ตํ ํ ๋ฐ๋ก ์ฐ๊ฒฐ์ ํด์ ํ๋ ๊ฒ์ด Connectionless Protocol ์ธ๋ฐ, ์ค์ ์์ฒญ์ด ๋ช ์ฒ, ๋ช ๋ง๊ฐ๋๋ ์น ์๋น์ค์์๋ ์์ฒญ์ ๊ทธ๋๊ทธ๋ ํด์ ํ์ง ์๊ณ ์ ์งํ๊ฒ ๋๋ฉด ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ธ์ ๊ณผ ์ฟ ํค
Connectionless Protocol๋ก ์ธํด ์๋ฒ์ ๊ณผ๋ถํ๋ฅผ ๋ง์ ์๋ ์์ง๋ง, ๋ก๊ทธ์ธ, ์ํ์ ์ฃผ๋ฌธ ์์ฒญ ๋ฑ ์ ๋ณด๊ฐ ์ ์ง๋์ด์ผ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํ์ด ์ด๋ ค์์ง๋ค.
๊ทธ๋ฌํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด, Connectionless Protocol์ ์งํค๊ณ ์์์ ํจ์จ์ ๊ด๋ฆฌ์ ์ ๋ณด ์ ์ง๋ฅผ ์ํด ์ธ์
๊ณผ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ค.
์ธ์ : ์๋ฒ์์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๊ด๋ฆฌ (๋ณด์์ ๋ ๊ฐํ๊ณ ๋ง์ด ์ฐ์)
์ฟ ํค : ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๊ด๋ฆฌ (์ธ์ ๋ณด๋ค ๋น๊ต์ ๊ฐ๋จํ๊ณ , ์๋ฒ์ ๋ถํ๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ)
์คํ๋ง์์์ ์ธ์ ์ฌ์ฉ
1. HttpServletRequest๋ฅผ ์ด์ฉํด์ ์ธ์ ์ ๋ฐ์
์ปจํธ๋กค๋ฌ์์ HttpServletRequest request๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๋ค,
HttpServletRequest session = request.getSession();
// ์ธ์
์ ์์ฑ์ ์ถ๊ฐ
session.setAttribute("SessionName", SessionValue); // ์์ฑ ์ด๋ฆ, ์์ฑ ๊ฐ
// ์ธ์
์ ์์ฑ ์ด๋ฆ๊ณผ ์์ฑ ๊ฐ์ ๋ฃ์
2. HttpSession -> ํ๋ผ๋ฏธํฐ๋ก HttpSession์ ๋ฐ๋ก ๋ฐ์์ ์ธ์ ์ ์ฌ์ฉํจ
์ปจํธ๋กค๋ฌ์ ํ๋ผ๋ฏธํฐ์ HttpSession๋ก ๋ฐ๋ก ์ธ์
์ ๋ฐ์์ค๋ฉด, request.getSession() ์์ด
๋ฐ๋ก session.setAttribute("SessionValueName", SessionValue); ์ ์ฌ์ฉํ ์ ์๋ค.
3. ์ธ์ ์ญ์ (๋ก๊ทธ์์, ํ์ ํํด ๋ฑ...)
session.invalidate(); // ์ธ์
์ ์์ฑ์ ์ญ์ ํ๋ค.
๋ฐ๋ณต
์๋ฒ๋ก request -> setAttribute -> ์ธ์
์์ฑ ์ ์ฅ -> response -> ๋ค์ request(์ฌ์์ฒญ) -> getAttribute -> ์ธ์
์์ฑ ๋ฐํ -> response
๋ฐ๋ณต
์คํ๋ง์์์ Cookie ์ฌ์ฉ
httpServletResponse์ ์ฟ ํค๋ฅผ ๋ด๋๋ค.
Cookie ExampleCookie = new Cookie("CookieName",CookieValue); // ์ฟ ํค ์ด๋ฆ, ์ฟ ํค ๊ฐ
ExampleCookie.setMaxAge(60*60*24*30);
// ์ฟ ํค์ ์ ํจ ์๊ฐ ์ค์ -> ์ฌ๊ธฐ์ 60*60*24*30์ด ์์ผ๋ก ํ ๋ฌ์ด๋ค.
response.addCookie(ExampleCookie);
// response์ ์ฟ ํค๋ฅผ ๋ด๋๋ค.
@CookieValue ์ด๋ ธํ ์ด์
์คํ๋ง์์๋ @CookieValue์ด๋ผ๋ ์ด๋ ธํ ์ด์ ์ผ๋ก ์์ฑ๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ค.
@CookieValue(value="์ฐพ๋ ์ฟ ํค ์ด๋ฆ", require=false) Cookie cookieName;
// require -> true์ผ ์, value์ ํด๋นํ๋ ๊ฐ์ด ์์ผ๋ฉด ์ต์
์
๋ฐ์
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ๋ง์์ h2 ์ฌ์ฉ (0) | 2022.03.09 |
---|---|
Lombok ์ค์น ๋ฐ ์ค๋ฅ ํด๊ฒฐ (0) | 2022.03.08 |
start.spring.io๋ก ํ๋ก์ ํธ ์์ฑ (0) | 2022.03.08 |
Maven์ ์ญํ (0) | 2022.03.08 |
Spring mvc ์ค๊ณ๊ตฌ์กฐ (0) | 2022.03.05 |