HTTP | MDN
๊ฐ์ด๋์ ํํ ๋ฆฌ์ผ์ ํตํด HTTP๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋ณด์ธ์. HTTP ๊ฐ์ ํด๋ผ์ด์ธํธ-์๋ฒ ํ๋กํ ์ฝ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ค์ ๋๋ค. HTTP๋ก ํ ์ ์๋ ๊ฒ๊ณผ ์๋๋ ์ฉ๋๋ฅผ ์์๋ณด์ธ์. HTTP ์บ์ ์บ์ฑ์ ๋น
developer.mozilla.org
HTTP ๋ (Hypertext Transfer Protocol)
- HTML ๊ณผ ๊ฐ์ ํ์ดํผ๋ฏธ๋์ด ๋ฌธ์๋ฅผ ์ ์กํ๊ธฐ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ
- ์น์์ ์ด๋ค์ง๋ ๋ชจ๋ ๋ฐ์ดํฐ ๊ตํ์ ๊ธฐ์ด.
- ์น ๋ธ๋ผ์ฐ์ ์ ์น์๋ฒ ๊ฐ์ ํต์ ์ ์ํด ์ค๊ณ๋์์ง๋ง, ๋ค๋ฅธ ๋ชฉ์ ์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ.
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ๊ธฐ ์ํด HTTP ์ฐ๊ฒฐ์ ์ฐ ๋ค์ ์๋ต์ ๋ฐ์ ๋๊น์ง ๋๊ธฐํ๋ "ํด๋ผ์ด์ธํธ-์๋ฒ" ๋ชจ๋ธ์ ๋ฐ๋ฆ.
- ๋ฌด์ํ(state-less) ํ๋กํ ์ฝ๋ก, ์๋ฒ๊ฐ ๋ ์์ฒญ ๊ฐ์ ์ด๋ ํ ๋ฐ์ดํฐ๋ ์ ์งํ์ง ์์.

1) HTTP ํค๋์ ํ์ฅ์ฑ

- ํค๋๋ ์ปจํ
์คํธ์ ๋ฐ๋ผ ๊ทธ๋ฃนํ๋ ์ ์์.
- Request header: ํ์น๋ ๋ฆฌ์์ค๋ ํด๋ผ์ด์ธํธ ์์ฒด์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํค๋.
- Response header: ์์น ๋๋ ์๋ฒ ์์ฒด์ ๋ํ ์ ๋ณด(์ด๋ฆ, ๋ฒ์ ๋ฑ)์ ๊ฐ์ด ์๋ต์ ๋ํ ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ๊ฐ๋ ํค๋
- ๋ฑ๋ฑ
- ํค๋๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์ฒญ ๋๋ ์๋ต์ผ๋ก ๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ์กํ ์ ์๋๋ก ํด์ค.
- ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ์ด๋ฆ๊ณผ ์ฝ๋ก ' : ' ๋ค์์ ์ค๋ ๊ฐ(์ค ๋ฐ๊ฟ ์์ด) ์ผ๋ก ์ด๋ฃจ์ด์ ธ์์.
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก์ด ํค๋์ ์๋งจํฑ(์๋ฏธ)์ ๋ํด ๊ฐ๋จํ ํฉ์๋ง ํ๋ค๋ฉด, ์ธ์ ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์.
- ์ฆ, ํค๋(Header)๋ผ๋ ๊ณต๊ฐ ๋๋ถ์ ์ธ์ฆ, ์บ์ฑ, ๋ณด์ ๋ฑ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ณ์ ์ถ๊ฐํ ์ ์์.
2) HTTP ๋ฉ์์ง ๊ตฌ์กฐ - ์์ฒญ (request)

