๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ๊ณต๋ถ€/CS๐Ÿ’ป

CS ๊ฐ•์˜ 10. HTTP/HTTPS

728x90

์ถœ์ฒ˜ : ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

 

1. HTTP

1 - 1. HTTP ๊ฐœ์š”

Hypertext Transfer Protocol

- ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๋“ค ์‚ฌ์ด์—์„œ ํ†ต์‹ ์„ ์ฃผ๊ณ ๋ฐ›๊ฒŒ ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ”„๋กœํ† ์ฝœ

- ์„œ๋ฒ„์—์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์šฉ๋„๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ

- ์ „์†ก๋˜๋Š” ์š”์ฒญ/ ์‘๋‹ต ์ •๋ณด๊ฐ€ ๊ธฐ๋ณธ์ ์„ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์•„ ๋ณด์•ˆ์ •๋ณด ๋„๋‚œ์˜ ์œ„ํ—˜์ด ์žˆ๋‹ค

 

IP๊ฐ€ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต, TCP๊ฐ€ ์ „์†ก ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด๋ผ๋ฉด HTTP์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด๋‹ค

 

~ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ์ž์›์„ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ TCP/IP ๊ธฐ๋ฐ˜ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ

1) ์š”์ฒญ ์ •๋ณด

2) ์‘๋‹ต ์ •๋ณด

ํŠน์ง•

1) ๋‹จ๋ฐฉํ–ฅ์„ฑ : ์„œ๋ฒ„๊ฐ€ ๋จผ์ € ์‘๋‹ต์„ ๋ณด๋‚ผ ์ˆ˜ ์—†๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ๋งŒ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค(HTTP 2 ์ด์ „)

2) ๋น„์—ฐ๊ฒฐ์„ฑ : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ๋œ ํ›„, ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฉด ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์—†๋‹ค

 

๋ฌธ์ œ์ 

- HTTP๋Š” ํ‰๋ฌธ ํ†ต์‹ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋„์ฒญ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

- ํ†ต์‹  ์ƒ๋Œ€๊ฐ€ ๊ฒ€์ฆ๋œ ์ƒ๋Œ€์ธ์ง€ ํ™•์ธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์œ„์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

- ์™„์ „์„ฑ์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

 

HTTP ๋ฒ„์ „๋ณ„ ๋ฐœ์ „ ~ 1.0 > 1.1 > 2.0 > 3.0 : ํ˜„์žฌ 1.1์ด ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋จ

HTTP 1์˜ ํ•œ๊ณ„

์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•ด๋„ ์ผํšŒ์šฉ(์š”์ฒญ๋ณ„๋กœ ํ•œ๋ฒˆ๋ฐ–์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค)์œผ๋กœ๋งŒ ํ™œ์šฉ ๊ฐ€๋Šฅ

 

1.1์ด ๋˜๋ฉฐ ๊ฐœ์„ ๋œ ์ 

์ง€์ •ํ•œ Timeout๋™์•ˆ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜์ง€ ์•Š๋„๋ก ํ•ด์„œ ์ง€์ •ํ•œ ์‹œ๊ฐ„๋™์•ˆ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ ๋ฐฉ์‹

 

HTTP 2์˜ ํ•ต์‹ฌ ๊ฐœ์„ ์ 

1) Head Of Line Blocking ๋ฌธ์ œ ํ•ด๊ฒฐ

HTTP 1์—์„œ๋Š” ๋ณ‘๋ ฌ๋กœ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•ด๋„ ๋™์‹œ์— ์‘๋‹ตํ–ˆ์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ HTTP 2์—์„œ ์š”์ฒญ์„ ์ˆœ์„œ ์ƒ๊ด€์—†์ด ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ฐœ์„ ํ–ˆ๋‹ค

2) Server Push

HTTP 2์—์„œ๋Š” ์—ฐ๊ฒฐ ์ƒ์„ฑ ํ›„ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์—†์ด๋„ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค

 

