์ด ๊ธ์ ใํผ์ ๊ณต๋ถํ๋ ๋คํธ์ํฌใ ์ฑ ๋ด์ฉ์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
์ ์๊ถ ๋ฌธ์ ์ ์ญ์ ํ๊ฒ ์ต๋๋ค.
OSI ๋ชจ๋ธ
์์ฉ ๊ณ์ธต |
ํํ ๊ณ์ธต |
์ธ์ ๊ณ์ธต |
์ ์ก ๊ณ์ธต |
๋คํธ์ํฌ ๊ณ์ธต |
๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต |
๋ฌผ๋ฆฌ ๊ณ์ธต |
05-1.DNS์ ์์
์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ '๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์ ํ๋ ๋์'๊ณผ '์ก์์ ํ๊ณ ์ ํ๋ ์ ๋ณด'๋ฅผ ์๋ณํ ์ ์์ด์ผ ํ๋ค.
1) ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์ ํ๋ ๋์์ ์๋ณํ๊ธฐ ์ํด IP ์ฃผ์ ์ธ์ ๋๋ฉ์ธ ๋ค์์ ์ฌ์ฉํ ์ ์๋ค.
2) ์ก์์ ํ๊ณ ์ ํ๋ ์ ๋ณด๋ฅผ ์๋ณํ๊ธฐ ์ํด ์์น ๊ธฐ๋ฐ ์๋ณ์ URL๊ณผ ์ด๋ฆ ๊ธฐ๋ฐ ์๋ณ์ URN์ด ์๋ค.
* ๋๋ฉ์ธ ๋ค์๊ณผ ๋ค์ ์๋ฒ
1. ๋๋ฉ์ธ ๋ค์
: ํธ์คํธ์ IP ์ฃผ์์ ๋์๋๋ ๋ฌธ์์ด ํํ์ ํธ์คํธ ํน์ ์ ๋ณด.
IP ์ฃผ์๋ณด๋ค ๊ธฐ์ตํ๊ธฐ ์ฝ๋ค. IP ์ฃผ์๊ฐ ๋ฐ๋๋๋ผ๋ ๋ฐ๋ IP ์ฃผ์์ ๋๋ฉ์ธ ๋ค์์ ๋ค์ ๋์ํ๋ฉด ๋์ด IP ์ฃผ์๋ง์ผ๋ก ํธ์คํธ๋ฅผ ํน์ ํ๋ ๊ฒ๋ณด๋ค ๋ ๊ฐํธํ๋ค.
ex) www.naver.com, www.google.com ๋ฑ
2. ๋ค์ ์๋ฒ
: ๋๋ฉ์ธ ๋ค์๊ณผ IP ์ฃผ์๋ฅผ ๋ชจ์ ๊ด๋ฆฌ.
๊ณต์ฉ ์ ํ๋ฒํธ๋ถ ์ญํ
cf) ๊ฐ์ธ ์ ํ๋ฒํธ๋ถ ์ญํ ์ 'hosts ํ์ผ'
: ํธ์คํธ๋ง๋ค ๊ฐ๊ณ ์๋ ๋๋ฉ์ธ ๋ค์๊ณผ IP ์ฃผ์์ ๋์ ๊ด๊ณ๋ฅผ ๋ด์ ํ์ผ.
- macOS ์ ๊ฒฝ์ฐ /etc/hosts ์ ์์น
- ์๋์ฐ์ ๊ฒฝ์ฐ %SystemRoot%\System\drivers\etc\hosts
3. ๋๋ฉ์ธ ๋ค์์ ๊ตฌ์กฐ
www.example.com |

