๐Ÿ“š[๋„คํŠธ์›Œํฌ] ์›น ํ†ต์‹ ์˜ ํฐ ํ๋ฆ„

์–‘์•„ยท2021๋…„ 9์›” 1์ผ
2

๋„คํŠธ์›Œํฌ

๋ชฉ๋ก ๋ณด๊ธฐ
1/1
post-thumbnail

๋ธŒ๋ผ์šฐ์ €์—์„œ www.google.com์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒโ“
ํ•œ ๋ฒˆ์ฏค์€ ๊ถ๊ธˆํ–ˆ๋˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.


1. Browser๊ฐ€ URL์— ์ ํžŒ ๊ฐ’์„ ํŒŒ์‹ฑ

์ฆ‰, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž…๋ ฅ๋ฐ›์€ URL์˜ ๊ตฌ์กฐ๋ฅผ Protocol, Domain, Port๋กœ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์œ„์—์„œ ์˜ˆ์‹œ๋กœ ์ œ์‹œํ•œ google์˜ URL์„ ์˜ˆ์‹œ๋กœ ๋“ค์–ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

https://www.google.com:443
Protocol: https
URL: www.google.com
Port: 443

๐Ÿง ์—ฌ๊ธฐ์„œ ๊ถ๊ธˆํ•œ ์ !
๋‚˜๋Š” ํ”„๋กœํ† ์ฝœ๊ณผ ํฌํŠธ๋ฅผ ์ œ์™ธํ•œ URL๋งŒ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ?
๋งŒ์•ฝ ํ”„๋กœํ† ์ฝœ์ด HTTP๋ผ๋ฉด 80 ํฌํŠธ๋ฅผ ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ์š”์ฒญํ•˜๊ณ , ํ”„๋กœํ† ์ฝœ์ด HTTPS๋ผ๋ฉด 443 ํฌํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์š”์ฒญํ•˜๊ฒŒ ๋˜๋‹ˆ URL๋งŒ ์ž…๋ ฅํ•ด๋„ ํ”„๋กœํ† ์ฝœ๊ณผ ํฌํŠธ๊นŒ์ง€ ๋ชจ๋‘ ์ž…๋ ฅ์ด ๋œ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.
ํ•˜์ง€๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ํฌํŠธ๋ฅผ ์„ ์–ธํ–ˆ๋‹ค๋ฉด ์„ ์–ธํ•œ ํฌํŠธ๊ฐ’์„ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค!๐Ÿ‘Œ


2. HSTS(HTTP Strict Transport Security) ๋ชฉ๋ก ์กฐํšŒ

HTTPS ํ”„๋กœํ† ์ฝœ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ์ฃผ์†Œ์— HTTP๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋ฉด ์„œ๋ฒ„์ธก์—์„œ 302 ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์ด์šฉํ•ด ๊ฐ•์ œ๋กœ HTTPS๋กœ ์ „ํ™˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด๊ฑด HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ฑฐ์ณ๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด๋ผ ๋ณด์•ˆ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ HTTPS๋ฅผ ๊ฐ•์ œํ•˜๋„๋ก ๊ถŒ์žฅํ•˜๋Š”๋ฐ ์ด๊ฒŒ ๋ฐ”๋กœ HTST๋‹ค!๐ŸŒŸ

HSTS๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTPS ํ”„๋กœํ† ์ฝœ๋งŒ์„ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.
๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž์‹ ์˜ HSTS ์บ์‹œ์— HTTPS๋กœ๋งŒ ์—ฐ๊ฒฐ๋˜๋„๋ก ์š”์ฒญํ•œ URL์„ ์ €์žฅํ•ด์„œ ๋งŒ๋“  HSTS ๋ชฉ๋ก์ด ์žˆ๋Š”๋ฐ ์ด ๋ชฉ๋ก์„ ์กฐํšŒํ•ด์„œ ํ•ด๋‹น ์š”์ฒญ์„ HTTPS๋กœ ๋ณด๋‚ผ์ง€ ํŒ๋‹จํ•œ๋‹ค.
๋งŒ์•ฝ ์ด ๋ชฉ๋ก์— ํ•ด๋‹น URL์ด ์žˆ๋‹ค๋ฉด ๋ช…์‹œ์ ์œผ๋กœ HTTP๋กœ ๋ณด๋‚ด๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด๋ฅผ HTTPS๋กœ ์š”์ฒญํ•˜๊ณ  ์ด ๋ชฉ๋ก์— ์—†๋‹ค๋ฉด ์ฒซ ์š”์ฒญ์€ HTTP๋กœ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค.


3. IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜

ํ•ด๋‹น ๋„๋ฉ”์ธ ์ฃผ์†Œ๋กœ๋Š” ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ํ†ต์‹ ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ˆ DNS Lookup ๊ณผ์ •์„ ํ†ตํ•ด ํ•ด๋‹น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž์‹ ์˜ ๋กœ์ปฌ hosts ํŒŒ์ผ๊ณผ DNS cache์— ํ•ด๋‹นํ•˜๋Š” URL์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
๋งŒ์•ฝ, ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด DNS ์„œ๋ฒ„์— ์š”์ฒญํ•˜์—ฌ ํ•ด๋‹น URL์„ IP์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

๐Ÿ’ก DNS Lookup ์ด๋ž€?
๋ฆฌ๋ˆ…์Šค, ๋งฅOS, ์œˆ๋„์šฐ ๋“ฑ์—์„œ nslookup๋ผ๋Š” ๋ช…๋ น์–ด๋กœ DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ”DNS Lookup ๊ณผ์ •
Browser -> hosts ํŒŒ์ผ -> DNS Cache ์ˆœ์„œ๋Œ€๋กœ Domain์— ๋งค์นญ๋˜๋Š” IP๋ฅผ ์ฐพ๋Š”๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ๋Š” Root Domain Server์—์„œ๋ถ€ํ„ฐ Serve Domain Server ์ˆœ์œผ๋กœ ์ฐพ๊ฒŒ ๋œ๋‹ค.

๐Ÿ’ก hosts ํŒŒ์ผ์ด๋ž€?
hosts ํŒŒ์ผ์€ ํ˜ธ์ŠคํŠธ ๋„ค์ž„์— ๋Œ€์‘ํ•˜๋Š” IP์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ๋กœ DNS ์„œ๋ฒ„์—์„œ ์ฃผ์†Œ์ •๋ณด๋ฅผ ์ œ๊ณต๋ฐ›์ง€ ์•Š์•„๋„ ์„œ๋ฒ„์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ฒŒ ํ•ด์ฃผ๋Š” ํŒŒ์ผ์ด๋‹ค.
OS๋ณ„๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, DNS ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ „์— IP์ฃผ์†Œ๋ฅผ ๋งคํ•‘ํ•˜๋Š” ํ…Œ์ด๋ธ”๋กœ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ํ˜„์žฌ๋Š” ๊ทธ ์—ญํ• ์„ DNS ์„œ๋ฒ„๊ฐ€ ์ž˜ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.


4. ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์„œ๋ฒ„์˜ ๊ฒŒ์ดํŠธ์›จ์ด๊นŒ์ง€ ์ด๋™

DNS ์„œ๋ฒ„์—๊ฒŒ IP ์ฃผ์†Œ๋ฅผ ๋ฐ›์•˜์œผ๋‹ˆ ์„œ๋ฒ„๋กœ ์š”์ฒญํ•ด์•ผ ํ•˜์ง€๋งŒ ํ•ด๋‹น IP ์ฃผ์†Œ๋กœ ์–ด๋–ป๊ฒŒ ๊ฐ€์•ผํ•˜๋Š”์ง€ ๊ฒฝ๋กœ๋ฅผ ์•Œ ์ˆ˜ ์—†๋‹ค.
๊ทธ ๊ฒฝ๋กœ๋Š” ๋„คํŠธ์›Œํฌ ์žฅ๋น„์ธ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ผ์šฐํ„ฐ์—์„œ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ํ•ด๋‹น ์š”์ฒญ์ด ์–ด๋–ค ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ๊ฐ€์•ผํ• ์ง€ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด ์š”์ฒญ์€ ํ•ด๋‹น IP๋ฅผ ์ฐพ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค.


5. ARP๋ฅผ ํ†ตํ•ด IP ์ฃผ์†Œ๋ฅผ MAC ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜

์‹ค์งˆ์ ์ธ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋…ผ๋ฆฌ ์ฃผ์†Œ์ธ IP ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์ธ MAC ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ARP๋ฅผ Broad Castingํ•œ๋‹ค.
๊ทธ๋Ÿผ ํ•ด๋‹น IP์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ์ž์‹ ์˜ MAC ์ฃผ์†Œ๋ฅผ ์‘๋‹ตํ•œ๋‹ค.

๐Ÿ’ก ARP๋ž€?
Address Resolution Protocol์˜ ์ค„์ž„๋ง๋กœ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ IP ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์  MAC ์ฃผ์†Œ๋กœ ๋ฐ”์ธ๋”ฉ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