~ HTTP 2์˜ ์ ์œ ์œจ์ด ํ˜„์žฌ 40% ์ •๋„๋กœ, HTTP 3์—์„œ๋Š” ์•„์ง ์ง€์›ํ•˜๋Š” ๊ณณ์ด ๋งŽ์ง€ ์•Š๋‹ค -> ๋„ค์ด๋ฒ„, ์ธ์Šคํƒ€๊ทธ๋žจ, ํŽ˜์ด์Šค๋ถ ๋“ฑ

~ HTTP 3์€ TCP๊ฐ€ ์•„๋‹Œ UDP ๊ธฐ๋ฐ˜์ด๋‹ค

 

+ ์ฑ„ํŒ…๊ฐ™์€ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์›น์†Œ์ผ“ ํ”„๋กœํ† ์ฝœ์„ ๋”ฐ๋ฅธ๋‹ค

- ์›น์†Œ์ผ“ ํ”„๋กœํ† ์ฝœ์€ TCP ๊ธฐ๋ฐ˜ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๋๋‚˜๊ณ  ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜์ง€ ์•Š๊ณ  ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

- ์›น์†Œ์ผ“์ด ๋‚˜์˜ค๊ธฐ ์ด์ „์—” HTTP์™€ ํด๋ง, ๋กฑํด๋ง, ์ŠคํŠธ๋ฆฌ๋ฐ ๋“ฑ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๊ฒŒ๋”ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉ

- ์›น์†Œ์ผ“์˜ ๊ตฌํ˜„์ฒด๋ฅผ ๋œฏ์–ด๋ณด๋ฉด, ์›น์†Œ์ผ“์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” HTTP์˜ ๋กฑํด๋ง ๋“ฑ์œผ๋กœ ํ™œ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค

2 - 2. HTTP ๋ฉ”์„œ๋“œ

HTTP ๋ฉ”์„œ๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•  ๋•Œ ๊ทธ ์š”์ฒญ์˜ ๋ชฉ์ ๊ณผ ์ข…๋ฅ˜๋ฅผ ์•Œ๋ฆฌ๋Š” ์ˆ˜๋‹จ์ด๋‹ค

 

์ฃผ์š” ๋ฉ”์„œ๋“œ

1) GET : ๋ฆฌ์†Œ์Šค ์กฐํšŒ์‹œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋Š” ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•œ๋‹ค. ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ณณ์ด ๋งŽ์•„ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค

2) POST : ์ฃผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋Š” ๋ฉ”์„ธ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•œ๋‹ค

3) PUT : ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ€์ฒดํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑํ•œ๋‹ค. ~ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ด๋‹ค 

4) PATCH : PUT๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜์ง€๋งŒ, PATCH๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ผ๋ถ€๋ถ„๋งŒ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉ

5) DELETE : ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ ์‚ฌ์šฉ

 

๋ฉ”์„œ๋“œ ์†์„ฑ

1. ์•ˆ์ „ : ๊ณ„์† ํ˜ธ์ถœํ•ด๋„ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค

 

2. ๋ฉฑ๋“ฑ : ๋™์ผํ•œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณด๋‚ด๋„ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™๋‹ค ~ GET, PUT, DELETE๋Š” ๋ฉฑ๋“ฑํ•˜์ง€๋งŒ, POST, PATCH๋Š” ๋ฉฑ๋“ฑํ•˜์ง€ ์•Š๋‹ค

 

3. ์บ์‹œ๊ฐ€๋Šฅ : ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ์„œ๋ฒ„์— ์บ์‹œํ•ด ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š” ๋ฉ”์„œ๋“œ ~ GET, HEAD, POST, PATCH๊ฐ€ ์บ์‹œ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ตฌํ˜„์ด ์–ด๋ ค์›Œ ์‹ค์ œ๋กœ๋Š” GET, HEAD์— ์ฃผ๋กœ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

2 - 3. HTTP ์ƒํƒœ์ฝ”๋“œ

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ ๋˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ต์—์„œ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•œ ์ •๋ณด

 

์ข…๋ฅ˜

1-- : ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ์ค‘

2-- : ์ฒ˜๋ฆฌ ์„ฑ๊ณต

~ 200 : ์š”์ฒญ ์„ฑ๊ณต

~ 201 : ์š”์ฒญ ์„ฑ๊ณตํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