๋๋ฉ์ธ ๋ค์์ .์ ๊ธฐ์ค์ผ๋ก ๊ณ์ธต์ ์ผ๋ก ๋ถ๋ฅ๋๋ค.
1) ๋ฃจํธ ๋๋ฉ์ธ: www.google.com. ์ผ๋ก ์ ์ํด๋ ๋์ง๋ง ์๋ตํด์ ํ๊ธฐํ๋ค.
2) ์ต์์ ๋๋ฉ์ธ(TLD: Top-Level Domain): ๋๋ฉ์ธ ๋ค์์ ๊ฐ์ฅ ๋ง์ง๋ง ๋ถ๋ถ.
ex) com, net, org, kr(๋ํ๋ฏผ๊ตญ), jp(์ผ๋ณธ), cn(์ค๊ตญ), us(๋ฏธ๊ตญ),...
3) 2๋จ๊ณ ๋๋ฉ์ธ: example
3) 3๋จ๊ณ ๋๋ฉ์ธ: www. www.example.com์ ์ 3๋จ๊ณ๊น์ง ๊ฐ๋ฉด ๋๋ฉ์ธ ๋ค์ ์ ์ฒด๋ฅผ ์ป์ ์ ์์ด์ www ๋ฅผ ํธ์คํธ ๋ค์์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
cf) ์ ์ฒด ์ฃผ์ ๋๋ฉ์ธ ๋ค์์ (FQDN: Full-Qualified Domain Name) ๋ผ ์นญํ๋ค
4. ๊ณ์ธต์ ๋ค์ ์๋ฒ

๊ณ์ธต์ ์ธ ๋๋ฉ์ธ ๋ค์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ค์ ์๋ฒ ๋ํ ๊ณ์ธต์ ์ธ ํํ๋ฅผ ์ด๋ฃฌ๋ค.
๋ค์ ์๋ฒ๋ ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ฉฐ ์ ์ธ๊ณ ์ฌ๋ฌ ๊ตฐ๋ฐ์ ์์นํด ์๋ค.
์ด๋ ๊ฒ ๊ณ์ธต์ ์ผ๋ก ๋ถ์ฐ๋ ๋๋ฉ์ธ ๋ค์์ ๋ํ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ Domain Name System(DNS) ๋ผ ๋ถ๋ฅธ๋ค.
IP ์ฃผ์๋ฅผ ๋ชจ๋ฅด๋ ์ํ์์ ๋๋ฉ์ธ ๋ค์์ ๋์ ๋๋ IP ์ฃผ์๋ฅผ ์์๋ด๋ ๊ณผ์ : ๋๋ฉ์ธ ๋ค์์ ํ์ดํ๋ค. ๋ฆฌ์กธ๋นํ๋ค. ๋ผ๊ณ ํํํจ.
1) ๋ก์ปฌ ๋ค์ ์๋ฒ
: ํด๋ผ์ด์ธํธ์ ๋ง๋ฟ์ ์๋ ๋ค์ ์๋ฒ. ํด๋ผ์ด์ธํธ๊ฐ ๋๋ฉ์ธ ๋ค์์ ํตํด IP ์ฃผ์๋ฅผ ์์๋ด๊ณ ์ ํ ๋ ๊ฐ์ฅ ๋จผ์ ์ฐพ๊ฒ ๋๋ ๋ค์ ์๋ฒ
- ๋ก์ปฌ ๋ค์ ์๋ฒ์ ์ฃผ์๋ ISP๊ฐ ํ ๋นํด ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ณ , ๊ณต๊ฐ DNS ์๋ฒ๋ฅผ ์ด์ฉํ ์๋ ์๋ค.
- ๋ํ์ ์ธ ๊ณต๊ฐ DNS ์๋ฒ์ ์: ๊ตฌ๊ธ์ 8.8.8.8, 8.8.4.4, ํด๋ผ์ฐ๋ํ๋ ์ด์ 1.1.1.1

