HTTP ( HyperText Transfer Protocol)
๐. HTTP ํ๋กํ ์ฝ์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. โญ๏ธ
HTTP๋ ์น ์์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฒ ํด์ฃผ๋ ํ๋กํ ์ฝ์ ๋๋ค.
HTTP๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ก ๊ตฌํ๋ฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ HTTP ๋ฉ์๋๋ก ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ด๋ฉด,
์๋ฒ๋ HTTP ์ํ์ฝ๋๋ก ์๋ตํ๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค.
๐. HTTP์ ์์ฒญ/์๋ต ๋ชจ๋ธ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญํ๊ณ ์๋ต๋ฐ๋ ๋ชจ๋ธ์ ๋๋ค.
ํด๋ผ์ด์ธํธ๋ HTTP ๋ฉ์๋, ํค๋, ๋ฐ๋์ ํจ๊ป ์๋ฒ์๊ฒ HTTP ์์ฒญ์ ๋ณด๋ ๋๋ค.
์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ HTTP ๋ฉ์๋ ํค๋, ๋ฐ๋์ ๋ฐ๋ฅธ ์ฒ๋ฆฌ๋ฅผ ์ํํ ๋ค์ ์ํ์ฝ๋๋ฅผ ํตํด HTTP ์๋ต์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ๋ ์๋ต์ ์ฒ๋ฆฌํฉ๋๋ค.
์๋ฅผ ๋ค์ด HTML ์๋ต์ ๋ฐ์์ ๊ฒฝ์ฐ ํ๋ฉด์ ๋ ๋๋ง ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ HTTP request๋ฅผ ์๋ฒ์ ๋ณด๋ด๋ฉด ์๋ฒ๋ HTTP response๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด๋ ๊ตฌ์กฐ์ ๋๋ค.
request message๋ start line(method, path, HTTP version), headers, body๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ
response message๋ status line(HTTP version, status code, status message), headers, body๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
๐. HTTP ๋ฉ์๋ ์ค GET๊ณผ POST์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
GET ๋ฉ์๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋์ด๊ณ ,
POST ๋ฉ์๋๋ ์๋ฒ์๊ฒ ๋ฐ์ดํฐ ์ฒ๋ฆฌ(์ฃผ๋ก ์์ฑ)๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉ๋๋ ๋ฉ์๋์ ๋๋ค.
GET ์์ฒญ์ ๊ฒฝ์ฐ ํ์ํ ์ ๋ณด๋ฅผ ํน์ ํ๊ธฐ ์ํด URL ๋ค์ Query String์ ์ถ๊ฐํ์ฌ ์ ๋ณด๋ฅผ ์กฐํํ๊ณ ,
POST ์์ฒญ์ ๊ฒฝ์ฐ ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ Body ๋ถ๋ถ์ ํฌํจํ์ฌ ํต์ ํฉ๋๋ค.
GET ์์ฒญ์ ๊ฒฝ์ฐ URL ๋ค์ Query String๊น์ง ํฌํจํด์ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ๊ฒ ๋๊ณ ์บ์๊ฐ ๊ฐ๋ฅํ์ง๋ง,
POST ์์ฒญ์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ์ง ์๊ณ ์บ์๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๐. HTTP ๋ฉ์๋ ์ค PUT๊ณผ PATCH์ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
PUT ๋ฉ์๋์ PATCH ๋ฉ์๋๋ ๋ชจ๋ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฉ์๋๋ผ๋ ๊ณตํต์ ์ด ์์ต๋๋ค.
ํ์ง๋ง PUT ์์ฒญ์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์์ , ๋์ฒด ( ๋ฉฑ๋น )ํ๊ณ ,
PATCH ์์ฒญ์ ๊ฒฝ์ฐ ์ผ๋ถ ๋ฆฌ์์ค๋ง ์์ ํ๊ฒ ๋ฉ๋๋ค.
๐. HTTP ์ํ ์ฝ๋๊ฐ ๋ญ๊ฐ์? ์๊ณ ์๋ ์ํ ์ฝ๋ ๋ช ๊ฐ์ง ์ค๋ช ํด ์ฃผ์ธ์.
HTTP status code๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ HTTP ์์ฒญ์ ๋ํ ์๋ฒ์ ์๋ต ์ฝ๋๋ก,
์์ฒญ์ ์ฑ๊ณต/์คํจ ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์์ต๋๋ค.
100๋ฒ๋๋ถํฐ 500๋ฒ๋๊น์ง ์ด 5๊ฐ์ ํด๋์ค๋ก ๊ตฌ๋ถ๋์ด HTTP ์์ฒญ์ ๋ํ ์ํ๋ฅผ ์๋ ค์ค๋๋ค.
- 1xx (์ ๋ณด): ์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ์์ ์ ๊ณ์ํ๋ค.
- 2xx (์ฑ๊ณต): ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋์์ ์ฑ๊ณต์ ์ผ๋ก ์์ ํ์ฌ ์ดํดํ์๊ณ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌํ์๋ค.
- 3xx (๋ฆฌ๋ค์ด๋ ์ ): ์์ฒญ์ ์๋ฃํ๊ธฐ ์ํด ์ถ๊ฐ ์์ ์กฐ์น๊ฐ ํ์ํ๋ค.
- 4xx (ํด๋ผ์ด์ธํธ ์ค๋ฅ): ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฌธ์ ๊ฐ ์๋ค.
- 5xx (์๋ฒ ์ค๋ฅ): ์๋ฒ๊ฐ ์ ํจํ ์์ฒญ์ ์ํ์ ์คํจํ๋ค.
์์ฃผ ๋ฑ์ฅํ๋ HTTP ์๋ต์ฝ๋
200 | OK | ์์ฒญ์ด ์ฑ๊ณตํจ (ex. ์์ก์กฐํ ์ฑ๊ณต) |
201 | Created | ๋ฆฌ์์ค ์์ฑ ์ฑ๊ณต (ex. ๊ฒ์๊ธ ์์ฑ ์ฑ๊ณต, ํ์๊ฐ์ ์ฑ๊ณต) |
400 | Bad Request | ๋ฐ์ดํฐ์ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์๋ ๋ฑ ์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ ์ ์์(ex. ์ฌ๋ฐ๋ฅด์ง ์์ ํ์์ ๋ฐ์ดํฐ ์ ๋ ฅ ๋ฑ) |
401 | Unauthorized | ์ธ์ฆ๋์ง ์์ ์ํ์์ ์ธ์ฆ์ด ํ์ํ ๋ฆฌ์์ค์ ์ ๊ทผํจ(ex. ๋ก๊ทธ์ธ ์ ์ ์ฌ์ฉ์ ์ ๋ณด ์์ฒญ ๋ฑ) |
403 | Forbidden | ์ธ์ฆ๋ ์ํ์์ ๊ถํ์ด ์๋ ๋ฆฌ์์ค์ ์ ๊ทผํจ(ex. ์ผ๋ฐ ์ ์ ๊ฐ ๊ด๋ฆฌ์ ๋ฉ๋ด ์ ๊ทผ ๋ฑ) |
404 | Not Found | ์์ฒญํ route๊ฐ ์์. ์ฐพ๋ ๋ฆฌ์์ค๊ฐ ์์ (ex. www.naver.com/seowoo ๋ฑ ์กด์ฌํ์ง ์๋ route์ ์์ฒญ ๋ฑ) |
502 | Bad Gateway | ์๋ฒ์์ ์์ํ์ง ๋ชปํ ์๋ฌ๊ฐ ๋ฐ์ํจ (ex. ์์ธ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ ์ค๋ฅ๊ฐ ๋ฐ์ ๋ฑ) |
๐. HTTP ํค๋๊ฐ ๋ญ๊น์? ์๊ณ ์๋ ํค๋ ๋ช ๊ฐ์ง ์ค๋ช ํด ์ฃผ์ธ์.
HTTP ํค๋๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ด๋ค ํ์๋ฅผ ํ ๊ฑด์ง์ ๋ํ ๋ถ๊ฐ ์ ๋ณด์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์๋ฒ๊ฐ ์๋ต ํค๋์ Cache-Control๋ฅผ ์ถ๊ฐํ์ฌ,
์๋ตํ ๋ฐ์ดํฐ๊ฐ ์บ์ฑ๋๋๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค์ค ์ ์์ต๋๋ค.
๐. HTTP์ ๋ฌด์ํ์ฑ(Stateless)์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์. โญ๏ธ
Stateless๋ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ์ ์งํ์ง ์๋ ํน์ฑ์ ๋๋ค.
์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ด์ธํธ์ ๋ํ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฐ์ง ์๋ณํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๊ธฐ ์ํด ์ฟ ํค, ์ธ์ ๊ณผ ๊ฐ์ ์ํ์ ์ง ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๐. HTTP Keep-Alive์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์.
HTTP Keep-Alive๋ HTTP ์์ฒญ/์๋ต ์ TCP ์ฐ๊ฒฐ์ ์ ์งํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
์ด๋ฅผ ํตํด ๋งค๋ฒ ์ฐ๊ฒฐ์ ํ์ง ์์๋ ์ฌ๋ฌ ๊ฐ์ ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์น ์๋ต ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ ์ ์์ต๋๋ค.
๐. HTTP ํ์ดํ๋ผ์ด๋์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์.
HTTP ํ์ดํ๋ผ์ด๋์ ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ๊ธฐ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ฌ๋ฌ ๊ฐ์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ ๋๋ค.
์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋๊ธฐ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
๐. HTTP/1.1, HTTP/2, HTTP/3 ๊ฐ๊ฐ์ ํน์ง์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
HTTP/1.1์๋ keep-alive(์ง์์ ์ฐ๊ฒฐ), ํ์ดํ๋ผ์ธ ๋ฑ TCP ๋ ๋ฒจ์์ ํผํฌ๋จผ์ค ํฅ์์ ๋ชฉํ๋ก ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
HTTP/2์์๋ ๋ฉํฐํ๋ ์ฑ์ด๋ HPACK, ์๋ฒ ํธ์ ๋ฑ TCP ๋ ๋ฒจ๋ฟ๋ง ์๋๋ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์์๋ ์ฑ๋ฅ ํฅ์์ ๋ชฉํ๋ก ํ๋ ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ฉํฐํ๋ ์ฑ : 1๊ฐ์ TCP ์ปค๋ฅ์ ์์ ์คํธ๋ฆผ์ด๋ผ๋ ๊ฐ์ ์ฑ๋์ ๋ง๋ค๊ณ , ์คํธ๋ฆผ๋ณ๋ก ์์ฒญ๊ณผ ์๋ต์ ๊ตํํ๊ฒ ํจ์ผ๋ก์จ HOL ๋ธ๋กํน ๋ฌธ์ ๋ฅผ ํด์ํฉ๋๋ค.
- HPACK : ๋ฉ์์ง ํค๋๋ฅผ ์์ถํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- ์๋ฒ ํธ์ : HTTP/2 ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ต์ด๋ก ์์ฒญํ ์ฝํ ์ธ ๋ฅผ ํด์ํ๊ณ , ๋ค์์ ์ฌ ์์ฒญ์ ๋ํ ์๋ต์ ์์ฒญ์ด ์ค๊ธฐ ์ ์ ๋ณด๋ ๋๋ค.
HTTP/3๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ง ์๋ ์๊ฐ์ ๊ทน๋จ์ ์ผ๋ก ์ค์ธ ๊ฒ์ผ๋ก, ๋ฐ์ด๋ ์ฑ๋ฅ ํฅ์์ ๋ชฉํ๋ก ํฉ๋๋ค. ๊ฐ์ฅ ํฌ๊ฒ ๋ณํํ ๋ถ๋ถ์ TCP๊ฐ ์๋๋ผ UDP๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. UDP๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ 3 ์จ์ด ํธ๋์ ฐ์ดํฌ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ด๊ณ , ๋ ๋ง์ HTTP ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋๋ก ํฉ๋๋ค.
HTTPS
๐. HTTPS์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์.
HTTPS๋ HTTP์ ๋ฌ๋ฆฌ SSL, TLS ํ๋กํ ์ฝ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ ์ ์กํ๊ธฐ ๋๋ฌธ์
๋ฐ์ดํฐ ๋ณด์์ ํ ์ ์๋ ์ด์ ์ด ์์ต๋๋ค.
๐. SSL/TLS์ด ๋ญ๊ฐ์?
SSL์ ์ปดํจํฐ ๋คํธ์ํฌ์ ํต์ ๋ณด์์ ์ ๊ณตํ๋ ํ๋กํ ์ฝ(๊ณ์ธต)์ ๋๋ค.
TLS(Transport Layer Security)๋ผ๋ ์ด๋ฆ์ SSL์ด ํ์คํ๋๋ฉด์ ๋ฐ๋ ์ด๋ฆ์ ๋๋ค.
SSL์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ํต์ ๋ฐ์ดํฐ์ ๋ํ ๋์ฒญ, ๊ฐ์ญ, ์์กฐ๋ฅผ ๋ฐฉ์งํด ์ค๋๋ค.
๋ํ ๋ฐ์ดํฐ๋ฅผ ์ํธํํด ์ฃผ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ ์๋ฒ๊ฐ ์์ ํ ํต์ ์ ํ ์ ์๊ฒ ํด ์ค๋๋ค.
๐. ๋์นญํค ์ํธํ ๋ฐฉ์์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
์ํธํ, ๋ณตํธํํ ๋ ์ฌ์ฉ๋๋ ํค๊ฐ ๊ฐ์ต๋๋ค.
์ก์ ์์ ์์ ์๋ ๋์นญํค๋ฅผ ๊ณต์ ํฉ๋๋ค.
์ก์ ์๋ ๋์นญํค๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ ์ ์กํ๊ณ ,
์์ ์๋ ์์ ํ ๋ฐ์ดํฐ๋ฅผ ๋์นญํค๋ฅผ ์ด์ฉํด์ ๋ณตํธํํฉ๋๋ค.
๐. ๋น๋์นญํค(๊ณต๊ฐํค) ์ํธํ ๋ฐฉ์์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์.
๊ณต๊ฐํค ์ํธํ ๊ธฐ๋ฒ์์๋ ์ํธํ, ๋ณตํธํํ ๋ ์ฌ์ฉ๋๋ ํค๊ฐ ๋ค๋ฆ ๋๋ค.
๊ณต๊ฐํค๋ ๋ชจ๋์๊ฒ ๊ณต๊ฐ๋ ํค๋ผ๋ ๋ป์ด๊ณ , ๊ฐ์ธํค๋ ๊ฐ์ธ์ด ๋น๋ฐ์ค๋ฝ๊ฒ ๊ฐ์ง๊ณ ์๋ ํค๋ผ๋ ๋ป์ ๋๋ค.
๊ณต๊ฐํค ์ํธํ๋ ์๋์ ๊ฐ์ด ๋ ๊ฐ์ง ๋ฐฉ์์ด ์์ต๋๋ค.
๊ณต๊ฐ ํค๋ก ์ํธํํ๊ณ ๊ฐ์ธ ํค๋ก ๋ณตํธํํ๋ฉด ์ง์ง ๋ณด์์ ์ํ ๋ชฉ์ ์ด๊ณ ,
๊ณต๊ฐ ํค๋ก ๋ณตํธํํ๊ณ ๊ฐ์ธ ํค๋ก ์ํธํํ๋ฉด ์ธ์ฆ์ ์ํ ๋ชฉ์ ์ ๋๋ค.
1. ๊ณต๊ฐํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ , ๊ฐ์ธํค๋ก ๋ณตํธํํ๋ ๋ฐฉ์ : ๋ฐ์ดํฐ ์๋ณตํธํ
๋ฐ์ดํฐ๋ฅผ ์ํธํ๋ ํค๋ ๋ชจ๋์๊ฒ ๊ณต๊ฐํ๊ณ ,
๋ฐ์ดํฐ๋ฅผ ๋ณตํธํ๋ ํค๋ ๊ฐ์ธ๋ง ๊ฐ๊ฒ ํ๋ ๋ฐฉ์์ด๋ค.
๋ค์์ ์ฌ๋๋ค์ ๊ณต๊ฐํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํ ํ ๋ค์
๊ฐ์ธํค๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ฌ๋์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณด๋ผ ์ ์๋ค.
๋ฐ์ดํฐ ๋ณตํธํ๋ ๊ฐ์ธํค๋ก๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
2. ๊ฐ์ธํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ ๊ณต๊ฐํค๋ก ๋ณตํธํํ๋ ๋ฐฉ์ : ์ ์ฌ์๋ช
๋ฐ์ดํฐ๋ฅผ ๋ณตํธํ๋ ํค๋ ๋ชจ๋์๊ฒ ๊ณต๊ฐํ๊ณ ,
๋ฐ์ดํฐ๋ฅผ ์ํธํ๋ ํค๋ ๊ฐ์ธ๋ง ๊ฐ๊ฒ ํ๋ ๋ฐฉ์์ด๋ค.
์ด๋ ํน์ ๊ฐ์ธ์ด ์์ ์ ์ธ์ฆํ๋ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
A๋ผ๋ ํน์ ๊ฐ์ธ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ธํค๋ก ์ํธํํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณต๊ฐํค๋ ๋ชจ๋์๊ฒ ๊ณต๊ฐํ๋ค.
๊ณต๊ฐํค๋ฅผ ๊ฐ์ง ๋๊ตฐ๊ฐ๋ A๋ก๋ถํฐ ๋ฐ์ ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต๊ฐํค๋ก ๋ณตํธํํด ๋ณธ๋ค.
๋ง์ฝ์ ๋ฐ์ดํฐ๊ฐ ๋ณตํธํ๊ฐ ๋๋ค๋ฉด, ๊ทธ ๋ฐ์ดํฐ๋ A๋ก๋ถํฐ ๋ณด๋ด์ง ๊ฒ์ด๋ค. (๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ ์ชฝ์ด A์์ ํ์ ํ ์ ์๋ค.)
“๊ณต๊ฐํค๋ฅผ ๊ฐ์ง ๋๊ตฐ๊ฐ๋ A๋ก๋ถํฐ ๋ฐ์ ์ํธํ๋ ๋ฐ์ดํฐ”๋ ์ธ์ฆ์ ์ํ ์๋ช ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ ์ ์๋ช ์ด๋ผ๊ณ ํ๋ค.
๐. ์ ์ ์๋ช ์ ๋ํด์ ์ค๋ช ํด ์ฃผ์ธ์.
์ ์์๋ช ์ ๋น๋์นญํค ์ํธํ ๋ฐฉ์์์ ๊ฐ์ธํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ ๊ณต๊ฐํค๋ก ๋ณตํธํํ๋ ๋ฐฉ์์ ๋๋ค.
์ ์์๋ช ์ด ๊ณต๊ฐํค๋ก ๋ณตํธํ๋๋ ๊ฒ์ ํตํด ํน์ ๊ฐ์ธ์ธ์ง ์ ๋ขฐํ ์ ์์ต๋๋ค.
๐. ๋์นญํค์ ๊ณต๊ฐํค ์ํธํ ๊ธฐ๋ฒ์ ๋ ๋ค ์ฌ์ฉํ๋ ์ด์
๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ ๋ง์ ์ปดํจํฐ ํ์๋ฅผ ์ฌ์ฉํ๋ค๋ ๋จ์ ์ด ์๋ค.
๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ง์ ์ ์์ด ๋ฌผ๋ฆฌ๋ ์๋ฒ๋ ๋งค์ฐ ํฐ ๋น์ฉ์ ์ง๋ถํด์ผ ํ๋ค.
๋์นญํค ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ๋ ค๋ฉด, ๋จผ์ ์ก์ ์์ ์์ ์๊ฐ ์์ ํ๊ฒ ๋์นญํค๋ฅผ ๊ณต์ ํด์ผ ํ๋ค.
์ํธํ๋์ง ์์ ์ฑ๋ก ๋์นญํค๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กํ๊ฒ ๋๋ฉด ํค๊ฐ ํ์ทจ๋ ์ ์์ผ๋ฏ๋ก ์ํํ๋ค.
์๋๋ ๋๋ฆฌ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ณต๊ฐํค ๋ฐฉ์์ผ๋ก ๋์นญํค๋ฅผ ์ํธํํด์ ์์ ํ๊ฒ ๊ณต์ ํ๊ณ
๊ณต์ ๋ ๋์นญํค๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ฃผ๊ณ ๋ฐ๋๋ค.
๐. HTTPS ์ํธํ ๊ณผ์ ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์. (SSL Handshake์ ๋์ ๊ณผ์ ์ ์ค๋ช ํด ์ฃผ์ธ์.) โญ๏ธ
SSL ํต์ ๊ณผ์ ์ “SSL ํธ๋์ ฐ์ดํฌ” - “Session” - “Session ์ข ๋ฃ” ์์ผ๋ก ์งํ๋๋ค.
HTTPS ํต์ ๊ณผ์ ์ ๊ทธ๋ฆผ๊ณผ ํจ๊ป ์ฐจ๋ก๋๋ก ์ดํด๋ณด์. (HTTPS๋ SSL ์์์ ๋์ํ๋ HTTP๋ค.)
- ์น ์๋ฒ(์ฌ์ดํธ)๋ ์๋ฒ ์ ๋ณด์ ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ธ์ฆ ๊ธฐ๊ด์ ์ฃผ๋ฉด์ ์ธ์ฆ ์์ฒญ์ ํฉ๋๋ค.
- ์ธ์ฆ ๊ธฐ๊ด์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์๋ฒ ์ ๋ณด์ ๊ณต๊ฐํค๋ฅผ ์ธ์ฆ๊ธฐ๊ด์ ๊ฐ์ธํค๋ก ์ํธํํ์ฌ ์ธ์ฆ์๋ฅผ ๋ง๋ญ๋๋ค.
- ์ธ์ฆ ๊ธฐ๊ด์ ์ธ์ฆ์์ ๋ํ ๊ณต๊ฐํค๋ฅผ ๋ธ๋ผ์ฐ์ ๋ค์๊ฒ ์ ๊ณตํ๊ณ , ์๋ฒ์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์น ์๋ฒ์ ์ ์ํ๋ฉด, ๋จผ์ ์๋ฒ๋ก๋ถํฐ ์ธ์ฆ์๋ฅผ ๋ฐ์ต๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ ๊ธฐ๊ด์ผ๋ก๋ถํฐ ๋ฐ์ ๊ณต๊ฐํค๋ฅผ ์ฌ์ฉํด ์ธ์ฆ์๋ฅผ ๊ฒ์ฆํฉ๋๋ค.
- ์ ๋ขฐํ ๋งํ ์ธ์ฆ๊ธฐ๊ด์ด๋ผ๋ฉด, ๋์นญํค๋ฅผ ๋ง๋ค๊ณ , ์ธ์ฆ์์ ๋ค์ด์๋ ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ฌ์ฉํด ๋์นญํค๋ฅผ ์ํธํํ์ฌ ์๋ฒ์ ์ ์กํฉ๋๋ค.
- ์๋ฒ๋ ์์ ํ๊ฒ ํด๋ผ์ด์ธํธ๊ฐ ๋ง๋ ๋์นญํค๋ฅผ ๋ฐ์ต๋๋ค.
- ์ด์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์์ ํ๊ฒ ๊ณต์ ๋ ๋์นญํค๋ฅผ ํตํด ์ํธํ ํต์ ์ด ๊ฐ๋ฅํด์ง๋๋ค.
DNS
๐. DNS๊ฐ ๋ญ๊ฐ์? โญ๏ธ
DNS๋ ๋๋ฉ์ธ ๋ค์์ IP ์ฃผ์๋ก ๋ณํํด ์ฃผ๋ ํ๋กํ ์ฝ์ด์ ๊ณ์ธตํ ๊ตฌ์กฐ๋ก ๊ตฌํ๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
ํธ์คํธ๊ฐ ๋๋ฉ์ธ ๋ค์์ ๋ํ IP ์ฃผ์๋ฅผ ์์ฒญํ๋ฉด DNS์ ๊ณ์ธต ์ง์๋ฅผ ํตํด IP ์ฃผ์๋ฅผ ์ป์ด๋ค๊ฐ ์ค๋๋ค.
๋ง์ฝ ๋ก์ปฌ DNS์ ํด๋น IP ์ฃผ์๊ฐ ์บ์ฑ๋์ด ์๋ค๋ฉด ๋ฐ๋ก ๋ฐ์ต๋๋ค.
๋น ๋ฅธ ์๋ต์ ์ ๊ณตํ๊ธฐ ์ํด DNS๋ UDP ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ณ DNS ์๋ฒ๋ค์ ์์ฒญ ์ ๋ณด๋ฅผ ์บ์ฑํด ๋ก๋๋ค.
๐. DNS ์๋ ๋ฐฉ์์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
์ฌ์ฉ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ์์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ํด๋น ๋๋ฉ์ธ์ DNS ์๋ฒ์ ๋ณด๋ด์ IP ์ฃผ์๋ฅผ ์์ฒญํฉ๋๋ค.
DNS๋ IP์ฃผ์๋ฅผ ์ฐพ์์ ๋ธ๋ผ์ฐ์ ์ ๋ณด๋ด๊ณ , ๋ธ๋ผ์ฐ์ ๋ IP์ฃผ์๋ฅผ ํตํด ์๋ฒ์ ์์ฒญ์ ๋ณด๋ ๋๋ค.
๐. DNS ์ง์ ์ข ๋ฅ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
์ฌ๊ท์ ์ง์๋ ๋๋ฉ์ธ ๋ค์์ ํด๋นํ๋ IP์ฃผ์๋ฅผ ํตํด DNS๊ฐ ๋ค๋ฅธ DNS์๊ฒ ์ฌ๊ท์ ์ผ๋ก IP ์ฃผ์๋ฅผ ๋ฌผ์ด๋ณด๋ ๊ฒ์ ๋ปํฉ๋๋ค.
๋ฐ๋ณต์ ์ง์๋ IP ์ฃผ์๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ฐ๋ณต์ ์ผ๋ก ์ง์ํ๋ ๊ฒ์ ๋๋ค.
๋ก์ปฌ DNS๊ฐ ๋ฃจํธ DNS์๊ฒ IP์ฃผ์๋ฅผ ๋ฌผ์ด๋ดค๋๋ฐ ์์ผ๋ฉด TLD DNS์๊ฒ ๋ฌผ์ด๋ณด๊ณ ๋ ์์ผ๋ฉด authoriative DNS์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฌผ์ด๋ณด๋ ๊ฒ์ ์์๋ก ๋ค ์ ์์ต๋๋ค.
๐. DNS ์๋ฒ์๊ฒ IP ์ฃผ์๋ฅผ ์์ฒญํ ๋, ์ UDP๋ฅผ ์ฌ์ฉํ๋์?
DNS๋ ์ ๋ขฐ์ฑ๋ณด๋ค ์๋๊ฐ ๋ ์ค์ํ ์๋น์ค์ด๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ ์ค์ ์ ๋๋ ๋น์ฉ์ด ์๋ UDP๋ฅผ ์ฌ์ฉํฉ๋๋ค.
DNS๋ ์ฐ๊ฒฐ ์ํ๋ฅผ ์ ์งํ ํ์๊ฐ ์๊ณ , TCP๋ณด๋ค ๋ง์ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฉํ ์ ์๋ UDP๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๐. DNS ๋ ์ฝ๋๊ฐ ๋ฌด์์ธ๊ฐ์?
DNS Record๋ DNS ์๋ฒ๊ฐ ํด๋น ํจํท์ ๋ฐ์์ ๋ ์ด๋ค ์์ผ๋ก ์ฒ๋ฆฌํ ์ง๋ฅผ ๋ํ๋ด๋ ์ง์นจ์ ๋งํฉ๋๋ค.
๊ฐ๋จํ ๋งํ๋ฉด DNS ์์์ ๋๋ฉ์ธ์ ๊ดํ ์ค์ ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ผ๋ จ์ ์ค์ ๋ฌธ์๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
DNS ๋ ์ฝ๋์๋ ์๋ฒ๊ฐ ์์ฒญ์ ์๋ตํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ค์ํ ๊ตฌ๋ฌธ๊ณผ ๋ช ๋ น์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋ํ์ ์ผ๋ก A ๋ ์ฝ๋, CNAME ๋ ์ฝ๋, MX๋ ์ฝ๋๊ฐ ์์ต๋๋ค.
- A ๋ ์ฝ๋๋ ๋๋ฉ์ธ ์ฃผ์์ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ง์ ๋งคํํ ๋ ์ฌ์ฉํฉ๋๋ค.
- CNAME ๋ ์ฝ๋๋ ๋๋ฉ์ธ ์ฃผ์๋ฅผ ๋ ๋ค๋ฅธ ๋๋ฉ์ธ ์ฃผ์๋ก ์ด์ค ๋งคํํ ๋ ์ฌ์ฉํฉ๋๋ค..
- MX ๋ ์ฝ๋๋ ๋ฉ์ผ ์๋ฒ ๋ ์ฝ๋์ด๋ฉฐ, ํด๋น ๋๋ฉ์ธ๊ณผ ์ฐ๋๋์ด ์๋ ๋ฉ์ผ์๋ฒ๋ฅผ ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. MX ๋ ์ฝ๋๊ฐ ํด๋น ๋๋ฉ์ธ์ ์ค์ ๋์ด ์์ด์ผ, ํด๋น ๋๋ฉ์ธ์ ์ด๋ฉ์ผ ์ฃผ์๋ก ์ฌ์ฉํ ์ ์๋ค๋ ๋ป์ ๋๋ค.
DNS ๋ ์ฝ๋ ์ข ๋ฅ
๐. www.xxx.com์ ์ฃผ์์ฐฝ์ ์ณค์ ๋ ํ๋ฉด์ด ๋์ค๊ธฐ๊น์ง์ ๊ณผ์ ์ ๋คํธ์ํฌ ๊ด์ ์ผ๋ก ์ค๋ช ํด ์ฃผ์ธ์. โญ๏ธ
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ URL ์ ๋ ฅ
- ๋ธ๋ผ์ฐ์ ๋ DNS๋ฅผ ํตํด ์๋ฒ์ IP์ฃผ์๋ฅผ ์ฐพ๋๋ค.
- client์์ HTTP request ๋ฉ์์ง -> TCP/IP ํจํท ์์ฑ -> server๋ก ์ ์ก
- server์์ HTTP request์ ๋ํ HTTP response ๋ฉ์์ง -> TCP/IP ํจํท ์์ฑ -> client๋ก ์ ์ก
- ๋์ฐฉํ HTTP response message๋ ์น ๋ธ๋ผ์ฐ์ ์ ์ํด ์ถ๋ ฅ(๋ ๋๋ง)