~ 202 : ์š”์ฒญ์ด ์ ‘์ˆ˜๋˜์—ˆ์œผ๋‚˜ ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์Œ

~ 204 : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ์œผ๋‚˜, ์‘๋‹ต ํŽ˜์ด๋กœ๋“œ ๋ณธ๋ฌธ์— ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค

3-- : ์ถ”๊ฐ€ ์š”์ฒญ์ด ํ•„์š”ํ•˜๋‹ค ~ ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ํ–‰๋™์ด ํ•„์š” : ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ฒ˜๋ฆฌ

~ 301 : URL ์ผ์‹œ ์ด๋™ ~ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ , ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ๋‹ค

~ 302 : URL ์˜๊ตฌ ์ด๋™ ~ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•˜๊ณ , ๋ณธ๋ฌธ์ด ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ๋‹ค

~ 303 : ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ๊ฐ€ GET์œผ๋กœ ๋ณ€ํ•œ๋‹ค

~ 304 : ์บ์‹œ๋ฅผ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ

~ 307 : ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ ์œ ์ง€(302์™€ ๋‹ค๋ฅธ ์ ์œผ๋กœ, ๋น„๊ต ๊ฐ€๋Šฅํ•˜๋‹ค), ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ๋œ๋‹ค

~ 308 : ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋ณธ๋ฌธ ์œ ์ง€(์ฒ˜์Œ POST๋ฅผ ๋ณด๋‚ด๋ฉด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋„ POST ์œ ์ง€)

4-- : ์ž˜๋ชป๋œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ

~ 400 : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž˜๋ชป๋œ ์š”์ฒญ์„ ํ•ด์„œ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค

~ 401 : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ธ์ฆ์ด ํ•„์š”ํ•˜๋‹ค

~ 403 : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ดํ•ดํ–ˆ์œผ๋‚˜ ์Šน์ธ์„ ๊ฑฐ๋ถ€ํ–ˆ๋‹ค

~ 404 : ์š”์ฒญ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค

5-- : ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ์‘๋‹ตํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ

~ 500 : ์„œ๋ฒ„ ๋ฌธ์ œ๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

~ 501 : ์„œ๋ฒ„์— ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์—†์Œ

~ 502 : ๊ฒŒ์ดํŠธ์›จ์ด(์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์žฅ์น˜)๊ฐ€ ์ž˜๋ชป๋œ ํ”„๋กœํ† ์ฝœ์„ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜, ์–ด๋Š ์ชฝ ํ”„๋กœํ† ์ฝœ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ํ†ต์‹ ์ด ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š์€ ์ƒํ™ฉ

~ 503 : ์„œ๋น„์Šค ์ด์šฉ ๋ถˆ๊ฐ€(์„œ๋ฒ„ ๋‹ค์šด)

2 - 4. HTTP ํ†ต์‹ ํ๋ฆ„

๋ธŒ๋ผ์šฐ์ €์— naver.com์„ ํƒ€์ดํ•‘(์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด) ์ผ์–ด๋‚˜๋Š” ์ผ

1. URL ์ฃผ์†Œ ์ค‘ ๋„๋ฉ”์ธ ๋„ค์ž„ ๋ถ€๋ถ„์„ DNS ์„œ๋ฒ„์— ๊ฒ€์ƒ‰ํ•˜๊ณ , DNS ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ๋„๋ฉ”์ธ ๋„ค์ž„์— ํ•ด๋‹นํ•˜๋Š” IP ์ฃผ์†Œ๋กœ ์ฐพ์•„์˜จ๋‹ค

2. HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ํŽ˜์ด์ง€ URL ์ •๋ณด์™€ ์ฐพ์•„์˜จ IP ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ƒ์„ฑ๋œ HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋Š” TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ์ธํ„ฐ๋„ท ๋ง์„ ํ†ตํ•ด ํ•ด๋‹น IP ์ฃผ์†Œ ์ปดํ“จํ„ฐ๋กœ ์ „์†ก๋œ๋‹ค