2) ๋ฃจํธ ๋ค์ ์๋ฒ
๋ฃจํธ ๋๋ฉ์ธ์ ๊ด์ฅํ๋ ๋ค์ ์๋ฒ.
TLD ๋ค์ ์๋ฒ์ IP ์ฃผ์ ๋ฐํ.
3) TLD ๋ค์ ์๋ฒ
TLD๋ฅผ ๊ด๋ฆฌํ๋ ๋ค์ ์๋ฒ
TLD์ ํ์ ๋๋ฉ์ธ ๋ค์์ ๊ด๋ฆฌํ๋ ๋ค์ ์๋ฒ ์ฃผ์๋ฅผ ๋ฐํ
4) ์ฑ ์ ๋ค์ ์๋ฒ
์์ ์ด ๊ด๋ฆฌํ๋ ๋๋ฉ์ธ ์์ญ์ ์ง์์ ๋ํด์๋ ๋ค๋ฅธ ๋ค์ ์๋ฒ์๊ฒ ์ ๋ฌํ์ง ์๊ณ ๊ณง๋ฐ๋ก ๋ตํ ์ ์๋ ๋ค์ ์๋ฒ. ๋ก์ปฌ ๋ค์ ์๋ฒ๊ฐ ๋ง์ง๋ง์ผ๋ก ์ง์ํ๋ ๋ค์ ์๋ฒ.
* ๋๋ฉ์ธ ๋ค์์ ๋ฆฌ์กธ๋นํ๋ ๊ณผ์
: ์ฌ๊ท์ ์ง์, ๋ฐ๋ณต์ ์ง์
1) ์ฌ๊ท์ ์ง์: ํด๋ผ์ด์ธํธ๊ฐ ๋ก์ปฌ ๋ค์ ์๋ฒ์๊ฒ ๋๋ฉ์ธ ๋ค์์ ์ง์ํ๋ฉด, ๋ก์ปฌ ๋ค์ ์๋ฒ๊ฐ ๋ฃจํธ ๋ค์ ์๋ฒ์๊ฒ, ๋ฃจํธ ๋ค์ ์๋ฒ๊ฐ TLD ๋ค์ ์๋ฒ์๊ฒ, TLD ๋ค์ ์๋ฒ๊ฐ ๋ค์ ๋จ๊ณ์ ์ง์ํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๊ณ ์ต์ข ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์ญ์์ผ๋ก ์ ๋ฌ๋ฐ๋ ๋ฐฉ์.

2) ๋ฐ๋ณต์ ์ง์: ๋ก์ปฌ ๋ค์ ์๋ฒ๊ฐ ๋ค์ ์๋ฒ๋ค์๊ฒ ์ฐจ๋ก๋ก ์ง์ํด์ ์ต์ข ์๋ต ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค์ฃผ๋ ๋ฐฉ์

* DNS ์บ์: ์๊ฐ ์ ์ฝ์ ์ํด ๋ค์ ์๋ฒ๋ค์ด ๊ธฐ์กด์ ์๋ต๋ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์์ ์ ์ฅํด๋จ๋ค๊ฐ ์ถํ ๊ฐ์ ์ง์์ ๋ฐํ
5. URI(Uniform Resource Identifier)
: ์์์ ์๋ณํ ์ ์๋ ์ ๋ณด. ์์์ ์๋ณํ๋ ํต์ผ๋ ๋ฐฉ์.
1) URL(Uniform Resource Locator): ์์น๋ฅผ ์ด์ฉํด ์์์ ์๋ณํ๋ ๋ฐฉ์
2) URN(Uniform Resource Name): ์ด๋ฆ์ ์ด์ฉํด ์์์ ์๋ณํ๋ ๋ฐฉ์
*URL