Method: ์ํํ ์์ ์ ์ข ๋ฅGET(๊ฐ์ ธ์ค๊ธฐ), POST(์ ์ฅํ๊ธฐ), PUT, DELETE
Path: ๋ฆฌ์์ค์ ์์น (URL์์ ๋๋ฉ์ธ ์ ์ธ)/api/v1/login
Headers : ์์ฒญ์ ๋ํ ๋ถ๊ฐ ์ ๋ณด (๋ฐ์ดํฐ ํ์ , ์ธ์ฆ ํ ํฐ)Authorization: Bearer <JWT>, Content-Type: application/json
Body : ์ค์ ์๋ฒ๋ก ๋ณด๋ผ ๋ฐ์ดํฐ (GET์ ๋ณดํต ์์){"id": "eunsil", "pw": "1234"}
3) HTTP ๋ฉ์์ง ๊ตฌ์กฐ - ์๋ต (response)

Status Code : ์์ฒญ์ ๊ฒฐ๊ณผ ์ํ200(์ฑ๊ณต), 401(์ธ์ฆ ์๋จ), 403(๊ถํ ์์)
Headers : ์๋ต์ ๋ํ ๋ถ๊ฐ ์ ๋ณดContent-Type: application/json, Set-Cookie
Body : ์๋ฒ๊ฐ ๋๋ ค์ค ๋ฐ์ดํฐ{"accessToken": "eyJ...", "user": "eunsil"}
HTTP ์ํ ์ฝ๋
- http ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์๋์ง ์๋ ค์ฃผ๋ ์ฝ๋
- 5๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋๋ ์ง
1) ์ ๋ณด ์๋ต
- ์์ฒญ์ด ์์ ๋์์ผ๋ฉฐ ํ๋ก์ธ์ค๊ฐ ๊ณ์๋จ์ ๋ํ๋
| ์ํ ์ฝ๋ | ๋ช ์นญ | ์ค๋ช |
| 100 | Continue | ์ง๊ธ๊น์ง์ ์ํ๋ ๊ด์ฐฎ์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๊ณ์ํ๊ฑฐ๋ ์ด๋ฏธ ์๋ฃํ ๊ฒฝ์ฐ ๋ฌด์ํด๋ ๋จ์ ์๋ฆผ |
| 101 | Switching Protocol | ํด๋ผ์ด์ธํธ์ Upgrade ํค๋ ์์ฒญ์ ๋ฐ๋ผ ์๋ฒ๊ฐ ํ๋กํ ์ฝ์ ๋ณ๊ฒฝํ ๊ฒ์์ ์๋ฆผ |
| 102 | Processing | ์๋ฒ๊ฐ ์์ฒญ์ ์์ ํ์ฌ ์ฒ๋ฆฌ ์ค์ด์ง๋ง, ์์ง ์๋ต์ ์ค ์ ์๋ ์ํ (WebDAV ์ ์ฉ) |
| 103 | Early Hints | ์๋ฒ๊ฐ ์๋ต์ ์ค๋นํ๋ ๋์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ ๋ก๋ฉ(preloading)์ ์์ํ ์ ์๋๋ก ํจ |
2) ์ฑ๊ณต์ ์ธ ์๋ต
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์๋ฒ์์ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์์์ ๋ํ๋
| ์ํ ์ฝ๋ | ๋ช ์นญ | ์ค๋ช |
| 200 | OK | (์ค์) ์์ฒญ ์ฑ๊ณต. GET์ ๋ฆฌ์์ค ์ ์ก, POST๋ ์ํ ๊ฒฐ๊ณผ ์ ์ก ๋ฑ์ ์๋ฏธํจ |
| 201 | Created | (์ค์) ์์ฒญ ์ฑ๊ณต ๋ฐ ๊ทธ ๊ฒฐ๊ณผ๋ก ์๋ก์ด ๋ฆฌ์์ค๊ฐ ์์ฑ๋จ (์ฃผ๋ก POST ์ดํ) |
| 202 | Accepted | ์์ฒญ ์์ ์ ๋์์ผ๋ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋์ง ์์ (๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ฃผ๋ก ์ฌ์ฉ) |
| 204 | No Content | ์์ฒญ์ ์ฑ๊ณตํ์ผ๋ ์๋ต ๋ฐ๋์ ๋ณด๋ผ ์ฝํ ์ธ ๊ฐ ์์ (๋ณดํต ์ญ์ ์์ฒญ ํ ์ฌ์ฉ) |
| 206 | Partial Content | ํด๋ผ์ด์ธํธ๊ฐ ๋ฒ์(Range) ํค๋๋ฅผ ๋ณด๋ธ ๊ฒฝ์ฐ, ๋ฆฌ์์ค์ ์ผ๋ถ๋ถ๋ง ์ ์กํจ |
3) ๋ฆฌ๋ค์ด๋ ํธ
- ์์ฒญ์ ์๋ฃํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์ ์ถ๊ฐ ์์ (์ฃผ๋ก ๊ฒฝ๋ก ์ด๋)์ด ํ์ํจ์ ๋ํ๋ ๋๋ค.
| ์ํ ์ฝ๋ | ๋ช ์นญ | ์ค๋ช |
| 301 | Moved Permanently | ์์ฒญํ ๋ฆฌ์์ค์ URI๊ฐ ์๊ตฌ์ ์ผ๋ก ๋ณ๊ฒฝ๋จ. ์๋ก์ด URI๊ฐ ์๋ต์ ํฌํจ๋ ์ ์์ |
| 302 | Found | ๋ฆฌ์์ค์ URI๊ฐ ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝ๋จ. ํฅํ ์์ฒญ์ ์๋ URI๋ฅผ ์ฌ์ฉํด์ผ ํจ |
| 304 | Not Modified | (์ค์) ์บ์ ๋ชฉ์ . ๋ฆฌ์์ค๊ฐ ์์ ๋์ง ์์์ผ๋ ํด๋ผ์ด์ธํธ๋ ์บ์๋ ๋ฒ์ ์ ์ฌ์ฉํ๋ฉด ๋จ |
| 307 | Temporary Redirect | ๋ฆฌ์์ค๊ฐ ๋ค๋ฅธ URI์ ์์ผ๋ฉฐ, ์ด์ ์์ฒญ๊ณผ ๋์ผํ Method(GET/POST ๋ฑ)๋ก ๋ค์ ์์ฒญํด์ผ ํจ |
| 308 | Permanent Redirect | ๋ฆฌ์์ค๊ฐ ์๊ตฌ์ ์ผ๋ก ๋ค๋ฅธ URI์ ์์ผ๋ฉฐ, ์ด์ ์์ฒญ๊ณผ ๋์ผํ Method๋ก ๋ค์ ์์ฒญํด์ผ ํจ |
4) ํด๋ผ์ด์ธํธ ์๋ฌ
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฌธ์ ๊ฐ ์์ด ์๋ฒ๊ฐ ์ฒ๋ฆฌ๋ฅผ ๊ฑฐ๋ถํ์์ ๋ํ๋ ๋๋ค.
| ์ํ ์ฝ๋ | ๋ช ์นญ | ์ค๋ช |
| 400 | Bad Request | ์๋ชป๋ ๋ฌธ๋ฒ ๋ฑ์ผ๋ก ์ธํด ์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ ์ ์์ |
| 401 | Unauthorized | (JWT ํต์ฌ) ๋น์ธ์ฆ ์ํ. ์์ฒญ์ ์ํด ๋ฐ๋์ ์ค์ค๋ก๋ฅผ ์ธ์ฆ(๋ก๊ทธ์ธ ๋ฑ)ํด์ผ ํจ |
| 403 | Forbidden | ํด๋ผ์ด์ธํธ๊ฐ ์ฝํ ์ธ ์ ์ ๊ทผํ ๊ถํ์ด ์์ (401๊ณผ ๋ฌ๋ฆฌ ์๋ฒ๋ ๋๊ตฐ์ง ์์ง๋ง ๊ฑฐ์ ํจ) |
| 404 | Not Found | ์์ฒญํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์. ๊ฒฝ๋ก๊ฐ ์๋ชป๋์์ ๋ ๊ฐ์ฅ ํํ ๋ฐ์ํจ |
| 405 | Method Not Allowed | ์์ฒญํ ๋ฉ์๋(GET, POST ๋ฑ)๋ ์์ง๋ง ํด๋น ๋ฆฌ์์ค์์ ์ฌ์ฉํ ์ ์์ |
| 409 | Conflict | ์์ฒญ์ด ์๋ฒ์ ํ์ฌ ์ํ์ ์ถฉ๋ํจ (์: ์ค๋ณต๋ ์์ด๋ ๊ฐ์ ์๋) |
| 429 | Too Many Requests | ์ฌ์ฉ์๊ฐ ์งง์ ์๊ฐ ๋ด์ ๋๋ฌด ๋ง์ ์์ฒญ์ ๋ณด๋ (Rate Limiting) |
5) ์๋ฒ ์๋ฌ
- ์๋ฒ๊ฐ ์ ํจํ ์์ฒญ์ ๋ช ๋ฐฑํ๊ฒ ์ํํ์ง ๋ชปํ์์ ๋ํ๋ ๋๋ค.
| ์ํ ์ฝ๋ | ๋ช ์นญ | ์ค๋ช |
| 500 | Internal Server Error | ์๋ฒ ๋ด๋ถ ์ค๋ฅ๋ก ์์ฒญ์ ์ฒ๋ฆฌํ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๋ ์ํฉ |
| 502 | Bad Gateway | ๊ฒ์ดํธ์จ์ด๋ ํ๋ก์ ์๋ฒ๊ฐ ์์ ์๋ฒ๋ก๋ถํฐ ์๋ชป๋ ์๋ต์ ๋ฐ์ |
| 503 | Service Unavailable | ์๋ฒ๊ฐ ์ผ์์ ์ธ ๊ณผ๋ถํ๋ ์ ์ง๋ณด์๋ก ์ธํด ์์ฒญ์ ์ฒ๋ฆฌํ ์ค๋น๊ฐ ์ ๋จ |
| 504 | Gateway Timeout | ๊ฒ์ดํธ์จ์ด๊ฐ ์์ ์๋ฒ๋ก๋ถํฐ ์ ์๊ฐ์ ์๋ต์ ๋ฐ์ง ๋ชปํจ |
HTTP ๋ก ์ ์ดํ๋ ์ถ๊ฐ ๊ธฐ๋ฅ๋ค
1) HTTP ์ฟ ํค
- ์๋ฒ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ๋ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ
- ์๋ฒ์ ์๋ต : ์๋ฒ ์๋ต์, ์ฟ ํค๋ฅผ ์์ฑํ๊ฑฐ๋ ์ ์ฅํ๊ณ ์ถ์ ๋ ์๋ต ํค๋์ Set-Cookie ๋ผ๋ ํ๋๋ฅผ ํฌํจํด์ ๋ณด๋
(์์: Set-Cookie: user_id=eunsil; Max-Age=3600; Path=/) - ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ : ์๋ต์ ๋ฐ์ ๋ธ๋ผ์ฐ์ ๋ ํค๋๋ฅผ ํ์ธํ๊ณ , ํด๋น ์ ๋ณด๋ฅผ ์์ ์ ์ฟ ํค ์ ์ฅ์์ ๋ณด๊ด
- ์ดํ์ ์์ฒญ : ์ด์ ๋ธ๋ผ์ฐ์ ๋ ๋์ผํ ์๋ฒ์ ๋ค์ ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค, ์ ์ฅ๋ ์ฟ ํค๋ฅผ ์์ฒญ(Request) ํค๋์ Cookie ํ๋์ ์๋์ผ๋ก ๋ด์์ ์ ์ก
- ์๋ฒ์ ์๋ต : ์๋ฒ ์๋ต์, ์ฟ ํค๋ฅผ ์์ฑํ๊ฑฐ๋ ์ ์ฅํ๊ณ ์ถ์ ๋ ์๋ต ํค๋์ Set-Cookie ๋ผ๋ ํ๋๋ฅผ ํฌํจํด์ ๋ณด๋
- ์ฟ ํค ์ฌ์ฉ ๋ชฉ์ 3๊ฐ์ง
- ์ฒซ๋ฒ์งธ, ์ธ์ ๊ด๋ฆฌ(Session management) : ์๋ฒ์ ์ ์ฅํด์ผ ํ ๋ก๊ทธ์ธ, ์ฅ๋ฐ๊ตฌ๋, ๊ฒ์ ์ค์ฝ์ด ๋ฑ์ ์ ๋ณด ๊ด๋ฆฌ
- ๋๋ฒ์งธ, ๊ฐ์ธํ(Personalization) : ์ฌ์ฉ์ ์ ํธ, ํ ๋ง ๋ฑ์ ์ธํ
- ์ธ๋ฒ์งธ, ํธ๋ ํน(Tracking) : ์ฌ์ฉ์์ ํ๋์ ๊ธฐ๋กํ๊ณ ๋ถ์ํ๋ ์ฉ๋
- ์ด๋ฅผ ํตํด ์ํ๊ฐ ์๋ http ํ๋กํ ์ฝ ํ๊ฒฝ์์๋ ์๋ฒ๊ฐ ์ฌ์ฉ์ ์๋ณ, ๊ฐ๋ฅํด์ง.
2) HTTP ์บ์ฑ
- ์ด์ ์ ๊ฐ์ ธ์จ ๋ฆฌ์์ค๋ค์ ์ฌ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ.
- ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋ฆฌ์์ค์ ๋ณต์๋ณธ์ ์ ์ฅํ๊ณ ์๋ค๊ฐ ์์ฒญ ์์ ๊ทธ๊ฒ์ ์ ๊ณตํ๋ ๊ธฐ์
- ๋ ์ดํด์์ ํธ๋ํฝ์ ์ค์ฌ์ค์ผ๋ก์จ ๋ฆฌ์์ค๋ฅผ ๋ณด์ฌ์ฃผ๋๋ฐ ํ์ํ ์๊ฐ์ ์ค์ฌ์ค
- ์ ์ฅ ์์น
- ๊ฐ์ธ ์บ์ private cache : ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ ์ฑ ๋ด๋ถ ์ ์ฅ์(disk/memory) ์ ์ ์ฅ. ์ค์ง ์ฌ์ฉ์๋ฅผ ์ํ ์บ์
- ๊ณต์ ์บ์ shared cache : ํด๋ผ์ด์ธํธ-์๋ฒ ์ฌ์ด์ ํ๋ก์ ์๋ฒ๋ CDN(content delivery network) ์ ์ ์ฅ. ์ฌ๋ฌ ์ฌ์ฉ์์๊ฒ ๋์ผํ๊ฒ ์ ๋ฌ๋๋ ๋ฆฌ์์ค๋ฅผ ์ ์ฅํด์ ์๋ฒ ๋ถํ๋ฅผ ์ค์.
- ๋ฌด์์ ์ ์ฅํ๋๊ฐ
- ๋ฆฌ์์ค ์์ฒด : HTML ๋ฌธ์, ์ด๋ฏธ์ง, ๋น๋์ค, CSS ํ์ผ, js ํ์ผ ๋ฑ ์๋ฒ๋ก๋ถํฐ ๋ถ๋ฌ์จ ํ์ ๋ฌธ์๋ค
- ์๋ต ํค๋ : ํด๋น ๋ฆฌ์์ค๊ฐ ์ธ์ ์์ฑ๋๋์ง, ์ธ์ ๊น์ง ์ ํจํ์ง(๋ง๋ฃ์ผ), ๊ณ ์ ์๋ณ์(ETag) ๋ ๋ฌด์์ธ์ง ๋ฑ
- ์ด๋ป๊ฒ ์ ์ดํ๋๊ฐ
- cache-control : ์บ์ฑ ํด์ผํ๋ ๋์, ์ ํจ ๊ธฐ๊ฐ ์ค์ ๋ฑ
- ์ ํจ์ฑ ๊ฒ์ฌ(valdation) : ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์ค๋๋์๋ ์๋ฒ์๊ฒ ์ ํจ ์ฌ๋ถ ๋ฌผ์. 304 not modified ์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ์ ์ก ์์ด ์บ์๋ฅผ ์ฌ์ฉํจ.
- ์ ์ฅ ์์น
3) Origin ์ ์ฝ ์ํ (CORS)
- ์น๋ธ๋ผ์ฐ์ ๋ ๋ณด์์ ์ํด ๋์ผ ์ถ์ฒ ์ ์ฑ (SOP) ์ ๋ฐ๋ฅธ๋ค.
- Origin(์ถ์ฒ): ํ๋กํ ์ฝ(http/https) + ๋๋ฉ์ธ(eunsil.com) + ํฌํธ(8080)๊ฐ ๋ชจ๋ ๊ฐ์์ผ ๋์ผ ์ถ์ฒ๋ผ๊ณ ๋ด
- ์ฆ, ์์ ์ด ์ฒ์ ๋ก๋๋ ๋๋ฉ์ธ๊ณผ ๋ค๋ฅธ ๋๋ฉ์ธ์ผ๋ก๋ ์์ฒญ์ ๋ณด๋ผ ์ ์๊ฒ ์ ํ๋จ.
- ์๋๋ฉด, ๋ง์ฝ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฌด ์ฌ์ดํธ์๋ ์์ฒญ ๋ณด๋ด๋๊ฑธ ํ์ฉํ๋ฉด, ํด์ปค๊ฐ ๋ง๋ ์ฌ์ดํธ์ js ๊ฐ ๋ด ์ ๋ณด ๋นผ๊ฐ ์ ์๊ฒ๋จ.
- ๊ทธ๋ฌ๋ ๋ณดํต
- (ํ๋ก ํธ๊ฐ๋ฐ์๋ฒ) react, vue ๋ฑ์ 3000๋ฒ ํฌํธ, (๋ฐฑ์๋๊ฐ๋ฐ์๋ฒ) spring boot, node.js ๋ฑ์ 8000๋ฒ ํฌํธ ์ธ๊ฒฝ์ฐ
- ์ ์ ํ์ผ์ ๋น ๋ฅด๊ฒ ์ ๋ฌํ๊ธฐ ์ํด s3 ๊ฐ์ ์คํ ๋ฆฌ์ง ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- AWS EC2 ํด๋ผ์ฐ๋ ์๋ฒ ์ฌ์ฉ
- ์๋ธ ๋๋ฉ์ธ ๋ฑ๋ฑ
- ํ์ค์ ์ธ ์ด์ ๋ก ์ฃผ์๋ ๋ค๋ฅด์ง๋ง, ๋ฐ์ดํฐ๋ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํจ !
- CORS (Cross-Origin Resource Sharing): HTTP ํค๋๋ฅผ ํตํด ์ด ์ ์ฝ์ ์์ ํ๊ฒ ์ํํ๋ ๋ฉ์ปค๋์ฆ
- ์๋ ๋ฐฉ์: ์๋ฒ๊ฐ ์๋ต ํค๋์ Access-Control-Allow-Origin์ ์ค์ด ๋ณด๋ด๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ํด๋น ๋๋ฉ์ธ์ ์ ๊ทผ์ ํ์ฉํจ.
4) ์ปค๋ฅ์ ๊ด๋ฆฌ์ ์งํ
- http ๋ฉ์์ง ๊ตํ์ ์ํด์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ TCP ์ฐ๊ฒฐ์ด ๋จผ์ ์ค์ ๋์ด์ผ ํจ. (๋คํธ์ํฌ 4๊ณ์ธต ์ฐธ๊ณ )
- ์น์ด ๋ฐ์ ํ๋ฉด์ ๋์ฑ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด ๊ณ ์๋์ด์ด.
- "์ด๋ป๊ฒ ํ๋ฉด ์ฐ๊ฒฐ์ ๋งบ๊ณ ๋๋ ๋ญ๋น๋ฅผ ์ค์ด๊ณ ํ ๋ฒ์ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ๊ฒ์ธ๊ฐ?" ๋ฅผ ํด๊ฒฐํ๋ฉด์ ์งํํจ.
| ๋จ๊ณ | ์ฃผ์ ํน์ง | ์ค๋ช |
| HTTP/1.0 | ๋จ๊ธฐ ์ปค๋ฅ์ | ์์ฒญ/์๋ต ํ๋๋น ๋งค๋ฒ ์๋ก์ด TCP ์ฐ๊ฒฐ์ ๋งบ๊ณ ๋์ (๋งค์ฐ ๋นํจ์จ์ ). |
| HTTP/1.1 | ์ง์ ์ปค๋ฅ์ | Connection: keep-alive ํค๋๋ฅผ ํตํด ํ๋ ์ฐ๊ฒฐ๋ก ์ฌ๋ฌ ์์ฒญ์ ์ฐ์ํด์ ์ฒ๋ฆฌ. |
| HTTP/2 | ๋ค์คํ (Multiplexing) | ๋จ์ผ ์ฐ๊ฒฐ ์์์ ์ฌ๋ฌ ๋ฉ์์ง๋ฅผ ๋์์ ์ ์กํ์ฌ ๋๊ธฐ ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ์ค์. |
| HTTP/3 | QUIC (UDP ๊ธฐ๋ฐ) | TCP ๋์ UDP ๊ธฐ๋ฐ์ QUIC ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋ ๋น ๋ฅด๊ณ ์์ ์ ์ธ ์ฐ๊ฒฐ ์ ๊ณต. |
- http 1.1 ๋ถํฐ ์ง์ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํด์ง. ํ๋์ ์ฐ๊ฒฐ๋ก ์ฌ๋ฌ ์ฐ์ ์์ฒญ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ง๋ฉด์, ์ด๋ฏธ์ง ์์ญ๊ฐ ๋ค์ด์๋ ์น ํ์ด์ง๋ฅผ ๋น ๋ฅด๊ฒ ๋ก๋ ๊ฐ๋ฅํด์ง.
- http 2๋ถํฐ ๋ฉ์์ง๊ฐ ์บก์ํ๋ผ์ ์ธ๊ฐ์ด ์ฝ๊ธฐ ์ด๋ ค์ด frame ๊ตฌ์กฐ๋ก ์ ์ก.
- ok http ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ด๋ถ์ ์ผ๋ก ์ด๋ฐ ์ปค๋ฅ์ ํ๋ง, http2, http3 ์๋ ์ง์ํจ.
'ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [260121] PostgreSQL ๋ฐ์ดํฐ ํ์ ์ข ๋ฅ (0) | 2026.01.21 |
|---|---|
| [260115] REST API ์ ๋ฌด์ํ์ฑ(state less) (0) | 2026.01.15 |
| [260113] ํธ๋์ ์ ์ด๋? (Transaction) (0) | 2026.01.13 |
| ๋ฒ์ ๊ด๋ฆฌ๋? Git ์ฝ๊ฒ ์ดํดํ๊ธฐ, Git๊ณผ GitHub ์ฐจ์ด (0) | 2025.11.16 |