โ ๏ธ ์ ๋ฆฌํ ๋ด์ฉ์ ์คํ๋ ์๋ชป๋ ์ ๋ณด๊ฐ ์์ ์ ์์ต๋๋ค. ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์น ๋ธ๋ผ์ฐ์ ์ URL์ ์
๋ ฅํ์ ๋ ๊ณผ์
0. ์ฃผ์์ฐฝ์ ์
๋ ฅํ ํ
์คํธ ์ ๋ณด ํ์ธ
์ด ํ
์คํธ๊ฐ ๊ฒ์์ด์ธ์ง URL์ธ์ง ์ฐ์ ์ ์ผ๋ก ํ์ธํ๋ค.
- ๊ฒ์์ด โ ๋ธ๋ผ์ฐ์ ๋ ๊ฒ์ ์์ง์ URL์ ๊ฒ์์ด๋ฅผ ํฌํจํ ์ฃผ์๋ก ํ์ด์ง๋ฅผ ์ด๋์ํจ๋ค.
- URL โ ๋ธ๋ผ์ฐ์ ์์ง์์ ๋คํธ์ํฌ ํธ์ถ์ ์ํํ๋ค.
- ๋ค์ด๋ฒ ์๋ฒ์ ์ฃผ์๋ฅผ ์๊ธฐ ์ํด ๋ค์ ์๋ฒ(Name Server)์ ํต์ ํ๊ธฐ
- ์์๋ธ ์ฃผ์๋ฅผ ๋ฐํ์ผ๋ก ๋ค์ด๋ฒ ์๋ฒ์ ํต์ ํ์ฌ ํ์ํ ๋ฐ์ดํฐ ์๋ต๋ฐ๊ธฐ
1. ์น ๋ธ๋ผ์ฐ์ ์ URL์ ์
๋ ฅํ๊ณ Enter ํค ์
๋ ฅ
https://www.naver.com/blog
- ํต์ ๊ท์ฝ(Protocol)
https://
๋ ํต์ ํ๋กํ ์ฝ์ด๋ค.
HTTPS(Hypertext Transfer Protocol Secure)๋ TLS์ ์ฌ์ฉํด ์ํธํ๋ ์ฐ๊ฒฐ์ ํ๋ HTTP๋ฅผ ๋งํ๋ค. ๋ธ๋ผ์ฐ์ ์ ์ ์ก ๊ณ์ธต ๋ณด์(TLS)์ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์ฐ๊ฒฐํ๋๋ก ์ง์ํ๋ค.
ftp://
, file://
๋ ์๋๋ฐ ์ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ ๋ค๋ฅธ ํ๋กํ ์ฝ์ด๋ค.
- ๋๋ฉ์ธ(Domain)
www.naver.com
์ ์น ์ฌ์ดํธ์ ๋๋ฉ์ธ ์ด๋ฆ์ด๋ค. ๊ธฐ์ตํ๊ธฐ ์ฌ์ด ์ฃผ์์ด๋ฉฐ ํน์ ์๋ฒ์ IP์ฃผ์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
- ๊ฒฝ๋ก(path)
URL์ ๋ฆฌ์์ค์ ๋ํ ์ถ๊ฐ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๋ ์ปดํจํฐ์ ์๋ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ์ฒ๋ผ ์๊ฐํ ์ ์๋ค.
- fragment
ํ๋๊ทธ๋จผํธ๋ ๋ฆฌ์์ค ์์ฒด์ ๋ค๋ฅธ ๋ถ๋ถ์ ๊ฐ๋ฆฌํค๋ ์ต์ปค์ด๋ค. ์ต์ปค๋ ๋ฆฌ์์ค ๋ด์์ ๋ถ๋งํฌ๋ ์ง์ ์ ์์นํ ์ปค๋จ์ธ ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ํ๋ธ๋ค.
2. ๋ธ๋ผ์ฐ์ ๋ ์บ์ฑ๋ DNS ๊ธฐ๋ก๋ค์ ํตํด www.naver.com์ ๋์๋๋ IP ์ฃผ์๊ฐ ์๋์ง ํ์ธํ๋ค.
DNS(Domain Name System)
- URL ์ด๋ฆ๋ค๊ณผ IP์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค.
์๋ ์ฌ์ง์ ํฐ๋ฏธ๋์ nslookup www.naver.com
์ ์
๋ ฅํ์ ๋ ๋์ค๋ ๊ฒฐ๊ณผ์ด๋ค.
ํด๋น ์ฌ์ดํธ์ IP ์ฃผ์๋ฅผ ์ ์ ์๊ณ www.naver.com
์ ์ ์์ด๋ฆ(CNAME)์ www.naver.com.nheos.com
์ด๋ค.
- ์ฌ๊ธฐ์ non-authoritative answer์ name ์๋ฒ๊ฐ ๋๋ฉ์ธ์์ ๋ง๋ ์๋ณธ ์์ค ํ์ผ์ ๊ฐ๊ณ ์์ง ์๋ค๋ ๋ป์ด๋ค. ์ด ์๋ฒ์๋ ๋ค๋ฅธ DNS๋ค์์ ์ป์ด์ง ๋๋ฉ์ธ์ ํ์ผ์ ์บ์ฑ ํํ๋ก ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด๋ค.
- authoritative answer์ ๋๋ฉ์ธ์ ๋ค์ ์๋ฒ์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ป์ด ์๋ต์ ํด์ค ๊ฒฝ์ฐ์ด๋ค.
DNS์ ๊ฐ์ฅ ํฐ ๋ชฉ์ ์ ์ฌ๋๋ค์๊ฒ ํธ๋ฆฌํจ์ ์ฃผ๊ธฐ ์ํด์์ด๋ค.
์น ์ฌ์ดํธ์ ์ด๋ฆ์ ๋ธ๋ผ์ฐ์ ์ ๊ฒ์ํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ DNS ๊ธฐ๋ก์ 4๊ฐ์ง์ ์บ์์์ ํ์ธ์ ํ๋ค.
- ๋ธ๋ผ์ฐ์ ์บ์ ํ์ธ
- ๋ธ๋ผ์ฐ์ ๋ ์ผ์ ๊ธฐ๊ฐ ๋์์ DNS ๊ธฐ๋ก๋ค์ ์ ์ฅํ๊ณ ์๋ค. DNS query๊ฐ ์ด ๊ณณ์์ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ค.
- OS ์บ์ ํ์ธ
- ๋ธ๋ผ์ฐ์ ์บ์์ ์น ์ฌ์ดํธ ์ด๋ฆ์ IP ์ฃผ์๊ฐ ๋ฐ๊ฒฌ๋์ง ์๋๋ค๋ฉด, ๋ธ๋ผ์ฐ์ ๋ ์์คํ
ํธ์ถ์ ํตํด์ OS๊ฐ ์ ์ฅํ๊ณ ์๋ DNS ๊ธฐ๋ก๋ค์ ์บ์์ ์ ๊ทผํ๋ค.
- ๋ผ์ฐํฐ ์บ์ ํ์ธ
- ์ปดํจํฐ์ DNS ๊ธฐ๋ก์ ์ฐพ์ง ๋ชปํ๋ฉด DNS ๊ธฐ๋ก์ ์บ์ฑํ๊ณ ์๋ ๋ผ์ฐํฐ์ ํต์ ํด์ ์ฐพ์ผ๋ ค ํ๋ค.
- ISP ์บ์ ํ์ธ
- ์ ๋ชจ๋ ๋จ๊ณ๊ฐ ์คํจํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ISP(์ธํฐ๋ท ์๋น์ค ์ ๊ณต์
์ฒด-Internet Service Provider)๋ก ์ด๋ํ๋ค.
- ISP๋ DNS ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ ์๊ณ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ง์ง๋ง์ผ๋ก DNS ๊ธฐ๋ก์ด ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ ์ ๊ทผํ๊ฒ ๋๋ค.
3. ์์ฒญํ URL์ด ์บ์์ ์์ผ๋ฉด, ISP์ DNS ์๋ฒ๊ฐ www.naver.com์
ํธ์คํ
ํ๊ณ ์๋ ์๋ฒ์ IP ์ฃผ์๋ฅผ ์ฐพ๊ธฐ ์ํด DNS query๋ฅผ ๋ ๋ฆฐ๋ค.
IP ์ฃผ์๋ฅผ ์ฐพ์ ๋๊น์ง DNS ์๋ฒ์์ ๋ค๋ฅธ DNS ์๋ฒ๋ฅผ ์ค๊ฐ๋ฉด์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฒ์ํ๋์ง ๋ชป ์ฐพ์์ ์๋ฌ๊ฐ ๋ฐ์ํ ๋๊น์ง ๊ฒ์์ ์งํํ๋ค.
DNS ์ฟผ๋ฆฌ์ ๋ชฉ์
- ์ฌ๋ฌ ๋ค๋ฅธ DNS ์๋ฒ๋ค์ ๊ฒ์ํด์ ํด๋น ์ฌ์ดํธ์ IP ์ฃผ์๋ฅผ ์ฐพ๋ ๊ฒ
- ์ด๋ฌํ ๊ฒ์์ Reqursive Search๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋๋ฉ์ธ ์ด๋ฆ๋ค์ ๊ตฌ์กฐ, DNS ๊ตฌ์ฑ ์์
- ๋๋ฉ์ธ ๋ค์ ์คํ์ด์ค๋ ์ต์์์ ๋ฃจํธ DNS ์๋ฒ๊ฐ ์กด์ฌํ๊ณ ๊ทธ ํ์๋ก ์ฐ๊ฒฐ๋ ๋ชจ๋ ๋
ธ๋๊ฐ ์ฐ์ํด์ ์ด์ด์ง ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋์ด์๋ค.
- Root DNS ์๋ฒ
- ICANN์ด ์ง์ ๊ด๋ฆฌํ๋ ์๋ฒ์ด๋ค.
- TLD DNS ์๋ฒ IP ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์๋ดํ๋ ์ญํ ์ ํ๋ค.
- Top-Level Domain(TLD) DNS ์๋ฒ
- ๋๋ฉ์ธ ๋ฑ๋ก ๊ธฐ๊ด์ด ๊ด๋ฆฌํ๋ ์๋ฒ์ด๋ค.
- SDL DNS ์๋ฒ์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์๋ดํ๋ ์ญํ ์ ํ๋ค.
- Second-Level Domain(SDL) DNS ์๋ฒ
- Authoritative DNS ์๋ฒ๋ผ๊ณ ๋ ํจ
- ์ค์ ๊ฐ์ธ ๋๋ฉ์ธ๊ณผ IP ์ฃผ์์ ๊ด๊ณ๊ฐ ๊ธฐ๋ก๋๋ ์๋ฒ์ด๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ๋๋ฉ์ธ ์
์ฒด์ ๋ค์ ์๋ฒ๋ฅผ ๋งํ๋ค.
- ๊ถํ ์๋ DNS ์๋ฒ(Recursive server || Resolver server || recursor ๋ผ๊ณ ๋ ๋ถ๋ฆ)
- ๋ค์ ์คํ์ด์ค๋ฅผ ์ํ ๊ถํ ์๋ DNS ์๋ฒ(1, 2, 3 ๊ฒฝ์ฐ)๋ IP ์ฃผ์์ ๋๋ฉ์ธ ์ด๋ฆ์ ๋งคํํ๋ค.
- ๋ค์ ์คํ์ด์ค๋ฅผ ์ํ ๊ถํ ์๋ DNS ์๋ฒ๋ ์ง์๋ฅผ ํตํด IP ์ฃผ์๋ฅผ ์์๋ด๊ฑฐ๋ ์บ์ํ๋ค.
DNS ๋์๊ณผ์ ์ด๋ฏธ์ง
4. Browser๊ฐ ์๋ฒ์ TCP connection์ ํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ๋ฐ๋ฅธ IP ์ฃผ์๋ฅผ ๋ฐ๊ฒ ๋๋ฉด ์๋ฒ์ connection์ ๋น๋ํ๊ฒ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ธํฐ๋ท ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ ์๋ฒ์ ์ฐ๊ฒฐ์ด ๋๋ค. ์ธํฐ๋ท ํ๋กํ ์ฝ์ ์ข
๋ฅ๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ง๋ง, ์น ์ฌ์ดํธ์ HTTP ์์ฒญ์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก TCP๋ฅผ ์ฌ์ฉํ๋ค.
TCP/IP three-way handshake ๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ connection์ด ์ด๋ค์ง๋ค. SYN๊ณผ ACK ๋ฉ์์ง๋ฅผ ๊ฐ์ง๊ณ 3๋ฒ์ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์น๋ค.
- ํด๋ผ์ด์ธํธ ๋จธ์ ์ด SYN ํจํท์ ์๋ฒ์ ๋ณด๋ด๊ณ connection์ ์ด์ด๋ฌ๋ผ๊ณ ๋ฌผ์ด๋ณธ๋ค
- ์๋ฒ๊ฐ ์๋ก์ด connection์ ์์ํ ์ ์๋ ํฌํธ๊ฐ ์๋ค๋ฉด SYN/ACK ํจํท์ผ๋ก ๋๋ต์ ํ๋ค
- ํด๋ผ์ด์ธํธ๋ SYN/ACK ํจํท์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ผ๋ฉด ์๋ฒ์๊ฒ ACK ํจํท์ ๋ณด๋ธ๋ค.
Client > Server : TCP
SYNServer > Client : TCP SYN ACKC
lient > Server : TCP ACK
5. Browser๊ฐ ์น ์๋ฒ์ HTTP ์์ฒญ์ ํ๋ค.
ํด๋ผ์ด์ธํธ๋ GET ์์ฒญ์ ํตํด ์๋ฒ์๊ฒ www.naver.com
์น ํ์ด์ง๋ฅผ ์๊ตฌํ๋ค.
- ๋ง์ฝ ์๊ฒฉ ์ฆ๋ช
(credentials)์ ์
๋ ฅํ๊ฑฐ๋ form์ ์ ์ถํ๋ ๊ฒฝ์ฐ POST ์์ฒญ์ ์ฌ์ฉํ ์ ์๋ค.
- ์ด ์์ฒญ์๋ ๋ธ๋ผ์ฐ์ ์๋ณ(User-Agent ํค๋), ์๋ฝํ ์์ฒญ ์ ํ(Accept ํค๋) ๋ฐ ์ถ๊ฐ ์์ฒญ์ ์ํด TCP ์ฐ๊ฒฐ์ ์ ์งํ๋ผ๋ ์ฐ๊ฒฐ ํค๋์ ๊ฐ์ ์ถ๊ฐ ์ ๋ณด๋ ํฌํจ๋๋ค. ๋ํ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด ๋๋ฉ์ธ์ ๋ํด ์ ์ฅํ ์ฟ ํค์์ ๊ฐ์ ธ์จ ์ ๋ณด๋ ์ ๋ฌํ๋ค.
6. ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ response๋ฅผ ์์ฑํ๋ค
์๋ฒ๋ ์น์๋ฒ๋ฅผ ๊ฐ์ง๊ณ ์๋ค(ex- Apache, IIS...). ์ด๋ ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ ์์ฒญ์ ๋ฐ๊ณ request handlerํํ
์์ฒญ์ ์ ๋ฌํด์ ์์ฒญ์ ์ฝ๊ณ ์์ฑํ๋ ์ญํ ์ ํ๋ค. ๊ทธ๋ฐ ๋ค์ ์๋ต์ ํน์ ํฌ๋งท(JSON, XML, HTML ๋ฑ) ์ผ๋ก ์์ฑํ๋ค.
- request handler
- ์์ฒญ, ์์ฒญ์ ํค๋ ๋ฐ ์ฟ ํค๋ฅผ ์ฝ๊ณ ํ์ํ ๊ฒฝ์ฐ ์๋ฒ์ ์ ๋ณด๋ฅผ ์
๋ฐ์ดํธํ๋ ํ๋ก๊ทธ๋จ์ด๋ค(NET, PHP, Ruby, ASP ๋ฑ์ผ๋ก ์์ฑ๋จ)
7. ์๋ฒ๊ฐ HTTP response๋ฅผ ๋ณด๋ธ๋ค
์๋ฒ ์๋ต์๋ ์น ํ์ด์ง์ ํจ๊ป status code, content-encoding, ์ค์ ํ ์ฟ ํค ๋ฑ์ด ํฌํจ๋๋ค.
HTTP ์๋ต ๊ฒฐ๊ณผ
- 2XX (Success):
- 200 (OK): ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค๋ ์๋ฏธ์ด๋ค.
- 204 (No Content): ์์ฒญ์ ์ฑ๊ณตํ๋๋ฐ, ๋๋ ค์ค resourse๋ ์์ ๋
- 3XX (redirect): ์์ฒญ ์๋ฃ๋ฅผ ์ํด ์ถ๊ฐ ์์
์กฐ์น๊ฐ ํ์ํ๋ค๋ ์๋ฏธ์ด๋ค.
- 301: ๊ฒ์์์ง์ ํด๋น ์ปจํ
์ธ ์ URL์ด ์๊ตฌ์ ์ผ๋ก ๋ณ๊ฒฝ๋์์์ ์๋ฆผ
- 302: ๊ฒ์์์ง์ ํด๋น ์ปจํ
์ธ ์ URL์ด ์์์ ์ผ๋ก ๋ณ๊ฒฝ๋์์์ ์๋ฆผ
- 4XX (Client Error): ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์ ํจํ์ง ์์ ์๋ฒ๊ฐ ํด๋น ์์ฒญ์ ์ํํ์ง ์์๋ค๋ ์๋ฏธ์ด๋ค.
- 400 : ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์ ํจํ์ง ์์ ๋ ์ด์ ์์
์ ์งํํ์ง ์๋ ๊ฒฝ์ฐ
- 401 (Unauthorized): ํด๋ผ์ด์ธํธ๊ฐ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ ์์
์ ์งํํ ์ ์๋ ๊ฒฝ์ฐ
- 403 (Forbidden): ์ ๊ทผ์ด ๊ฑฐ๋ถ๋จ์ ์๋ฆผ
- 404 (Not Found): ํด๋น ์์ฒญ์ ๋ํ resourse๊ฐ ์์์ ์๋ฆผ
- 500 (Server Error)
- 503 (Unavailavle): ํ์ฌ ๊ณผ๋ถํ ํน์ ์ ๊ฒ ์ค์ผ๋ก ์ฌ์ฉ๋ถ๊ฐํจ์ ์๋ฆผ
8. Browser๊ฐ HTML content๋ฅผ ๋ณด์ฌ์ค๋ค
๐ฅ ๋๋์
์ฒ์ ์ด ๋ถ๋ถ์ ๊ณต๋ถ๋ฅผ ์์ํ ๋ ๊ฐ๋
ํ๋ํ๋ ์ฐพ์๊ฐ๋ฉด์ ๊ณต๋ถํ๋๋ฐ ์ดํดํ๊ธฐํ๋ค์๋ค. ํนํ ๋๋ฉ์ธ ๋ถ๋ถ,, ์ง์ง ์์ง๊น์ง ๋์ ๊ณผ์ ์ด ์ดํด๊ฐ ์ ๊ฐ์ง ์๋๋ค.
๋๋ฉ์ธ ๋ถ๋ถ๋ง ํ์ ์ ๋ฆฌํด์ผ๊ฒ ๋ค.ใ
ใ
์ด ๋ถ๋ถ์ ์ ๋ฆฌํ๋ฉด์ ์น ๋ธ๋ผ์ฐ์ ์ถ๋ ฅ ํ๋ฆ์ ์๊ฒ ๋์ด์ ์ข์์ต๋ค๋น
ref