3. HTTP ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์€ ์ปดํ“จํ„ฐ(์„œ๋ฒ„)๋Š” ์›น ํŽ˜์ด์ง€ URL ์ •๋ณด ์ค‘ PATH์™€ HTTP ๋ฉ”์„œ๋“œ์— ๋งž๋Š” ์‘๋‹ต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค

4. ์ƒ์„ฑ๋œ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋Š” ๋˜ ๋‹ค์‹œ HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด HTTP ์‘๋‹ต ๋ฉ”์„ธ์ง€๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ  TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ์ธํ„ฐ๋„ท ๋ง์„ ํ†ตํ•ด ์š”์ฒญํ–ˆ๋˜ ์ปดํ“จํ„ฐ(ํด๋ผ์ด์–ธํŠธ)๋กœ ์ „์†ก๋œ๋‹ค

5. ๋„์ฐฉํ•œ HTTP ์‘๋‹ต ๋ฉ”์„ธ์ง€๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์„ ๊ฑฐ์ณ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค

 

+ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •

1. HTML, CSS๋ฅผ ํŒŒ์‹ฑํ•ด DOM Tree, CSSOM Tree๋ฅผ ๋งŒ๋“ ๋‹ค

2. ๋‘ Tree๋ฅผ ๊ฒฐํ•ฉํ•ด Rendering Tree๋ฅผ ๋งŒ๋“ ๋‹ค

3. ๋ Œ๋”๋ง ํŠธ๋ฆฌ์—์„œ ๊ฐ ๋…ธ๋“œ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค

4. ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ์ด์šฉํ•ด ๊ฐ ๋…ธ๋“œ๋ฅผ ํ™”๋ฉด ์ƒ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ ๋‹ค

5. ๋ ˆ์ด์–ด๋ฅผ ํ•ฉ์„ฑํ•ด ์‹ค์ œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค

3. HTTPS

3 - 1. HTTPS ๊ฐœ์š”

Hypertext Transfer Protocol Secure

- HTTP๋Š” ์ „์†ก๋˜๋Š” ์š”์ฒญ/ ์‘๋‹ต ์ •๋ณด๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•”ํ˜ธํ™” ๋˜์ง€ ์•Š์•„ ๋ณด์•ˆ์ •๋ณด ๋„๋‚œ์˜ ์œ„ํ—˜์ด ์žˆ๋‹ค

- ์ด๋ฅผ ์œ„ํ•ด SSL์„ ์‚ฌ์šฉํ•œ๋‹ค

 

TLS : ์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ

- SSL์˜ ๋”์šฑ ์•ˆ์ „ํ•œ ๋ฒ„์ „, DigiCert์—์„œ SSL์„ ๊ตฌ์ž…ํ•  ์‹œ ์ตœ์‹ ์˜ TLS ์ธ์ฆ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค

- ์›น์‚ฌ์ดํŠธ๊ฐ€ SSL/TLS ์ธ์ฆ์„œ๋กœ ๋ณดํ˜ธ๋˜๋Š” ๊ฒฝ์šฐ HTTPS๊ฐ€ URL์— ํ‘œ์‹œ๋œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ € ํ‘œ์‹œ์ค„์˜ ์ž๋ฌผ์‡  ๊ธฐํ˜ธ๋ฅผ ํด๋ฆญํ•ด ๋ฐœ๊ธ‰๊ธฐ๊ด€ ๋ฐ ์›น์‚ฌ์ดํŠธ ์†Œ์œ ์ž์˜ ์ƒํ˜ธ๋ฅผ ํฌํ•จํ•œ ์ธ์ฆ์„œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

=> ์›น์‚ฌ์ดํŠธ๊ฐ€ SSL/TLS ์ธ์ฆ์„œ๋กœ ๋ณดํ˜ธ๋˜๋Š” ๊ฒฝ์šฐ HTTPS๊ฐ€ URL์— ํ‘œ์‹œ๋œ๋‹ค

 

SSL : Secure Sockets Layer ~ Netscape์—์„œ ์›น ์„œ๋ฒ„์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ๋ณด์•ˆ์„ ์œ„ํ•ด ๋งŒ๋“  ํ”„๋กœํ† ์ฝœ, ๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค

1) ๋Œ€์นญํ‚ค ๋ฐฉ์‹

- ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

- ์•”ํ˜ธํ™” ๋ฐ ๋ณตํ˜ธํ™”์— ๋“œ๋Š” ๋น„์šฉ์ด ์ ์œผ๋‚˜, ํ‚ค๋ฅผ ์ƒ๋Œ€๋ฐฉ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ „๋‹ฌ์ด ์ƒ๋Œ€์ ์œผ๋กœ ์–ด๋ ต๋‹ค

 

2) ๋น„๋Œ€์นญํ‚ค ๋ฐฉ์‹

- ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™” ๊ฐ„ ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

- ์ˆ˜ํ•™์ ์ธ ๊ณต์‹์œผ๋กœ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง„ ํ•œ ์Œ์˜ ํ‚ค๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ํ•˜๋‚˜๋Š” ์™ธ๋ถ€ ๊ณต๊ฐœ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๊ฐœ์ธ ํ‚ค๋กœ ์‚ฌ์šฉํ•œ๋‹ค

- ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ๊ฐ™์€ ์Œ ๊ฐœ์ธ ํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ , ๊ฐœ์ธ ํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋ฉด ํ•ด๋‹น ๊ณต๊ฐœ ํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค

- ๋ณด์•ˆ์ด ๋›ฐ์–ด๋‚˜์ง€๋งŒ, ๊ตฌํ˜„์ด ์–ด๋ ต๊ณ  ์•”๋ณตํ˜ธํ™” ์†๋„๊ฐ€ ๋Š๋ ค์ง„๋‹ค

- ์ฃผ๋กœ ์ „์ž์„œ๋ช…๊ณผ ๋ฉ”์„ธ์ง€ ์†ก์‹ ์— ์‚ฌ์šฉ๋œ๋‹ค

~ ์ „์ž์„œ๋ช… : ๋‚ด ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๊ฒƒ์„ ๋‚ด ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•ด ๋ณธ์ธ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋‹ค

~ ๋ฉ”์„ธ์ง€ ์†ก์‹  : ์ƒ๋Œ€๋ฐฉ์˜ ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•ด ๋ณด๋‚ด๋ฉด ๊ฐœ์ธ ํ‚ค๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ƒ๋Œ€๋ฐฉ๋งŒ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์–ด ์•ˆ์ „ํ•˜๊ฒŒ ๋ฉ”์„ธ์ง€ ๊ตํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค

 

HTTPS ํ”„๋กœ์„ธ์Šค

- ๋Œ€์นญ ํ‚ค์™€ ๊ณต๊ฐœ ํ‚ค/๊ฐœ์ธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• : ์ด 3๊ฐ€์ง€์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

- ์„œ๋ฒ„์˜ ๊ณต๊ฐœ ํ‚ค๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋Œ€์นญ ํ‚ค๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค => ์„œ๋ฒ„๋Š” ์•”ํ˜ธํ™”๋œ ๋Œ€์นญ ํ‚ค๋ฅผ ๊ฐœ์ธ ํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•˜๋ฏ€๋กœ ์•”ํ˜ธ๋ฌธ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

 

1) ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์ ‘์† ์š”์ฒญ

2) ๊ฐœ์ธ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ์•”ํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐœ ํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ

3) ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์‹ ์˜ ๋Œ€์นญ ํ‚ค๋ฅผ ์„œ๋ฒ„์˜ ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”

4) ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์˜ ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ ๋Œ€์นญ ํ‚ค๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌ

5) ์„œ๋ฒ„๋Š” ์•”ํ˜ธํ™”๋œ ๋Œ€์นญ ํ‚ค๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ์ž์‹ ์˜ ๊ฐœ์ธ ํ‚ค๋กœ ๋ณตํ˜ธํ™” ~ ์„œ๋ฒ„๋„ ์•”ํ˜ธํ™”๋œ ๋Œ€์นญ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค

6) ์„œ๋ฒ„๋Š” ๋ณตํ˜ธํ™”๋œ ๋Œ€์นญ ํ‚ค ์›๋ณธ์„ ๊ฐ€์ง€๊ณ  ํด๋ผ์ด์–ธํŠธ์™€ ์•”ํ˜ธ๋ฌธ์œผ๋กœ ํ†ต์‹ 

3 - 2. SSL Handshake

- HTTPS ์—ฐ๊ฒฐํ•  ๋•Œ ์ถ”๊ฐ€๋กœ ์ธ์ฆํ•˜๋Š” ๋ฐฉ์‹

- ๋Œ€์นญ ํ‚ค/ ๋น„๋Œ€์นญ ํ‚ค ๋ฐฉ์‹์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ์š”์ฒญ/์‘๋‹ต ์ •๋ณด๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•ด ์š”์ฒญ/ ์‘๋‹ต ์ •๋ณด๋ฅผ ๋ชจ๋‘ ์•”ํ˜ธํ™”ํ•˜๋ฉฐ, ์™ธ๋ถ€ ์ธ์ฆ๊ธฐ๊ด€(์™ธ๋ถ€ ์„œ๋ฒ„)๊ฐ€ ์‚ฌ์ดํŠธ๊ฐ€ ์‹ ๋ขฐ๊ฐ€๋Šฅํ•œ์ง€ ๋ณด์ฆํ•œ๋‹ค

 

1) ์›น ์„œ๋ฒ„๊ฐ€ CA(๋ณด์ฆ๊ธฐ๊ด€)์œผ๋กœ๋ถ€ํ„ฐ ๋ณด์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค

2) ์›น ์„œ๋ฒ„๋Š” CA์— ์ž์‹ ์˜ ๋„๋ฉ”์ธ ์ •๋ณด์™€ ์„œ๋ฒ„ ์ธก ๊ณต๊ฐœ ํ‚ค๋ฅผ ๋ณด๋‚ธ๋‹ค

3) CA๋Š” ๋ฐ›์€ ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ž์‹ ์˜ ๊ฐœ์ธ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ CA ์ธ์ฆ์„œ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค

4) ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด ์„œ๋ฒ„์™€ TCP ์—ฐ๊ฒฐํ•œ๋‹ค

5) ์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ณด๋‚ธ Ciper Suite ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๊ณ , ์ž์‹ ์˜ SSL/TLS ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์„ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์•Œ๋ฆฌ๋ฉฐ, ์„œ๋ฒ„ ์ž์‹ ์˜ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ CA ์ธ์ฆ์„œ๋ฅผ ๋ณด๋‚ธ๋‹ค

6) ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‚ด์žฅ๋œ CA ๊ณต๊ฐœ ํ‚ค๋ฅผ ์ด์šฉํ•ด CA ์ธ์ฆ์„œ๋ฅผ ๋ณตํ˜ธํ™”ํ•˜๋ฉฐ ์ธ์ฆ์„œ๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์ฆํ•œ ํ›„, ์„œ๋ฒ„ ์ธ ๊ทธ์ด ๊ณต๊ฐœ ํ‚ค๋ฅผ ์–ป๋Š”๋‹ค

7) ๋ธŒ๋ผ์šฐ์ €๋Š” ์ถ”ํ›„ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ๋•Œ ์•”ํ˜ธํ™”๋ฃฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋Œ€์นญ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ๋Œ€์นญ ํ‚ค๋ฅผ ์‚ฌ์ดํŠธ ๊ณต๊ฐœ ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•ด ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค

8) ์„œ๋ฒ„๋Š” ์ž์‹ ์˜ ๊ฐœ์ธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์•”ํ˜ธํ™”๋œ ๊ฒƒ์„ ๋ณตํ˜ธํ™”ํ•ด ์‚ฌ์šฉ์ž ๋Œ€์นญ ํ‚ค๋ฅผ ์–ป๋Š”๋‹ค

9) ์ด๋ ‡๊ฒŒ ์–ป์€ ๋Œ€์นญ ํ‚ค๋ฅผ ํ™œ์šฉํ•ด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์•”๋ณตํ˜ธํ™”ํ•ด ์ง€์†์ ์œผ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค

 

728x90