-
[HTTP] HTTP, ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ, StateFul, StatelessHTTP 2023. 7. 10. 03:54728x90
HTTP(HyperText Transfer Protocol)
๐ HTTP ๋ฉ์ธ์ง์ ๋ชจ๋ ๊ฒ์ ๋ด์์ ์ ์กํ๋ค.
• HTML, TEXT
• IMAGE, ์์ฑ, ์์, ํ์ผ
• JSON, XML (API)
• ๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ ์ ์ก ๊ฐ๋ฅ
• ์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๋๋ถ๋ถ HTTP ์ฌ์ฉ
• ์ง๊ธ์ HTTP ์๋!!TPC๋ฅผ ์ง์ ์ฐ๊ฒฐํด์ ์ฌ์ฉํ๋๊ฑด ๊ฑฐ์ ์์
๐ป๊ธฐ๋ฐ ํ๋กํ ์ฝ
• TCP ๊ธฐ๋ฐ: HTTP/1.1, HTTP/2
• UDP ๊ธฐ๋ฐ: HTTP/3
• ํ์ฌ HTTP/1.1 ์ฃผ๋ก ์ฌ์ฉ
• HTTP/2, HTTP/3 ๋ ์ ์ ์ฆ๊ฐF12๋ก ํ์ธ
๐ฌ HTTP ํน์ง
• ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
• ๋ฌด์ํ ํ๋กํ ์ฝ(์คํ ์ด์ค๋ฆฌ์ค), ๋น์ฐ๊ฒฐ์ฑ
• HTTP ๋ฉ์์ง
• ๋จ์ํจ, ํ์ฅ ๊ฐ๋ฅ
๐ป 1. ํด๋ผ์ด์ธํธ ์๋ฒ ๊ตฌ์กฐ
• Request Response ๊ตฌ์กฐ
• ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ต์ ๋๊ธฐ
• ์๋ฒ๊ฐ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด์ ์๋ต๊ธฐ์กด์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ถ๋ฆฌ๋์ด ์์ง ์์์
์ง๊ธ์ ๊ฐ๊ฐ ์ญํ ์ด ๋ถ๋ฆฌ๋์๊ธฐ ๋๋ฌธ์ โ ๋ ๋ฆฝ์ ์ผ๋ก ์งํโ ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋ค.
๐ป 2. ๋ฌด์ํ ํ๋กํ ์ฝ
์คํ ์ด์ค๋ฆฌ์ค(Stateless)• ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๋ณด์กดํ์ง ์๋๋ค๋ ๊ฒ
• ์ฅ์ : ์๋ฒ ํ์ฅ์ฑ ๋์(์ค์ผ์ผ ์์)
• ๋จ์ : ํด๋ผ์ด์ธํธ๊ฐ ์ถ๊ฐ ๋ฐ์ดํฐ ์ ์ก๐Stateful, Stateless ์ฐจ์ด
1-1. ์ํ ์ ์ง - Stateful
• ๊ณ ๊ฐ: ์ด ๋ ธํธ๋ถ ์ผ๋ง์ธ๊ฐ์?
• ์ ์: 100๋ง์ ์ ๋๋ค.(์ํ-๋ ธํธ๋ถ ์ํ ์ ์ง)
• ๊ณ ๊ฐ: 2๊ฐ ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์: 200๋ง์ ์ ๋๋ค. ์ ์ฉ์นด๋, ํ๊ธ์ค์ ์ด๋ค ๊ฑธ๋ก ๊ตฌ๋งค ํ์๊ฒ ์ด์?(์ํ-๋ ธํธ๋ถ, ๊ฐฏ์-2๊ฐ ์ ์ง)
• ๊ณ ๊ฐ: ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์: 200๋ง์ ๊ฒฐ์ ์๋ฃ๋์์ต๋๋ค.(๋ ธํธ๋ถ, 2๊ฐ, ์ ์ฉ์นด๋ ์ํ ์ ์ง)1-2. ์ํ ์ ์ง - Stateful, ์ ์์ด ์ค๊ฐ์ ๋ฐ๋๋ค๋ฉด?
• ๊ณ ๊ฐ: ์ด ๋ ธํธ๋ถ ์ผ๋ง์ธ๊ฐ์?
• ์ ์A: 100๋ง์ ์ ๋๋ค.
• ๊ณ ๊ฐ: 2๊ฐ ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์B: ? ๋ฌด์์ 2๊ฐ ๊ตฌ๋งคํ์๊ฒ ์ด์?
• ๊ณ ๊ฐ: ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์C: ? ๋ฌด์จ ์ ํ์ ๋ช ๊ฐ ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ์๊ฒ ์ด์?Stateful์์๋ ์ ์์ด ๋ฐ๋๋ฉด ์ด์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์
= ํญ์ ๊ฐ์ ์๋ฒ๊ฐ ์ ์ง๋์ด์ผ ํ๋ค.
= ์ฐ๊ฒฐํ๋ ์๋ฒ๊ฐ ์ฃฝ์ผ๋ฉด ์ฒ์๋ถํฐ ์์ ์ ๋ค์ ์ํํด์ผ ๋๋ค.
2-1. ๋ฌด์ํ - Stateless
• ๊ณ ๊ฐ: ์ด ๋ ธํธ๋ถ ์ผ๋ง์ธ๊ฐ์?
• ์ ์: 100๋ง์ ์ ๋๋ค.
• ๊ณ ๊ฐ: ๋ ธํธ๋ถ 2๊ฐ ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์: ๋ ธํธ๋ถ 2๊ฐ๋ 200๋ง์ ์ ๋๋ค. ์ ์ฉ์นด๋, ํ๊ธ์ค์ ์ด๋ค ๊ฑธ๋ก ๊ตฌ๋งค ํ์๊ฒ ์ด์?
• ๊ณ ๊ฐ: ๋ ธํธ๋ถ 2๊ฐ๋ฅผ ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์: 200๋ง์ ๊ฒฐ์ ์๋ฃ๋์์ต๋๋ค.2-2. ๋ฌด์ํ - Stateless, ์ ์์ด ์ค๊ฐ์ ๋ฐ๋๋ฉด?
• ๊ณ ๊ฐ: ์ด ๋ ธํธ๋ถ ์ผ๋ง์ธ๊ฐ์?
• ์ ์A: 100๋ง์ ์ ๋๋ค.
• ๊ณ ๊ฐ: ๋ ธํธ๋ถ 2๊ฐ ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์B: ๋ ธํธ๋ถ 2๊ฐ๋ 200๋ง์ ์ ๋๋ค. ์ ์ฉ์นด๋, ํ๊ธ์ค์ ์ด๋ค ๊ฑธ๋ก ๊ตฌ๋งค ํ์๊ฒ ์ด์?
• ๊ณ ๊ฐ: ๋ ธํธ๋ถ 2๊ฐ๋ฅผ ์ ์ฉ์นด๋๋ก ๊ตฌ๋งคํ๊ฒ ์ต๋๋ค.
• ์ ์C: 200๋ง์ ๊ฒฐ์ ์๋ฃ๋์์ต๋๋คStateful๊ณผ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด๋ค.
Stateless์์๋ ๊ณ ๊ฐ์ด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๊ทธ๋ ๋ค ๋๊ฒจ์ค
โ Stateful, Stateless ์ฐจ์ด ์ ๋ฆฌ
• ์ํ ์ ์ง: ์ค๊ฐ์ ๋ค๋ฅธ ์ ์์ผ๋ก ๋ฐ๋๋ฉด ์๋๋ค.
(์ค๊ฐ์ ๋ค๋ฅธ ์ ์์ผ๋ก ๋ฐ๋ ๋ ์ํ ์ ๋ณด๋ฅผ ๋ค๋ฅธ ์ ์์๊ฒ ๋ฏธ๋ฆฌ ์๋ ค์ค์ผ ํ๋ค.)
• ๋ฌด์ํ: ์ค๊ฐ์ ๋ค๋ฅธ ์ ์์ผ๋ก ๋ฐ๋์ด๋ ๋๋ค.
• ๊ฐ์๊ธฐ ๊ณ ๊ฐ์ด ์ฆ๊ฐํด๋ ์ ์์ ๋๊ฑฐ ํฌ์ ํ ์ ์๋ค.
• ๊ฐ์๊ธฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์ฆ๊ฐํด๋ ์๋ฒ๋ฅผ ๋๊ฑฐ ํฌ์ ํ ์ ์๋ค.
• ๋ฌด์ํ๋ ์๋ต ์๋ฒ๋ฅผ ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์๋ค. -> ๋ฌดํํ ์๋ฒ ์ฆ์ค ๊ฐ๋ฅ์๋ฌด ์๋ฒ๋ ํธ์ถํด๋ ๋๋ค
= ์ค๊ฐ์ ์๋ฒ๊ฐ ์ฅ์ ๋๋ ๊ฐ์ ๊ธฐ๋ฅ์ ์งํํ๋ค.
๐ธ Stateless ์ค๋ฌด ํ๊ณ
• ๋ชจ๋ ๊ฒ์ ๋ฌด์ํ๋ก ์ค๊ณ ํ ์ ์๋ ๊ฒฝ์ฐ๋ ์๊ณ ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
• ๋ฌด์ํ
• ์) ๋ก๊ทธ์ธ์ด ํ์ ์๋ ๋จ์ํ ์๋น์ค ์๊ฐ ํ๋ฉด
• ์ํ ์ ์ง
• ์) ๋ก๊ทธ์ธ
• ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ํ๋ค๋ ์ํ๋ฅผ ์๋ฒ์ ์ ์ง
• ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ์๋ฒ ์ธ์ ๋ฑ์ ์ฌ์ฉํด์ ์ํ ์ ์ง
• ๋ฐ์ดํฐ๋ฅผ ๋ง์ด ์ด๋ค
• ์ํ ์ ์ง๋ ์ต์ํ๋ง ์ฌ์ฉํ๋ค.728x90'HTTP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