1) scheme: ์์์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ. http, https
2) authority: ํธ์คํธ๋ฅผ ํน์ ํ ์ ์๋ ์ ๋ณด. IP ์ฃผ์, ๋๋ฉ์ธ ๋ค์. (:) ์ผ๋ก ํฌํธ๋ฒํธ๋ฅผ ๋ถ์ผ ์๋ ์์.
3) path: ์์์ด ์์นํ ๊ฒฝ๋ก. (/) ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ธต์ ์ผ๋ก ํํ
4) query: <query=value> ํํ๋ก ํน์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
5) fragment: ์์์ ํ ์กฐ๊ฐ์ ๊ฐ๋ฆฌํค๊ธฐ ์ํ ์ ๋ณด. html ํ์ผ๊ณผ ๊ฐ์ ์์์์ ํน์ ๋ถ๋ถ์ ๊ฐ๋ฆฌํด.(์คํฌ๋กค ์ด๋)
* URN
: ์์์ ๊ณ ์ ํ ์ด๋ฆ์ ๋ถํฐ๋ ์ด๋ฆ ๊ธฐ๋ฐ ์๋ณ์. ์์์ ์์น์ ๋ฌด๊ดํ๊ฒ ์์์ ์๋ณํ ์ ์๋ค๋ ์ฅ์ .
ex) urn:isbn.0451450523
05-2. HTTP
HTTP: ์์ฉ ๊ณ์ธต์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ
์์ฒญ๊ณผ ์๋ต์ ๊ธฐ๋ฐ์ผ๋ก ๋์, ๋ฏธ๋์ด ๋๋ฆฝ์ , ์ํ๋ฅผ ์ ์งํ์ง ์๊ณ ์ง์ ์ฐ๊ฒฐ์ ์ง์ํ๋ค.
1. HTTP์ ํน์ฑ
1) ์์ฒญ - ์๋ต ๊ธฐ๋ฐ ํ๋กํ ์ฝ
: ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก HTTP ์์ฒญ ๋ฉ์์ง์ HTTP ์๋ต ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ตฌ์กฐ๋ก ๋์ํ๋ค.
2) ๋ฏธ๋์ด ๋ ๋ฆฝ์ ํ๋กํ ์ฝ
: ์ฃผ๊ณ ๋ฐ์ ์์์ ํน์ฑ๊ณผ ๋ฌด๊ดํ๊ฒ ์์์ ์ฃผ๊ณ ๋ฐ์ ์๋จ์ ์ญํ ๋ง์ ์ํํ๋ค.
: HTTP์์ ๋ฉ์์ง๋ก ์ฃผ๊ณ ๋ฐ๋ ์์์ ์ข ๋ฅ๋ฅผ ๋ฏธ๋์ด ํ์ (MIME ํ์ ) ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ์ /์๋ธํ์ ํํ๋ก ๋ช ์

3) ์คํ ์ดํธ๋ฆฌ์ค ํ๋กํ ์ฝ
: ์๋ฒ๊ฐ HTTP ์์ฒญ์ ๋ณด๋ธ ํด๋ผ์ด์ธํธ์ ๊ณ ๋๋ จ๋ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์๋๋ค.
: TTTP ์๋ฒ๊ฐ ๋ง์ ํด๋ผ์ด์ธํธ์ ๋์์ ์ํธ์์ฉํด์ผ ํ๊ณ ์ฌ๋ฌ ๋๋ก ๊ตฌ์ฑ๋๋ฏ๋ก ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์์ง ์๋ ๊ฒ์ด ์ฑ๋ฅ์์ ์ด์ ์ด ๋ ๋ง๊ธฐ ๋๋ฌธ.
: ์ธ์ ๋ ์ฝ๊ฒ ์๋ฒ๋ฅผ ์ถ๊ฐํ ์ ์๊ณ (ํ์ฅ์ฑ), ์๋ฒ ์ค ํ๋์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ์ฝ๊ฒ ๋ค๋ฅธ ์๋ฒ๋ก ๋์ฒด ๊ฐ๋ฅํ๋ค.(๊ฒฌ๊ณ ์ฑ)
4) ์ง์ ์ฐ๊ฒฐ ํ๋กํ ์ฝ
: ๋งค๋ฒ ์๋กญ๊ฒ ์ฐ๊ฒฐ์ ์๋ฆฝ/์ข ๋ฃํ๋ ๊ฒ ๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์ฌ๋ฌ HTTP ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ ์ ์๋ค.
2. HTTP ๋ฉ์์ง์ ๊ตฌ์กฐ

