[HTTP ์น ๊ธฐ๋ณธ ์ง์] HTTP ๊ธฐ๋ณธ - ๋น ์ฐ๊ฒฐ์ฑ (connectionless)
๐ฑ ๋น ์ฐ๊ฒฐ์ฑ (connectionless)
์ฐ๊ฒฐ์ ์ ์งํ๋ ๋ชจ๋ธ
- ๋จ์ - ํด๋ผ์ด์ธํธ๊ฐ ๊ธ์ฆํ ๊ฒฝ์ฐ ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ ค ์๋ฒ๊ฐ ๋ค์ด๋ ์ ์์
์ฐ๊ฒฐ์ ์ ์งํ์ง ์๋ ๋ชจ๋ธ
- ๋น์ฐ๊ฒฐ์ฑ: ์์ฒญ์ด ํ์ํ ๋๋ง๋ค ๊ทธ๋๊ทธ๋ ์ฐ๊ฒฐํด์ ๋ฐ๋ก ๋๋ ํํ
- ์ฅ์ - ์ต์ํ์ ์์ ์ ์ง(ํจ์จ์ )
- ๋จ์
- TCP/IP ์ฐ๊ฒฐ์ ์๋ก ๋งบ์ ๋๋ง๋ค 3 way handshake ์๊ฐ์ด ์ถ๊ฐ๊ฐ ๋์ ํด๋ผ์ด์ธํธ ์ ์ฅ์์๋ ๋๋ฆผ
- ์น ๋ธ๋ผ์ฐ์ ๋ก ์ฌ์ดํธ๋ฅผ ์์ฒญํ๋ฉด HTML, CSS, Javascript, ์ถ๊ฐ ์ด๋ฏธ์ง ๋ฑ ์๋ง์ ์์์ด ํจ๊ป ๋ค์ด๋ก๋ ํ ๋ ์ฐ๊ฒฐํ๊ณ ๋๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ฏ๋ก ๋นํจ์จ์
- ๊ทน๋ณต - ์ง์ ์ฐ๊ฒฐ(Persistent Connection)๋ก ๋ฌธ์ ํด๊ฒฐ
- ์ง์ ์ฐ๊ฒฐ: HTTP์์ TCP/IP ์ฐ๊ฒฐ์ ์ผ์ ๊ธฐ๊ฐ ์ด์ด๋๊ณ ์ฌ๋ฌ ์์ฒญ์ ํ๋ ๊ฒ
1. HTTP ์ด๊ธฐ: ์ฐ๊ฒฐ → ์์ ์์ฒญ /HTML ์๋ต → ์ข ๋ฃ
2. HTTP ์ง์ ์ฐ๊ฒฐ: ์ฐ๊ฒฐ → ์์ ์์ฒญ/HTML ์๋ต → ์์ ์์ฒญ/์๋ฐ์คํฌ๋ฆฝํธ ์๋ต → ... → ์ข ๋ฃ
๐ซ ์ฐธ๊ณ !!!
์๋ฒ ๊ฐ๋ฐ์๋ค์ ๋ฐ๋์ Stateless๋ฅผ ๊ธฐ์ตํ์!
- ๊ฐ์ ์๊ฐ์ ๋ฐ์ํ๋ ๋์ฉ๋ ํธ๋ํฝ
- ์) ์ ์ฐฉ์ ์ด๋ฒคํธ, ์๊ฐ ์ ์ฒญ ๋ฑ → ์๋ง๋ช ๋์ ์์ฒญ
- ์ด๋ฒคํธ๊ฐ ์๊ธธ ๋ ์ฌ์ฉ์๊ฐ ๊ธ์ฆํ ๋,
- ์ผ๋จ์ ์ ์ ํ์ด์ง๋ฅผ ์์ฑํด์ ๊ทธ ํ์ด์ง๋ฅผ ๋ณด๊ฒ ํ ๋ค์์ ์ด๋ฒคํธ ํ์ด์ง๋ก ๋ค์ด๊ฐ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ ์ด์ฉ
- → ์ต๋ํ ๋์ ์์ฒญ์ ์ ๊ฒ ํ๋ค
โQuestion
1. 3-way handshake? http ํ๋กํ ์ฝ?
๋ธ๋ผ์ฐ์ ์์ URL์ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด,
1) DNS ์๋ฒ์์ ํด๋น URL์ IP๋ฅผ ์กฐํํ๋ค.
2) IP์ ํด๋นํ๋ ์๋ฒ์ TCP๋ฅผ ์ฐ๊ฒฐํ๋ค.
3) ์ดํ HTTP ์์ฒญ/์๋ต์ ํ๋ค.
→ TCP์ ์ฐ๊ฒฐ์งํฅ๊ณผ HTTP์ ๋น์ฐ๊ฒฐ์ฑ์ ๊ฒฐ์ด ๋ค๋ฅธ๊ฒ์ผ๋ก ์ดํดํด์ผ ํจ.
TCP๋ UDP์ ๋ค๋ฅด๊ฒ ๋ด๊ฐ ์์ฒญ์ ๋ณด๋ผ ๊ณณ๊ณผ ์ฐ๊ฒฐํ ์ ์๋์ง๋ฅผ ์ฒดํฌํ๋ ๋ก์ง์ด ์๋ค๋ ์ ์์ ์ฐ๊ฒฐ ์งํฅ์ ์ธ ๊ฒ์ด๊ณ ,
HTTP๋ ๊ธฐ๋ณธ์ ์ผ๋ก SOKET ํต์ ๊ณผ ๋ฌ๋ฆฌ ์์ฒญ๊ณผ ์๋ต์ ๋ฐ๊ณ ๋๋ฉด ์ฐ๊ฒฐ์ ๋๊ณ , ์์ฒญ์ด ํ์ํ ๋๋ง๋ค ์ฐ๊ฒฐ์ ํ๋ ์ ์์ ๋น์ฐ๊ฒฐ์ฑ์ ๋ณด์ด๋ ๊ฒ์ด๋ค.
2. ํธ๋ํฝ์ด ๋ชฐ๋ฆด ๊ฒฝ์ฐ ์ ์ ํ์ด์ง๋ก ๋ถ๋ด์ ์ค์ฌ์ค ์ ์๋ค๊ณ ํ๋๋ฐ, ์ ์ ํ์ด์ง๋ ํธ๋ํฝ์ด ๋ง์์ ธ๋ ๊ณผ๋ถํ๊ฐ ์๊ธฐ์ง ์๋๊ฐ?
์ ์ ํ์ผ์ ๋ฐ๋ ํ์๋ ์๋ฒ์ ๋ถํ๋ฅผ ์ค๋ค. ๋ค๋ง, ํ์ผ์ ์๋ก ๋ง๋ค์ด์ ์๋ตํ ๋๋ณด๋จ ํ๊ธฐ์ ์ผ๋ก ์์ํ๋ค.
์๋ฅผ ๋ค์ด A๊ฐ๊ฒ๋ ๋์๋ฝ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋๊ณ ํ๋งคํ๊ณ , B๋ ์๋์ด ์ฃผ๋ฌธํ๋ฉด ๊ทธ ๋ ๋ง๋ค์ด์ ํ๋งคํ๋ค๊ณ ํ์.
๋ฐฐ๊ณ ํ ์๋ 100๋ช ์ด ํ๋ฒ์ ๊ฐ๊ฒ๋ก ๋ชฐ๋ ค๋ค ๋, A๋ ๋์๋ฝ์ ๊ฑด๋ค๊ณ ๋๋ง ๋ฐ์ผ๋ฉด ๋๋ ๋น๊ต์ ์์ํ๋ค. ๋ฐ๋ฉด B๋ ๋งค์ฅ์ด ๋ง๋น๋ ๊ฒ์ด๋ค.