๐Ÿ’ก MAC ์ฃผ์†Œ๋ž€?
MAC ์ฃผ์†Œ๋ž€ 12๊ฐœ์˜ 16์ง„์ˆ˜ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์ด๋‹ค.
์ด ์ˆซ์ž ์ค‘ ์•ž 6๊ฐœ์˜ ์ˆซ์ž๋Š” ๋„คํŠธ์›Œํฌ ์นด๋“œ๋ฅผ ๋งŒ๋“  ํšŒ์‚ฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๊ณ  ๋’ค 6๊ฐœ์˜ ์ˆซ์ž๋Š” ๊ฐ ํšŒ์‚ฌ์—์„œ ์ž„์˜๋กœ ๋ถ™์ด๋Š” ์ผ์ข…์˜ ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.


6. ์›น ์„œ๋ฒ„ ์ ‘์†

ํ•ด๋‹น ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” TCP ์†Œ์ผ“ ์—ฐ๊ฒฐ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ TCP ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 3-way-handshaking ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ 3-way-handshaking ๊ณผ์ •์ด๋ž€ ์„œ๋กœ์˜ ์ƒํƒœ๋ฅผ ๋ฌป๋Š”๊ฑฐ๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Client: Server์•ผ, ๋‚ด๊ฐ€ ์š”์ฒญํ•˜๋ฉด ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด?
Server: ์‘! ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด! ๋„ˆ๋„ ๋‚ด๊ฐ€ ์‘๋‹ตํ•˜๋Š”๊ฑฐ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด?
Client: ์‘! ๋‚˜๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด!

ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ(SYN)์„ ํ•˜๋Š”๋ฐ ์ด ๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” CLOSED, ์„œ๋ฒ„๋Š” LISTEN ์ƒํƒœ์ด๋‹ค.
๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ์ „์†ก๋œ TCP ์†Œ์ผ“์œผ๋กœ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๋„๋ก ์š”์ฒญํ•˜๋Š”๋ฐ SYN์ด ๋‘ ๋ฒˆ์งธ ์‹œ์Šคํ…œ์—์„œ ์ˆ˜์‹ ๋˜๋ฉด SYN/ACK๊ฐ€ SYN์ด ์š”์ฒญํ•œ ์ฃผ์†Œ๋กœ ๋‹ค์‹œ ์ „์†ก๋˜๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ๋Š” ์›๋ž˜ ์ปดํ“จํ„ฐ๊ฐ€ SYN/ACK๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์ตœ์ข… ACK๊ฐ€ ์ „์†ก๋œ๋‹ค.


7. HTTP/HTTPS ํ”„๋กœํ† ์ฝœ๋กœ ์š”์ฒญ ๋ฐ ์‘๋‹ต

TCP ์—ฐ๊ฒฐ์ด ์„ฑ๊ณตํ•˜์˜€์œผ๋‹ˆ, ์„œ๋ฒ„์— ์š”์ฒญํ–ˆ๋˜ ํŽ˜์ด์ง€๋ฅผ ๋‹ฌ๋ผ๊ณ  ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์ด ์š”์ฒญ์„ ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ธ์ง€ ํ™•์ธ ํ›„ ์˜ฌ๋ฐ”๋ฅธ ์š”์ฒญ์ด๋ผ๊ณ  ํŒ๋‹จ ๋  ๊ฒฝ์šฐ ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „๋‹ฌํ•œ๋‹ค.


8. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‘๋‹ต ํ•ด์„

๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์ž์›์„ ์„œ๋ฒ„์— ์š”์ฒญํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, ๋ณดํ†ต ๊ทธ ์ž์›์€ HTML ๋ฌธ์„œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ฑฐ๋‚˜ PDF ํŒŒ์ผ ๋˜๋Š” ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์„œ๋ฒ„์—์„œ ์ „๋‹ฌ๋ฐ›์€ ์‘๋‹ต์€ HTML, CSS ๋“ฑ์˜ ์ฝ”๋“œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML๊ณผ CSS์˜ ๋ช…์„ธ์— ๋”ฐ๋ผ HTML ํŒŒ์ผ์„ ํ•ด์„ํ•ด์„œ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์ค€๋‹ค.
์ด๋ ‡๊ฒŒ ์š”์ฒญ ๋ฐ›์€ ๋‚ด์šฉ์„ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œํ•˜๋Š” ์ผ์„ ํ•˜๋Š” ๊ฑธ ๋ Œ๋”๋ง ์—”์ง„์ด๋ผ๊ณ  ํ•œ๋‹ค.

๐Ÿ’ก ๋ Œ๋”๋ง ์—”์ง„์˜ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๊ณผ์ •
1. DOM ํŠธ๋ฆฌ ๊ตฌ์ถ•์„ ์œ„ํ•œ HTML ํŒŒ์‹ฑ
2. ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•
3. ๋ Œ๋” ํŠธ๋ฆฌ ๋ฐฐ์น˜
4. ๋ Œ๋” ํŠธ๋ฆฌ ๊ทธ๋ฆฌ๊ธฐ

profile
Back-end developer

0๊ฐœ์˜ ๋Œ“๊ธ€