1) ์์๋ผ์ธ(์์ฒญ๋ผ์ธ/์ํ๋ผ์ธ)
- HTTP ์์ฒญ ๋ฉ์์ง์ธ ๊ฒฝ์ฐ: ์์ฒญ ๋ผ์ธ.
๋ฉ์๋ (๊ณต๋ฐฑ) ์์ฒญ ๋์ (๊ณต๋ฐฑ) HTTP ๋ฒ์ (์ค๋ฐ๊ฟ) |
๋ฉ์๋: GET, POST, PUT, DELETE ๋ฑ
์์ฒญ๋์: HTTP ์์ฒญ์ ๋ณด๋ผ ์๋ฒ์ ์์. http://www.example.com/hello?q=world ์ผ ๋ /hello?q=world
HTTP ๋ฒ์ : HTTP/<๋ฒ์ > ํํ๋ก ์ ์ด์ค
- HTTP ์๋ต ๋ฉ์์ง์ธ ๊ฒฝ์ฐ: ์ํ ๋ผ์ธ.
HTTP ๋ฒ์ (๊ณต๋ฐฑ) ์ํ ์ฝ๋ (๊ณต๋ฐฑ) ์ด์ ๊ตฌ๋ฌธ * (์ค๋ฐ๊ฟ) |
์ํ ์ฝ๋: ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ 3์๋ฆฌ ์ ์
์ด์ ๊ตฌ๋ฌธ: ์ํ ์ฝ๋์ ๋ํ ๋ฌธ์์ด ํํ์ ์ค๋ช
ex) HTTP/1.1 200 OK, HTTP/1.1 404 Not Found
2) ํ๋ ๋ผ์ธ(ํค๋ ๋ผ์ธ)
: 0๊ฐ ์ด์์ HTTP ํค๋๊ฐ ๋ช ์๋จ. HTTP ํต์ ์ ํ์ํ ๋ถ๊ฐ ์ ๋ณด.
3) ๋ฉ์์ง ๋ณธ๋ฌธ
: ๋ฉ์์ง ๋ณธ๋ฌธ์ ์กด์ฌํ์ง ์์ ์๋ ์๊ณ , Json, html ๋ฑ ๋ค์ํ ์ฝํ ์ธ ํ์ ์ด ์ฌ์ฉ๋ ์ ์๋ค.

3. HTTP ๋ฉ์๋

* GET ์์

* API ๋ฌธ์
: ์ด๋ค URL์ ์ด๋ค ๋ฉ์๋๋ฅผ ๋ณด๋ผ ์ ์๋์ง, ์ด๋ค ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด ์ฌ์ฉ๋ ์ ์๋์ง, ์ฌ๋ฐ๋ฅด๊ฒ ์์ฒญ์ ๋ณด๋์ ๊ฒฝ์ฐ ์ด๋ค ์๋ต ๋ฉ์์ง๋ฅผ ๋ฐ์ ์ ์๋์ง ๋ฑ์ ๋ช ์ํ ๊ฐ์ด๋ ๋ฌธ์
4. HTTP ์ํ์ฝ๋


202: ์์ ์๊ฐ์ด ๊ธด ๋์ฉ๋ ํ์ผ ์ ๋ก๋ ์์ ์ด๋ ๋ฐฐ์น ์์ ๊ณผ ๊ฐ์ด ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๊ณง๋ฐ๋ก ์๋ตํ๊ธฐ ์ด๋ ค์ด ์ํฉ

๋ฆฌ๋ค์ด๋ ์ ์ํ: ์์ฒญ์ ์์ํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ์กฐ์น๊ฐ ํ์ํ ์ํ
์๊ตฌ์ ์ธ ๋ฆฌ๋ค์ด๋ ์ : ์์์ด ์์ ํ ์๋ก์ด ๊ณณ์ผ๋ก ์ด๋ํด์ ๊ฒฝ๋ก๊ฐ ์๊ตฌ์ ์ผ๋ก ์ฌ์ง์ ๋ ์ํ

์ผ์์ ์ธ ๋ฆฌ๋ค์ด๋ ์ : ์์์ ์์น๊ฐ ์์๋ก ๋ณ๊ฒฝ๋ ์ํ

