HTTP
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ(Request) → ์๋ฒ๊ฐ ์๋ต(Response)
- ์๋ต ํ ์ฐ๊ฒฐ์ด ๋ซํ (Stateless)
- ์๋ก์ด ์์ฒญ๋ง๋ค ๋ค์ ์ฐ๊ฒฐ ํ์
- ์ฃผ๋ก ๋จ๋ฐฉํฅ ํต์ (ํด๋ผ์ด์ธํธ → ์๋ฒ)
- ๋ฐ์ดํฐ๋ฅผ ํค๋์ ํฌํจ์์ผ์ ์ ๋ฌํจ
ํด๋ง(Polling)
- ํด๋ผ์ด์ธํธ๊ฐ ์ผ์ ์ฃผ๊ธฐ๋ก ์๋ฒ์ ์์ฒญํ์ฌ ๋ฐ์ดํฐ ๊ฐฑ์ ์ ํ์ธํ๋ ๋ฐฉ์
- ์ฅ์ : ๊ธฐ์กด HTTP ๋ฐฉ์์์ ์ฝ๊ฒ ๊ตฌํ ๊ฐ๋ฅ
- ๋จ์ : ์๋ต์ด ์๋๋ผ๋ ๊ณ์ ์์ฒญ์ ๋ณด๋ด๋ฏ๋ก ๋คํธ์ํฌ ๋ญ๋น ๋ฐ์, ๋ฆฌ์์ค ๋ญ๋น๊ฐ ๋งค์ฐ ์ฌํจ, ์ค์๊ฐ์ฑ์ด ๋ฎ๋ค.
* ๋คํธ์ํฌ ์ค๋ฒํค๋ : ์ค์ ๋ฐ์ดํฐ ์ด์ธ์ ๋ฉํ๋ฐ์ดํฐ ๋ค์ ๋ถํ์ํ ๋คํธ์ํฌ ๋ถํ
WebSocket
- ํ ๋ฒ ์ฐ๊ฒฐํ๋ฉด ์ข ๋ฃ ์ ๊น์ง ์ ์ง ( Persistent Connection)
- ์๋ฐฉํฅ ํต์ ๊ฐ๋ฅ (ํด๋ผ์ด์ธํธ ↔ ์๋ฒ)
- ์ง์ฐ ์๊ฐ์ด ์งง์ (๋น ๋ฅธ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก)
- HTTP๋ณด๋ค ์ค๋ฒํค๋๊ฐ ์ ์ (๋ฐ๋ณต์ ์ธ ์์ฒญ·์๋ต ๊ณผ์ ์์)
WebSocket ํธ๋์ ฐ์ดํฌ(Handshake)
- ์ด๊ธฐ ์ฐ๊ฒฐ ๊ณผ์ ์์ HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ WebSocket์ผ๋ก ์ ๊ทธ๋ ์ด๋
- HTTP ์์ฒญ ํค๋์ Upgrade: websocket์ ํฌํจํ์ฌ ์๋ฒ์ ์ ์ก
- ์๋ฒ๊ฐ WebSocket ์ฐ๊ฒฐ์ ์๋ฝํ๋ฉด ์ ์ด์ค ํต์ (Full-Duplex) ์ฐ๊ฒฐ์ด ํ์ฑ๋จ
- * ์ ์ด์คํต์ : ๋ค๋ฅธํ์ ์ ์ฌ์ฉํด์ ์๋ก ์ก์์ ํ๋ค. (์์ชฝ์์ ์ก์์ ๊ฐ๋ฅ)
- get ์์ฒญ์ ํ์ฉํ์ฌ ํต์ ์ ์์ฒญํ๊ณ , ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์๋ตํจ -> ์ฐ๊ฒฐ ํ์ฑ
- ํ๋ฒ ์ฐ๊ฒฐ์ด ๋๋ฉด ์ดํ์๋ ๋ฐ์ดํฐ๋ง ์ฃผ๊ณ ๋ฐ์
- ์์ฒญ ์์ด๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค.
https://sendbird.com/ko/developer/tutorials/websocket-vs-http-communication-protocols