-
HTTP/๋คํธ์ํฌ ๊ธฐ์ดcodeStates front-end/node(server) 2023. 1. 30. 17:31๋ฐ์ํ
๐ HTTP/๋คํธ์ํฌ ๊ธฐ์ด
๐ํด๋ผ์ด์ธํธ - ์๋ฒ ์ํคํ ์ฒ
๋ฆฌ์์ค๊ฐ ์กด์ฌํ๋ ๊ณณ๊ณผ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ์ ๋ถ๋ฆฌ์ํจ ๊ฒ์ด
2ํฐ์ด ์ํคํ ์ฒ, ๋๋ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ผ๊ณ ๋ถ๋ฅธ๋ค
๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ์ฑ - ํด๋ผ์ด์ธํธ(client) // ์นดํ๋ก ์น๋ฉด ์๋
๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ ๊ณณ - ์๋ฒ(server) // ์ปคํผ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ ์
-> ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ , ์๋ต์ ๋ฐ๋๋ค
๐ 3-Tier ์ํคํ ์ฒ
์ผ๋ฐ์ ์ผ๋ก ์๋ฒ๋ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌํด ์ฃผ๋ ์ญํ ๋ง ๋ด๋น
๋ฆฌ์์ค๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ - ๋ฐ์ดํฐ๋ฒ ์ด์ค(์ฐฝ๊ณ )
์ฐฝ๊ณ ๊ฐ ์ถ๊ฐ๋๋ฉด 3ํฐ์ด ์ํคํ ์ฒ๋ผ๊ณ ๋ถ๋ฆ
๐ ํ๋ก ํธ์๋์ ๋ฐฑ์๋
ํ๋ก ํธ์๋ - ํด๋ผ์ด์ธํธ์ฒ๋ผ ์ฌ์ฉ์๊ฐ ์ง์ ๋์ผ๋ก ๋ณด๊ณ , UI๋ฅผ ํด๋ฆญ ๋๋ ํฐ์นํ๋ ๋ฑ์ ๊ฐ๋ฐ
๋ฐฑ์๋ - ๋์ ๋ณด์ด์ง ์์ง๋ง, ์ํ ์ ๋ณด๋ฅผ API๋ก ๋ ธ์ถํ๋ค๋ ์ง. ๋ก๊ทธ์ธ/์์ ๋ฑ ์์คํ ์ค๊ณ๋ฅผ ๊ฐ๋ฐ
๐ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ข ๋ฅ
ํด๋ผ์ด์ธํธ๋ ํ๋ซํผ์ ๋ฐ๋ผ ๊ตฌ๋ถ
๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฃผ๋ก ์ด์ฉํ๋ ์น ํ๋ซํผ์์์ ํด๋ผ์ด์ธํธ๋ ์น์ฌ์ดํธ ๋๋ ์น ์ฑ
์๋ฒ๋ ๋ฌด์์ ํ๋๋์ ๋ฐ๋ผ ๊ตฌ๋ถ
ํ์ผ์ ์ ๊ณตํ๋ ์ฑ, ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ฑ, ๋ฉ์ผ์ ์ฃผ๊ณ ๋ฐ๋ ์ฑ ๋ฑ
๐ํด๋ผ์ด์ธํธ - ์๋ฒ ํต์ ๊ณผ API
๐ ํ๋กํ ์ฝ
ํต์ ๊ท์ฝ, ์ฆ ์ฝ์
์นดํ์์ ์ฃผ๋ฌธ์ ํ๊ธฐ ์ํด์๋ ์ง์ผ์ผ ํ ์ฝ์์ด ์กด์ฌ๋ผ๊ณ ์๊ฐํ์
๐ ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋กํ ์ฝ : HTTP
์น ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก HTTP๋ผ๋ ํฌ๋กํ ์ฝ์ ์ด์ฉํด
์๋ก ๋ํ๋ฅผ ๋๋๊ณ HTTP๋ฅผ ์ด์ฉํด์ฉ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง๋ฅผ "HTTP ๋ฉ์์ง" ๋ผ๊ณ ํ๋ค
๐ ์ฃผ์ ํ๋กํ ์ฝ
๐ API(Application Programming Interface)
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๋ฅผ ์ ํ์ฉํ ์ ์๋๋ก ์ธํฐํ์ด์ค๋ฅผ ์ฌ๊ณต
์ธํฐํ์ด์ค๋? ์์ฌ์ํต์ด ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด์ง ์ ์
๋ณดํต ์ธํฐ๋ท์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋์๋ HTTP๋ผ๋ ํฌ๋กํ ์ฝ์ ์ฌ์ฉ
์ฃผ์(url, uri)๋ฅผ ํตํด ์ ๊ทผ
์ด๋ฅผ ํตํด CRUD ์ฌ์ฉ
- create, get, update, delete
HTTP์์ฒญ์๋ ๋ฉ์๋ ๋ผ๋ ๊ฒ์ด ์กด์ฌ
- GET, POST, PUT, DELETE
์ฌ์ฉ ์ฉ๋์ ๋ฐ๋ผ์ ์ ์ ํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
๐HTTP
๐ HTTP ํน์ง : stateless(๋ฌด์ํ์ฑ)
์ํ๋ฅผ ๊ฐ์ง์ง ์๋๋ค๋ ๋ป
HTTP๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ์ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์์, HTTP๊ฐ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ํ๋ฅผ ํ์ธํ์ง ์๋๋ค
๋ค๋ฅธ ๋ฐฉ๋ฒ(์ฟ ํค-์ธ์ , API ๋ฑ)์ ํตํด ์ํ๋ฅผ ํ์ธํ ์ ์๋ค๐ HTTP Messages
HTTP Messages๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์์ ๋ฐ์ดํฐ๊ฐ ๊ตํ๋๋ ๋ฐฉ์
HTTP Messages์๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ์ ํ์ด ์๋ค.
- ์์ฒญ(Requests)
- ์๋ต(Responses)
start line : start line์๋ ์์ฒญ์ด๋ ์๋ต์ ์ํ๋ฅผ ๋ํ๋ ํญ์ ์ฒซ ๋ฒ์งธ ์ค์ ์์น, ์๋ต์์๋ status line์ด๋ผ๊ณ ํจ
HTTP headers : ์์ฒญ์ ์ง์ ํ๊ฑฐ๋, ๋ฉ์์ง์ ํฌํจ๋ ๋ณธ๋ฌธ์ ์ค๋ช ํ๋ ํค๋์ ์งํฉ
empty line : ํค๋์ ๋ณธ๋ฌธ์ ๊ตฌ๋ถํ๋ ๋น ์ค์ด ์๋ค
body : ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ ์๋ต๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋๋ ๋ฌธ์๋ฅผ ํฌํจ ์์ฒญ๊ณผ ์๋ต์ ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ๋ค์ด ์ค start line๊ณผ HTTP headers๋ฅผ ๋ฌถ์ด ์์ฒญ์ด๋ ์๋ต์ ํค๋(head)๋ผ๊ณ ํ๊ณ , payload๋ body๋ผ๊ณ ํ๋ค.
๋ฐ์ํ'codeStates front-end > node(server)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Mini-Node Server (0) 2023.02.08 CORS ๊ฐ์ (0) 2023.02.06 REST API - ๋๋ง์ ์ธ์ด๋ก ๋ธ๋ก๊น ํด๋ณด๊ธฐ (0) 2023.01.31 ๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฆฌ(๋ณด์ด๋ ๊ณณ) - AJAX, SSR๊ณผ CSR (0) 2023.01.30 ๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฆฌ(๋ณด์ด์ง ์๋ ๊ณณ) - URL/URI, IP, port, domain, DNS (0) 2023.01.30