ํด๋ผ์ด์ธํธ์ ์ํ ์๋ฌ๊ฐ ์๋ ์ํ.
์๋ฒ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ํํ๋ก ์์ฒญํ๊ฑฐ๋ ์กด์ฌํ์ง ์๋ ์์์ ๋ํ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒฝ์ฐ

์๋ฒ ์๋ฌ์ ๋ํ ์ํ.
5. HTTP์ ๋ฐ์
1) HTTP/0.9: ์ฌ์ฉ๊ฐ๋ฅํ ๋ฉ์๋ GET, ์์ฒญ ๋ฉ์์ง ํ ์ค๋ก ๊ตฌ์ฑ. ํค๋ ์ง์๋ถ๊ฐ
2) HTTP/1.0: HEAD, POST ๋ฉ์๋ ์ถ๊ฐ. ํค๋ ์ง์ ์์. ์ง์ ์ฐ๊ฒฐ ์ง์ ๋ถ๊ฐ.
3) HTTP/1.1: ์ง์ ์ฐ๊ฒฐ ์ง์. ์๋ต ์ ์ ๋ค์ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ ํ์ดํ๋ผ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ. ์ฝํ ์ธ ํ์ ๊ธฐ๋ฅ ๋ฑ ๋ค์ํ ํธ์ ๊ธฐ๋ฅ ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ํค๋ ์ถ๊ฐ. ์ค๋๋ ๊น์ง ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ฒ์ .
4) HTTP/2.0: HTTP/1.1์ ํจ์จ๊ณผ ์ฑ๋ฅ์ ๋์ธ ๋ฒ์ . ํค๋ ์์ถ ์ ์ก, ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๋ฉ์์ง ์ก์์ , ๋ฏธ๋์ ์ฌ์ฉ๋ ๊ฒ์ผ๋ก ์์๋๋ ์์์ ๋ฏธ๋ฆฌ ์ ์กํด์ฃผ๋ ์๋ฒ ํธ์ ๊ธฐ๋ฅ ์ ๊ณต. ๋ณ๋ ฌ๋ก ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฉํฐํ๋ ์ฑ ๊ธฐ์ ๋์ .
5) HTTP/3.0: ์ด์ ๋ฒ์ ๋ค์ด TCP ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ UDP ๊ธฐ๋ฐ์ผ๋ก ๋์. ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ UDP ๊ฐ ๋ ๋นจ๋ผ์ ์๋๊ฐ ๋ํญ ํฅ์๋จ.
05-3. HTTP ํค๋์ HTTP ๊ธฐ๋ฐ ๊ธฐ์
1. HTTP ํค๋
1) ์์ฒญ ์ ํ์ฉ๋๋ HTTP ํค๋
- Host: ์์ฒญ์ ๋ณด๋ผ ํธ์คํธ๋ฅผ ๋ํ๋ด๋ ํค๋. ๋๋ฉ์ธ ๋ค์์ผ๋ก ๋ช ์ ๋จ.
GET /hypertext/WWW/TheProject.html HTTP/1.1 Host: info.cern.ch |
- User-Agent: HTTP ์์ฒญ์ ์์ํ๋ ํด๋ผ์ด์ธํธ ์ธก์ ํ๋ก๊ทธ๋จ๊ณผ ๊ด๋ จ๋ ์ ๋ณด ๋ช ์.
User-Agent: Mozilla/5.0 (Windows NT 10.0; win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0 |
- Referer: ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ผ ๋ ๋จธ๋ฌด๋ฅด๊ณ ์๋ URL์ด ๋ช ์ ๋จ. ํด๋ผ์ด์ธํธ์ ์ ์ ๊ฒฝ๋ก ํ์ ๊ฐ๋ฅ
Referer: https://en.wikipedia.org/ |
- Authorization: ํด๋ผ์ด์ธํธ์ ์ธ์ฆ ์ ๋ณด ๋ช ์. Basic ์ธ์ฆ(Base64 ๋ก ์ธ์ฝ๋ฉํ ๊ฐ์ ๋ช ์ํจ.), Bearer ์ธ์ฆ(OAuth ์ธ์ฆ)
Basic ์ธ์ฆ๊ณผ Bearer ์ธ์ฆ์ ๋ชจ๋ ๊ฒ
Authorization: Basic bWluY2h1bDoxMjM0 |
Authorization: Bearer <token ๊ฐ> |
2) ์๋ต ์ ์ฌ์ฉ๋๋ HTTP ํค๋
- Server: ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฒ ์ธก์ ์ํํธ์จ์ด์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ช ์
Server: Apache/2.4.1 (Unix) |
- Allow: ํด๋ผ์ด์ธํธ์๊ฒ ํ์ฉ๋ HTTP ๋ฉ์๋ ๋ชฉ๋ก์ ๋ช ์. 405(Method Not Allowed) ์ํ ์ฝ๋์์ ์๋ตํ๋ ๋ฉ์์ง์ Allow ํค๋๊ฐ ํจ๊ป ์ฌ์ฉ๋จ.
Allow: POST, OPTIONS |
- Retry-After: ์์์ ์ฌ์ฉํ ์ ์๋ ๋ ์ง ํน์ ์๊ฐ์ ๋ํ๋. 503(Service Unavailable) ์ํ ์ฝ๋์์ ์๋ตํ๋ ๋ฉ์์ง์ Retry-After ํค๋๊ฐ ํจ๊ป ์ฌ์ฉ๋จ.
Retry-After: Fri, 23 Aug 2024 09:00:00 GMT Retry-After: 120 |
- Location: ํด๋ผ์ด์ธํธ์๊ฒ ์์์ ์์น๋ฅผ ์๋ ค ์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํค๋
- WWW-Authorization: ์์์ ์ ๊ทผํ๊ธฐ ์ํ ์ธ์ฆ ๋ฐฉ์์ ์ค๋ช ํ๋ ํค๋.
WWW-Authorization: Basic realm="Access to engineering site", charset="UTF-8" |
3) ์์ฒญ ๋ฐ ์๋ต ๋ชจ๋์์ ์ฌ์ฉ๋๋ HTTP ํค๋
-Date: ๋ฉ์์ง๊ฐ ์์ฑ๋ ๋ ์ง์ ์๊ฐ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ด์ ํค๋.
Date: Tue, 15 Nov 1994 08:12:31 GMT |
- Connection: ํด๋ผ์ด์ธํธ์ ์์ฒญ๊ณผ ์๋ต ๊ฐ์ ์ฐ๊ฒฐ ๋ฐฉ์์ ์ค์ ํ๋ ํค๋
Connection: keep-alive Connection: close |
- Content-Length: ๋ณธ๋ฌธ์ ๋ฐ์ดํธ ๋จ์ ํฌ๊ธฐ(๊ธธ์ด)
Content-Length: 100 |
- Content-Type, Content-Language, Content-Encoding: ๋ฉ์์ง ๋ณธ๋ฌธ์ ํํ ๋ฐฉ์
Content-Type: text/html; charset=UTF-8 Content-Encoding: gzip |
* ์บ์
: ๋ถํ์ํ ๋์ญํญ ๋ญ๋น์ ์๋ต ์ง์ฐ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ๋ณด์ ์ฌ๋ณธ์ ์์๋ก ์ ์ฅํ๋ ๊ธฐ์
* ์บ์ ์ ์ ๋
์บ์๋ ์ฌ๋ณธ ๋ฐ์ดํฐ๊ฐ ์ผ๋ง๋ ์ต์ ์๋ณธ ๋ฐ์ดํฐ์ ์ ์ฌํ์ง๋ฅผ ๋ํ๋ด๋ ์ ๋
1) ์บ์๋ ๋ฐ์ดํฐ์ ์ ํจ ๊ธฐ๊ฐ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ
Expires: <๋ ์ง>
Cache-Control: max-age=<์ด>
2) ์บ์์ ์ ํจ ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋์๋๋ผ๋ ์ฌ์ ํ ์ต์ ์ํ์ ์ ๋ณด์ธ์ง ํ์ธ
์์ฒญ: If-Modifed-Since: <๋ ์ง>
์๋ต: ์์ฒญ๋ฐ์ ์์์ด ๋ณ๊ฒฝ๋์์(200(OK)), ์์ฒญ๋ฐ์ ์์์ด ๋ณ๊ฒฝ๋์ง ์์์(304(Not Modified)), ์์ฒญ๋ฐ์ ์์์ด ์ญ์ ๋์์(404(Not Found))
3) ์์์ ๋ฒ์ ์ผ๋ก ์์ฒญํ๊ธฐ
์์ฒญ: If-None-Match: <์ํฐํฐ ํ๊ทธ>
์๋ต: ์์ฒญ๋ฐ์ ์์์ด ๋ณ๊ฒฝ๋์์(200(OK)), ์์ฒญ๋ฐ์ ์์์ด ๋ณ๊ฒฝ๋์ง ์์์(304(Not Modified)), ์์ฒญ๋ฐ์ ์์์ด ์ญ์ ๋์์(404(Not Found))
* ์ฟ ํค
: ์๋ฒ์์ ์์ฑ๋์ด ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ.
์ํ๋ฅผ ์ ์งํ์ง ์๋ HTTP ์ ํน์ฑ์ ๋ณด์ํ๊ธฐ ์ํ ์๋จ.
<์ด๋ฆ, ๊ฐ> ์์ ํํ.
ex) Session ์ธ์ฆ

