์ด๋ฒ์ HTTP ๋คํธ์ํฌ ํ๋กํ ์ฝ์ด๋ค. HTTP๋ ์ด๋ฏธ ์ฌ๋ฌ ๋ฒ์ ๋ค์ด ์กด์ฌํ๋๋ฐ, ์ค๋์ HTTP์ ์์ด๊ฒฉ์ด๋ผ๊ณ ํ ์ ์๋ HTTP 1.1 ๋ฒ์ ๋ถํฐ ์์๋ณผ ๊ฒ์ด๋ค. ์ ๋ฐ๋ผ์ค๋ผ๊ณ ~~!!
๐ What about HTTP?
'Hyper Text Transport Protocol' , HTTP
์ฝ๊ฒ ๋งํ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท ํ๋ฉด์์ ๋ณด๋ html ํ์ผ์ ์ค์ด๋๋ฅด๋ ํต์ ํ๋กํ ์ฝ์ด๋ค. ์ฆ ์น ๋ธ๋ผ์ฐ์ ์์ ๊ธ, ์ฌ์ง, ์์ ๋ฑ์ ๋ณผ ์ ์๊ฒ ๋ง๋ ๊ฒ! ๋คํธ์ํฌ ์ฅ์น ๊ฐ์ ์ ๋ณด๋ฅผ ์ ์กํ๋๋ก ์ค๊ณ๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ํ๋กํ ์ฝ์ด๋ค. HTTP๋ Transport Layer์ ๋คํธ์ํฌ ํ๋กํ ์ฝ ๊ฐ์ด๋ฐ TCP๋ฅผ ์ฌ์ฉํ๋ฉด์ ์คํ๋๋ค. ์ฌ๊ธฐ์ ์คํดํ๋ฉด ์๋๋ ๊ฒ์ด, ์ด๊ธฐ HTTP์ ํ์ ๋ชฉ์ ์ ์น์๋ฒ์ ์๋ ํ์ผ์ ๊ทธ์ ์น๋ธ๋ผ์ฐ์ ์ ๋์ฐ๊ธฐ ์ํจ์ด์๋ค. (๋ญ, ๊ฐ๋จํ ๋ ผ๋ฌธ, ๊ธ, ๊ธฐ์ฌ ์ ๋??)
ํ์ง๋ง ์ ์ฐจ ํต์ ์ ๋ชฉ์ ๊ณผ ๋ฐฉ๋ฒ์ด ๋ค์ํด์ง๋ฉด์ ๊ธฐ์กด HTTP์ ๊ตฌ์กฐ์ ํต์ ๋ฐฉ์๋ ์ ์ฐจ ๋ฐ๋๊ฒ ๋์๊ณ , TCP์ ๋จ์ ์ ๋ณด์ํ๊ณ ์ ์๋ก์ด 7๊ณ์ธต ํ๋กํ ์ฝ(HTTP/2, HTTP/3, QUIC ๋ฑ) ์ด ๋ง์ด ์๊ฒจ๋ฌ๋ค. ๊ทธ๋ผ ๋ณธ๊ฒฉ์ ์ผ๋ก HTTP์ ๋ํด ์์๋ณด์.
"HTTP ๊ฐ TCP ๋ฅผ ์ด๋ค๊ณ ?"
๋๋ผ์ง ๋ง์. ์ผ๋จ HTTP/1.1 ๋ฒ์ ์ ๊ทธ๋ ๋ค. ์ถํ ๋ค๋ฃจ๊ฒ ๋ HTTP/2, HTTP/3 ๊ณผ๋ ์ฝ๊ฐ์ ์์ดํ ๊ตฌ์กฐ๋ฅผ ๋๊ณ ์๋๋ฐ, ์ด๊ธฐ ๋ฒ์ ์ด๋ผ TCP๋ฅผ ๋์ด์์ ์ฑ ๋์ํ๋ค. HTTP ์๋ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ์ดํด๊ฐ ์ฝ๋ค.
Ref) "HTTP : The Definitive Guide", O'Reilly Media.Inc
๋ฐ๋ผ์ HTTP/1.1๋ TCP/IP ํต์ ํ๋กํ ์ฝ์ ์ฅ๋จ์ , ํน์ง์ ๋ชจ๋ ์์ฉํ ์ฑ ๋์ํ๋ค. TCP์ ๋ํด์๋ ์์ ๊ธ์์ ๋ค๋ฃจ์์ผ๋ 4๊ณ์ธต์์ ๋์ํ๋ ํน์ง์ ๊ฐ๋จํ๊ฒ๋ง ์ธ๊ธํ๊ณ , ์ถํ ์ด๋ก ์ธํด ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์ ์ ๋ํด์๋ ์๊ธฐํด๋ณด๊ฒ ๋ค.
- Reliable Data Transfer : ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก
- Connection-Oriented
- ์๋ฐฉํฅ์ ์ธ Byte Stream ๋์
- Flow Control
- Congestion Control
๊ทธ๋ผ ๊ฐ๋จํ ๊ทธ๋ฆผ์ ํตํด HTTP์ ๋์์๋ฆฌ๋ฅผ ์์๋ณด์.
๐ How does it work??
โ๏ธ Request - Response
HTTP๋ฅผ ํตํ ์ผ๋ฐ์ ์ธ ํ๋ฆ์๋ ํด๋ผ์ด์ธํธ ์์คํ (ex. ์น ๋ธ๋ผ์ฐ์ )์์ ์๋ฒ์ ์ผ์ ๋ช ๋ น์ ์์ฒญ(Request)ํ ๋ค์ ์๋ฒ์์ ์๋ต ๋ฉ์์ง(Response)๋ฅผ ๋ณด๋ด๋ ์์ ์ด ํฌํจ๋๋ค.
์ด๊ฒ ๋ฌด์จ ๋ง์ด๋๋ฉด, ํต์ /.../.com๋ผ๊ณ ํ๋ ์ธํฐ๋ท ํํ์ด์ง๋ฅผ ์ ๊ทผํ๊ณ ์ ํ ๋ ์ฐ๋ฆฌ๋ URL์ด๋ผ๋ ์๋ฒ resource name๊ณผ ํจ๊ป resource Location ์ ์์์ผ ํ๋ค. ์ด๊ฒ๋ ๊ฒฐ๊ตญ ํด๋น root ํ์ผ์ด ์์นํ '์ ์ฅ์'๋ฅผ ์ฐพ๊ธฐ ์ํจ์ด๋ค. ์๋ฅผ ๋ค์ด, ์๋ ์ธํฐ๋ท ์ฌ์ดํธ์ ์ ๊ทผํ๊ณ ์ ํ ๋, https: //... /.com/49๋ฅผ ์ ๋ ฅํ๋ฉด, ํด๋น ํ์ด์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
https://jhklee-coder.tistory.com/49
์ด๋ชจ์ง [Git/Github]
์ฌ๋(ํ์ ) ๐ :smile: ๐ :laughing: ๐ :blush: ๐ :smiley: โบ๏ธ :relaxed: ๐ :smirk: ๐ :heart_eyes: ๐ :kissing_heart: ๐ :kissing_closed_eyes: ๐ณ :flushed: ๐ :relieved: ๐ :satisfied: ๐ :grin: ๐ :wink: ๐ :stuck_out_t
jhklee-coder.tistory.com
์ด ๋ ๋์ํ๋ ๊ณผ์ ์ด ๋ฐ๋ก ~~ root ๋๋ ํ ๋ฆฌ ์๋์ ์๋, ~~ ๋๋ ํ ๋ฆฌ์ 49๋ฒ์งธ 'ํ์ผ์ ์ฐพ๋ ํ์'๋ค. ๊ฒฐ๊ตญ URL์ ํ์ผ์ ์์น๋ฅผ ์ ์ฅํ๋ ๋๋ฉ์ธ ์ด๋ฆ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋๋ฉ์ธ ์ด๋ฆ์ ์ ๊ทผํ๊ณ ์ ํ ๋ HTTP๋ Get() ๋ฉ์๋๋ฅผ ํตํด ์๋ฒ์ requestํ๊ณ , ์๋ฒ๋ ์ด ์์ฒญ์ ๋ํด ์ ์ ํ ํ์ผ์ ์ ๊ทผํ ์ ์๋๋ก response ํ๋ค.
โ๏ธ Transactions
๊ทธ๋ผ HTTP ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์์ 'Request - Response'๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ๋ด๋ถ ๋ฉ์๋๋ค์ ํตํด ์์๋ณด์. ๋ด๋ถ ๋ฉ์๋์ ์ญํ ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์๊ตฌํ ๋ ํ์ํ ๋ช ๋ น๊ณผ, ์๋ฒ๊ฐ ๊ทธ์ ๋ง๊ฒ ์ํํด์ผ ํ ๋์์ด๋ค.
- Support Several Request commands
- Ask Server which action to perform
์ด ๋์์ ์ํด ํ์ํ method ๋ค ๊ฐ์ง๋ฅผ ์์๋ณด์.
โ๏ธ Methods
1๏ธโฃ Get
๋ด๊ฐ ์ป๊ณ ์ ํ๋ ํ์ผ(resource file)์ URL ์ ํตํด ๋ฌ๋ผ๊ณ ์์ฒญํ๋ ํจ์.
โก๏ธ Response : ์๋ฒ๋ request ๋ฐ์ ํ์ผ์ด ํด๋น ์์น ๋๋ ํ ๋ฆฌ์ ์๋์ง ํ์ธํ๋ค. (์์ฒญ์ ๋ํด ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค๋ฉด, 200์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋๋ฐ, ์ฐ๋ฆฌ๋ ์ด Status ์ ๋ณด๋ ์ถ๊ฐ๋ก ์ป์ ์ ์๋ค.
โก๏ธ Status Code (์ํ ์ ๋ณด)
- 404 (Not Found. -> ํ์ผ์ด ์์ด์ ใ ใ )
- 200 (OK -> ํ์ผ์ด ์์ผ๋ ํด๋น ๋๋ ํ ๋ฆฌ๋ก ์ด๋์์ผ์ ํ์ผ ๋ณด๋ด๋๋ฆด๊ฒ์!!)
- 302 (Redirect. -> ํด๋น ํ์ผ์ด ๋ค๋ฅธ ์์น๋ก ์ด๋๋์๊ฑฐ๋, ์ญ์ ๋์์ด์ ใ Go someplace else to get the resource)
2๏ธโฃ Put
Ref) "HTTP : The Definitive Guide", O'Reilly Media.Inc
์นํ์ด์ง์์ ํ์ผ์ ์ ๋ก๋ํ๋ ๋ฑ์ ํ๋. ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ) ์๋ฒ๋ก ํ์ผ์ put request ๋ก ๋ฐ์ด๋ฃ๋ ๊ณผ์ .
โก๏ธ Response : ์๋ฒ๋ request ๋ฐ์ ํ์ผ์ด ํด๋น ์์น ๋๋ ํ ๋ฆฌ์ ์ ์ฅํ๊ณ , ์ ์ ์ฅ๋์๋ค๋ ๋ฉ์์ง์ ํจ๊นจ ์ ์ฅ๋ ์ ๋ณด(ex. ํ์ผ)์ ๋ํ Status๋ฅผ ๋ณด์ฌ์ค๋ค.
3๏ธโฃ Post
์๋ฒ๋ก ์ ๋ณด๋ฅผ ์ ๋ ฅ์ํฌ ๋ ๊ผญ ํ์ผ๋ง ๊ฐ๋ฅํ ๊น? ๊ทธ๋ ์ง ์๋ค. ํน์ ์๋ฒ to ๋ธ๋ผ์ฐ์ ์์ ํ์ผ์ด ์๋ ๊ฑธ ๋ณด๋ด๊ณ ์ถ์ ์ ์๋ค. ์๋ฒ์ ์ ๋ ฅ๋ฐ์ค(ex. ํ๋กฌํํธ)์ ์ซ์๋ฅผ ์ ๋ ฅํ๋ฉด, ์๋ฒ์์ ๋๋ ค์ฃผ๋ ํํ๋ค. ํน์ ์๋ก์ด resource ํ์ผ์ด๋ ์ ๋ณด๋ฅผ ์์ฑ(๋ฑ๋ก)ํ๊ณ ์ ํ ๋๋ ์ฌ์ฉํ๋ค.
4๏ธโฃ Delete
(๊ทธ๋ฆผ ์๋ต)
๋ง ๊ทธ๋๋ก ์๋ฒ์ ์๋ ํ์ผ, ์ ๋ณด, resource ๋ฅผ ์ญ์ ํ๊ณ ์ ํ ๋ delete ํจ์์ ํจ๊ป ํ์ผ URL์ ์ ๋ ฅํด์ ์ฌ์ฉํ๋ค.
์ด์ธ์๋ Head(), Trace(), Options() ๋ฑ์ ๋ฉ์๋๋ค์ด ์์ผ๋, ์ ํต์ฌ 4๊ฐ์ง ๋ฉ์๋๋ค์ ์๋ ๊ฒ์ด ์ฐ์ ์ด๋ค. ํด๋น ๋ฉ์๋๋ค์ด ์ถํ ๋ฑ์ฅํ ์น์๋ฒ-๋ธ๋ผ์ฐ์ ํ๋ ์์ํฌ ์ฃผ์ ์ฒ ํ์ ํต์ฌ ํค์๋๊ฐ ๋๊ธฐ ๋๋ฌธ์ด๋ค. (๋์ค์ ๋ฑ์ฅํ ์์ )
๐ Cf)
HLS (HTTP Live Streaming)
HTTP์ ์ด๊ธฐ ๋ชฉ์ ์ ํ์ผ์ ์น์๋ฒ์์ ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ๋ก ๋์ฐ๊ธฐ ์ํจ์ด์๋ค. ๊ทธ๋ฌ๋ฉด ์์ง์ด๋ ์์์ ์ด๋ป๊ฒ ๋ณด๋ผ ์ ์์๊น? ์๊ฐํด๋ณด๋ฉด, ํ์ผ์ ๋ง ๊ทธ๋๋ก '์ ์ ์ธ ์ํ'์ ๊ธ์ด๋ค. ํ์ง๋ง ๋์์์ ๊ณ์ ์์ง์ด๋ ๊ฐ์ฒด(ํน์ ๋ฌผ์ฒด)๋ค๋ก ์ด๋ฃจ์ด์ ธ์์ง ์์๊ฐ. ๊ทธ๋ผ HTTP ๋ ์ ํ๋ธ ์์ ์ ๋ณด๋ ๋ค๋ฃจ์ง ๋ชปํ๋ ๊ฑธ๊น??
๊ทธ๋ ์ง ์๋ค. ์ ํ๋ธ๋ HTTP ๋ฅผ ์ฌ์ฉํ๋ค. ๋ค๋ง ๊ทธ ๋ฐฉ์์ด ์ ์ ์ธ ํ์ผ๋ค์ ๋ณด๋ผ ๋์ ์ฝ๊ฐ ๋ค๋ฅด๋ค. How?? ๋ฐ๋ก HLS (HTTP Live Streaming) ๋ผ๋ ๋ฐฉ์์ ์จ์ ๋์ํ๋ค. ๋ นํ๋ ์์์ ์๊ฒ ์ชผ๊ฐ์ ๋ง์ ์์ ํ์ผ๋ค๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์๊ฒ ์ชผ๊ฐ์ง ํ์ผ์ ์ ์ก๋ฐ๊ณ ์ ๋์์์ด request - response๋ฅผ ํ๋ค. ์กฐ๊ธ ์๊ฐ์ด ํ๋ฅด๋ฉด ๋ ํ์ผ์ด ์ค๊ณ , ๋ ์์ฒญํ๊ณ , ๋ ๊ธฐ๋ค๋ฆฌ๋ ์ด๋ฐ ํํ๋ฅผ ๋๋ ๊ฒ!
๊ฒฐ๊ตญ, ๊ด๊ณ ๋ฅผ ํตํด ๋ฏธ๋ฆฌ ๋ฒํผ์ ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์๋ ์ ์๋ ์๊ฐ์ ๋ฒ์ด๋๊ณ , ๋ค์ด๋ก๋ ๋ ํฌ๊ธฐ๊ฐ ์ผ๋ง ์ด์์ด ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ฉด์ HTTP๋ ์์๋ ์ฑ๊ณต์ ์ผ๋ก ์น๋ธ๋ผ์ฐ์ , ์นํด๋ผ์ด์ธํธ ํ๊ฒฝ์ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค.
- 144p ์ ํด์๋๋ฅผ ๊ฐ์ง ํ์ผ: request - response ๋ณด๋.
- ๋คํธ์ํฌ์ ์ปดํจํฐ ์ฑ๋ฅ์ด ์ด๋ฅผ ๊ฒฌ๋ ์ ์๋ ์์ค์ด๋ค? ํ๋ฉด์์๋ ๊น๋ํ๊ฒ ๋ณด์ฌ์ง๊ณ ํ๋, ๊ทธ๋ฌ๋ฉด ํด์๋๋ฅผ ์ฌ๋ฆฌ๊ณ ์ด๋ฏธ์ง, ์์ ํ์ผ์ ์์ค์ ๋์ฌ์ ๋ณด๋ด์ฃผ์.
- 240p / 480p / 720p / 1080p : ๋์ผ
์์ ์ธ๊ธํ๋ค์ํผ, HTTP/1.1์ TCP ํต์ ํ๋กํ ์ฝ์ ๋์ด์์ ์ฑ ๋์ํ๋ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ฉด TCP์ ๋จ์ ์ธ slow-start ๋ฌธ์ ์ congestion-control ๊ฐ ์์ผ ์ ์๋ ์ง์ฐ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์๊น?
๊ตฌ๊ธ์ ์์ streaming์ ์ํด ๊ธฐ๋ฐํ ํด๊ฒฐ์ฑ ์ ๋ด์ธ์ ์ผ๋, ๋ฐ๋ก '๊ด๊ณ '์ ๋ฒํผ๋ค. ๋ฌผ๋ก ๊ด๊ณ ๋ ์ฌ์ ์ ์ด์ต์ ์ํจ์ด๊ธฐ๋ ํ๋ค. ํ์ง๋ง ์์์ ๋ฌด์ํ ๋ง์ด ๋๋์ด์ง ํ์ผ์ ๋ถ๋ฌ์ฌ ๋ HTTP ์๋ ํต์ ๊ณ์ธต์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด์ ์๋ฌ ๋ฐ ์ง์ฐ์ ๋ฐ์์ํจ๋ค. ๊ฒฐ๊ตญ ์์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ ๊ด๊ณ ๋ฅผ ํตํด ํ์ํ ๋งํผ์ ์ง์ฐ ์๊ฐ์ ํ๋ณดํ๊ณ , ๋ฒํผ์ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์์ผ๋ฉด์ Streaming ์ด ๊ฐ๋ฅํ๋ค.
(์ด TCP ํต์ ํ๋กํ ์ฝ์ ํ์ฉํ ๊ธฐ์ ์ ์ถํ 'QUIC'์ผ๋ก ๋์ฒด๋จ! ๋์ค์ ์์ธํ ๋ค๋ฃฐ ์์ .)
์ค๋์ ์ฌ๊ธฐ์ ๋!! ๋ค์์ ๊ณ์..
'Network > ๐ค Basic' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TCP / UDP 1 [Network] (0) | 2024.04.14 |
---|---|
OSI 7 Layer [๋คํธ์ํฌ] (2) | 2024.03.14 |
ํต์ ํ๋กํ ์ฝ๊ณผ ๋คํธ์ํฌ [๋คํธ์ํฌ] (0) | 2024.03.09 |