์ฟ ํค์ ์ฌ์ฉ๊ฐ๋ฅํ ๋๋ฉ์ธ, ๊ฒฝ๋ก๋ ํจ๊ป ์ ์ฅ๋๋ค.
์์ฒญ ๋ฉ์์ง
Cookie: ์ด๋ฆ=๊ฐ; ์ด๋ฆ=๊ฐ;
์๋ต ๋ฉ์์ง
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: name=minchul; phone=100-100; message=Hello; Expires=Fri, 23 Aug 2024 09:00:00 GMT
* ์ฟ ํค ๋ณด์
Secure: HTTPS ํ๋กํ ์ฝ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์ก๋๋๋ก ํ๋ ์์ฑ
HttpOnly: HTTP ์ก์์ ์ ํตํด์๋ง ์ฟ ํค๋ฅผ ์ด์ฉํ๋๋ก ์ ํํ๋ ์์ฑ
* ์ฟ ํค์ ํ์๊ณผ ํํ
: ๊ฐ์ URI ์ ๋ํด ๊ฐ์ฅ ์ ํฉํ ์์์ ํํ๋ฅผ ์ ๊ณตํ๋ ๋งค์ปค๋์ฆ
Accept-Language, Accept-Charset, Accept-Encoding ๋ฑ์ผ๋ก ์ ํธํ๋ ์์์ ๋ช ์ํด์ ์์ฒญํ ์ ์๋ค.
'๐ Computer Science > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํผ์ ๊ณต๋ถํ๋ ๋คํธ์ํฌ] 7์ฅ. ๋คํธ์ํฌ ์ฌํ (0) | 2025.03.23 |
---|---|
[ํผ์ ๊ณต๋ถํ๋ ๋คํธ์ํฌ] 6์ฅ. ์ค์ต์ผ๋ก ๋ณต์ตํ๋ ๋คํธ์ํฌ(Wireshark) (0) | 2025.03.23 |
[ํผ์ ๊ณต๋ถํ๋ ๋คํธ์ํฌ] 4์ฅ. ์ ์ก ๊ณ์ธต (0) | 2025.03.09 |
[ํผ์ ๊ณต๋ถํ๋ ๋คํธ์ํฌ] 3์ฅ. ๋คํธ์ํฌ ๊ณ์ธต (0) | 2025.03.02 |
[์ปดํจํฐ ๋ฐ๋ฐ๋ฅ์ ๋น๋ฐ] 6์ฅ. ์ ์ถ๋ ฅ (0) | 2025.02.23 |