CS๊ณต๋ถ€/๋„คํŠธ์›Œํฌ

[ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ๋„คํŠธ์›Œํฌ] 5. ์‘์šฉ ๊ณ„์ธต

alswlfl 2026. 5. 30. 18:14

DNS์™€ ์ž์›

๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š”,

  • ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์†ก์ˆ˜์‹ ์ง€ ํŒŒ์•… → IP ์ฃผ์†Œ, ๋„๋ฉ”์ธ ๋„ค์ž„
  • ์†ก์ˆ˜์‹ ํ•˜๊ณ ์ž ํ•˜๋Š” ์ •๋ณด ํŒŒ์•… → ์ž์›

๋„๋ฉ”์ธ ๋„ค์ž„๊ณผ ๋„ค์ž„ ์„œ๋ฒ„

IP ์ฃผ์†Œ๋งŒ์œผ๋กœ ์†ก์ˆ˜์‹ ์ง€ ํŠน์ •ํ•˜๋Š” ๊ฒƒ์€ ๋ฒˆ๊ฑฐ๋กœ์›€

  • ํ†ต์‹ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ ๊ธฐ์–ตํ•˜๊ธฐ ์–ด๋ ค์›€
  • IP ์ฃผ์†Œ๋Š” ์–ธ์ œ๋“  ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ์Œ

๊ทธ๋ž˜์„œ ์ƒ๋Œ€ ํ˜ธ์ŠคํŠธ ํŠน์ •์„ ์œ„ํ•ด ๋„๋ฉ”์ธ ๋„ค์ž„์„ ์‚ฌ์šฉ

๋„๋ฉ”์ธ ๋„ค์ž„( = ์ „ํ™”๋ฒˆํ˜ธ์— ๋Œ€์‘ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„): ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ์™€ ๋Œ€์‘๋˜๋Š” ๋ฌธ์ž์—ด ํ˜•ํƒœ์˜ ํ˜ธ์ŠคํŠธ ํŠน์ • ์ •๋ณด

ex) www.example.com

  • ๋„๋ฉ”์ธ ๋„ค์ž„์€ ๋„ค์ž„ ์„œ๋ฒ„(DNS ์„œ๋ฒ„)์—์„œ ๊ด€๋ฆฌ๋จ(= ๊ณต์šฉ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€)
    • IP ์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๋„๋ฉ”์ธ ๋„ค์ž„ ๋‹ค์‹œ ๋Œ€์‘ํ•˜๋ฉด ๊ทธ๋งŒ
  • hosts ํŒŒ์ผ: ํ˜ธ์ŠคํŠธ๋งˆ๋‹ค ๋„๋ฉ”์ธ ๋„ค์ž„๊ณผ IP ์ฃผ์†Œ์˜ ๋Œ€์‘ ๊ด€๊ณ„๋ฅผ ๋‹ด์€ ํŒŒ์ผ(= ๊ฐœ์ธ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€)
    • hosts ํŒŒ์ผ ์œ„์น˜: ๋งฅOS๋‚˜ ๋ฆฌ๋ˆ…์Šค(/etc/hosts), ์œˆ๋„์šฐ(%SystemRoot%๏ฟฆSystem32๏ฟฆdrivers๏ฟฆetc๏ฟฆhosts)

๋„ค์ž„ ์„œ๋ฒ„์˜ ๊ด€๋ฆฌ

๋„ค์ž„ ์„œ๋ฒ„๋Š” ์ (.)์„ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์ธต์ ์œผ๋กœ ๋ถ„๋ฅ˜ํ•จ

๋„ค์ž„ ์„œ๋ฒ„์˜ ๊ณ„์ธต์  ๊ตฌ์กฐ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ๋ฃจํŠธ ๋„๋ฉ”์ธ(root domain)
  • ์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ(TLD;Top-Level Domain)
  • 2๋‹จ๊ณ„ ๋„๋ฉ”์ธ, 3๋‹จ๊ณ„ ๋„๋ฉ”์ธ, 4๋‹จ๊ณ„ ๋„๋ฉ”์ธ, ...

[๋„ค์ž„ ์„œ๋ฒ„๊ฐ€ ์ €์žฅํ•˜๋Š” ๋‚ด์šฉ]

๋„ค์ž„ ์„œ๋ฒ„๋Š” DNS ์ž์› ๋ ˆ์ฝ”๋“œ(DNS resource record)๋ฅผ ์ €์žฅํ•จ

  • DNS ์ž์› ๋ ˆ์ฝ”๋“œ = ์ด๋ฆ„(ํ˜ธ์ŠคํŠธ ์ด๋ฆ„), ๊ฐ’(value), TTL, ๋ ˆ์ฝ”๋“œ ์œ ํ˜•, ๋“ฑ
  • ์›น ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•  ๋•Œ, ๋จผ์ € ๋„๋ฉ”์ธ ๋„ค์ž„์„ ๊ตฌ์ž…ํ•œ ํ›„, ํ•ด๋‹น ๋„๋ฉ”์ธ ๋„ค์ž„๊ณผ IP ์ฃผ์†Œ๊ฐ€ ๋Œ€์‘๋จ์„ ๋„ค์ž„ ์„œ๋ฒ„์— ์•Œ๋ ค์•ผ ํ•จ
  • ์ด๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ์ •๋ณด๊ฐ€ DNS ์ž์› ๋ ˆ์ฝ”๋“œ์ž„
  • ex) ๋„ค์ž„ ์„œ๋ฒ„์— example.com์„ ์งˆ์˜ํ•˜๋ฉด 1.2.3.4 ์‘๋‹ต, DNS ์บ์‹œ๋Š” 300์ดˆ๊ฐ„ ์ €์žฅ
    www.example.com์— ์งˆ์˜ํ•˜๋ฉด 1.2.3.4 ์‘๋‹ต
ํƒ€์ž… ์ด๋ฆ„ ๊ฐ’ TTL
A example.com 1.2.3.4 300
CNAME www.example.com example.com 300
  • ๋ ˆ์ฝ”๋“œ ์œ ํ˜•: ๋ ˆ์ฝ”๋“œ ์œ ํ˜•์ด ๋‹ฌ๋ผ์ง€๋ฉด ๋ ˆ์ฝ”๋“œ ์ด๋ฆ„๊ณผ ๊ฐ’์˜ ์˜๋ฏธ๊ฐ€ ๋‹ฌ๋ผ์ง
๋ ˆ์ฝ”๋“œ ์œ ํ˜• ์„ค๋ช…
A ํŠน์ • ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ๋„๋ฉ”์ธ ๋„ค์ž„๊ณผ IPv4 ์ฃผ์†Œ์™€์˜ ๋Œ€์‘ ๊ด€๊ณ„
AAAA ํŠน์ • ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ๋„๋ฉ”์ธ ๋„ค์ž„๊ณผ IPv6 ์ฃผ์†Œ์™€์˜ ๋Œ€์‘ ๊ด€๊ณ„
CNAME ํ˜ธ์ŠคํŠธ ๋„ค์ž„์— ๋Œ€ํ•œ ๋ณ„์นญ ์ง€์ •
NS ํŠน์ • ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋„ค์ž„ ์„œ๋ฒ„
MX ํ•ด๋‹น ๋„๋ฉ”์ธ๊ณผ ์—ฐ๋™๋˜์–ด ์žˆ๋Š” ๋ฉ”์ผ ์„œ๋ฒ„

 

์ „์ฒด ์ฃผ์†Œ ๋„๋ฉ”์ธ ๋„ค์ž„(FQDN; Fully-Qualified Domain Name): ์ „์ฒด ๋„๋ฉ”์ธ ๊ณ„์ธต์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๋„๋ฉ”์ธ ๋„ค์ž„

  • FQDN๊นŒ์ง€ ์•Œ๋ฉด ๋น„๋กœ์†Œ ํ•˜๋‚˜์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ

FQDN(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

์„œ๋ธŒ ๋„๋ฉ”์ธ(subdomain): ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์ด ํฌํ•จ๋œ ๋„๋ฉ”์ธ

ex) google.com์˜ ์„œ๋ธŒ ๋„๋ฉ”์ธ: mail.google.com, www.google.com, drive.google.com

 

๊ณ„์ธต์  ๋„๋ฉ”์ธ ๋„ค์ž„

  • ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋„ค์ž„ ์„œ๋ฒ„ ๋˜๋Š” ๊ณ„์ธต์ ์œผ๋กœ ๊ด€๋ฆฌ๋จ
  • ๋„ค์ž„ ์„œ๋ฒ„๋Š” ์ „ ์„ธ๊ณ„ ์—ฌ๋Ÿฌ ๊ตฐ๋ฐ ๋ถ„์‚ฐ๋˜์–ด ์œ„์น˜๋˜์–ด ์žˆ์Œ

๊ณ„์ธต์ ์ด๊ณ  ๋ถ„์‚ฐ๋œ ๋„๋ฉ”์ธ ๋„ค์ž„์— ๋Œ€ํ•œ ๊ด€๋ฆฌ ์ฒด๊ณ„ = Domain Name System, DNS

 

๊ณ„์ธต์  ๋„ค์ž„ ์„œ๋ฒ„

๋„๋ฉ”์ธ ๋„ค์ž„์— ๋Œ€์‘ํ•˜๋Š” IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๋Š” ๊ณผ์ •

  • ๋„๋ฉ”์ธ ๋„ค์ž„์„ ํ’€์ด(resolve)ํ•œ๋‹ค
  • ๊ณ„์ธต์ ์ด๊ณ  ๋ถ„์‚ฐ๋œ ๋„ค์ž„ ์„œ๋ฒ„๋“ค์ด ์‚ฌ์šฉ๋จ
  • ์ฃผ์š” ๋„ค์ž„ ์„œ๋ฒ„์˜ ์œ ํ˜•: ๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„, ๋ฃจํŠธ ๋„ค์ž„ ์„œ๋ฒ„, TLD ๋„ค์ž„ ์„œ๋ฒ„, ์ฑ…์ž„ ๋„ค์ž„ ์„œ๋ฒ„

์ฃผ์š” ๋„ค์ž„ ์„œ๋ฒ„(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

1. ๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„(local name server)

  • ํด๋ผ์ด์–ธํŠธ์™€ ๋งž๋‹ฟ์•„ ์žˆ๋Š” ๋„ค์ž„ ์„œ๋ฒ„
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋„๋ฉ”์ธ ๋„ค์ž„์„ ํ†ตํ•ด IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๊ณ ์ž ํ•  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ์ฐพ๊ฒŒ ๋˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„
    • ๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ISP์—์„œ ํ• ๋‹น
    • ๊ณต๊ฐœ DNS ์„œ๋ฒ„ public DNS Server๋ฅผ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ ex) ๊ตฌ๊ธ€์˜ 8.8.8.8, 8.8.4.4
  • ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ๋ฐ›์€ ๋„๋ฉ”์ธ ๋„ค์ž„์ด ์ฒ˜์Œ ๋ณด๋Š” ๋„๋ฉ”์ธ ๋„ค์ž„์ด๋ฉด, ๋ฃจํŠธ ๋„ค์ž„ ์„œ๋ฒ„ํ•œํ…Œ ์งˆ์˜ํ•จ

2. ๋ฃจํŠธ ๋„ค์ž„ ์„œ๋ฒ„(root name server)

  • ๋ฃจํŠธ ๋„๋ฉ”์ธ์„ ๊ด€์žฅํ•˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„
    • ๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„๊ฐ€ ๋Œ€์‘๋˜๋Š” IP ์ฃผ์†Œ๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ์šฐ
    • TLD ๋„ค์ž„ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ

๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„์™€ ๋ฃจํŠธ ๋„ค์ž„ ์„œ๋ฒ„๊ฐ„์˜ ์งˆ์˜ ๊ณผ์ •(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

3. TLD ๋„ค์ž„ ์„œ๋ฒ„

  • TLD๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„
  • DNS ์งˆ์˜์— ๋Œ€ํ•ด TLD์˜ ํ•˜์œ„ ๋„๋ฉ”์ธ ๋„ค์ž„์„ ๊ด€๋ฆฌํ•˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„ ์ฃผ์†Œ ๋ฐ˜ํ™˜
    • ํ•˜์œ„ ๋„๋ฉ”์ธ ๋„ค์ž„์„ ๊ด€๋ฆฌํ•˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„๋Š” ๊ทธ๋ณด๋‹ค ํ•˜์œ„ ๋„๋ฉ”์ธ ๋„ค์ž„์„ ๊ด€๋ฆฌํ•˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„ ์ฃผ์†Œ ๋ฐ˜ํ™˜

๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„์™€ TLD ๋„ค์ž„ ์„œ๋ฒ„๊ฐ„์˜ ์งˆ์˜ ๊ณผ์ •(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

4. ์ฑ…์ž„ ๋„ค์ž„ ์„œ๋ฒ„(authoritative name server)

  • ํŠน์ • ๋„๋ฉ”์ธ ์˜์—ญ(zone)์„ ๊ด€๋ฆฌํ•˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„
  • ๋‹ค๋ฅธ ๋„ค์ž„ ์„œ๋ฒ„์—๊ฒŒ ๋– ๋„˜๊ธฐ์ง€ ์•Š๊ณ  ๊ณง๋ฐ”๋กœ ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ๋„ค์ž„ ์„œ๋ฒ„
  • ์ฆ‰, ์ฑ…์ž„ ๋„ค์ž„ ์„œ๋ฒ„๋Š” ๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์งˆ์˜ํ•˜๋Š” ๋„ค์ž„ ์„œ๋ฒ„
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„๋Š” ์ฑ…์ž„ ๋„ค์ž„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์›ํ•˜๋Š” IP ์ฃผ์†Œ๋ฅผ ์–ป์–ด๋ƒ„

 

๋„ค์ž„ ์„œ๋ฒ„์˜ ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ํ† ๋Œ€๋กœ IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๋Š” ๊ณผ์ •

1. ์žฌ๊ท€์  ์งˆ์˜(recursive query)

  • ํด๋ผ์ด์–ธํŠธ → ๋กœ์ปฌ ๋„ค์ž„ ์„œ๋ฒ„ → ๋ฃจํŠธ ๋„ค์ž„ ์„œ๋ฒ„ → TLD ๋„ค์ž„ ์„œ๋ฒ„ → ์ฑ…์ž„ ๋„ค์ž„ ์„œ๋ฒ„์—๊ฒŒ ์งˆ์˜
  • ์ตœ์ข… ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ „๋‹ฌ

์žฌ๊ท€์  ์งˆ์˜(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

2. ๋ฐ˜๋ณต์  ์งˆ์˜(iterative query)

  • ๋„ค์ž„ ์„œ๋ฒ„์— ์ผ์ผ์ด ์งˆ์˜-์‘๋‹ต ๋ฐ˜๋ณต
  • ์ตœ์ข… ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ

๋ฐ˜๋ณต์  ์งˆ์˜(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

์žฌ๊ท€์  ์งˆ์˜์™€ ๋ฐ˜๋ณต์  ์งˆ์˜๋กœ IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๋Š” ๊ณผ์ •์€ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•จ.

  • ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ์ƒ์˜ ๋ฉ”์‹œ์ง€ ์ˆ˜๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Œ
  • ๋ฃจํŠธ ๋„ค์ž„ ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜ ์šฐ๋ ค

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด DNS ์บ์‹œ(DNS cache)์ž„

 

DNS ์บ์‹œ(DNS cache)

๋„ค์ž„ ์„œ๋ฒ„๋“ค์ด ๊ธฐ์กด์— ์‘๋‹ต๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์ถ”ํ›„ ๊ฐ™์€ ์งˆ์˜์— ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ

  • DNS ์บ์‹œ๋ฅผ ์ €์žฅํ•˜๋Š” ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋ฒ„๋„ ์žˆ์Œ
  • DNS ์บ์‹œ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ์›ํ•˜๋Š” IP ์ฃผ์†Œ๋ฅผ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ์Œ
  • DNS ์บ์‹œ๋Š” ์˜์›ํžˆ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹˜
    • ์ž„์‹œ ์ €์žฅ๋œ ๊ฐ’์€ TTL(Time To Live: ์บ์‹œ๋  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„) ๊ฐ’๊ณผ ํ•จ๊ป˜ ์ €์žฅ๋จ

์ž์›์„ ์‹๋ณ„ํ•˜๋Š” URI

์ž์›(resource): ๋„คํŠธ์›Œํฌ์ƒ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ†ตํ•ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋Œ€์ƒ

  • ๋‘ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ, ์†ก์ˆ˜์‹ ํ•˜๋Š” ๋Œ€์ƒ ex) HTML ํŒŒ์ผ, ์ด๋ฏธ์ง€๋‚˜ ๋™์˜์ƒ ํŒŒ์ผ, ํ…์ŠคํŠธ ํŒŒ์ผ ๋“ฑ
  • ์ž์›์€ 'HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ ๋Œ€์ƒ'์ด๋ผ ๋ณด๊ธฐ๋„ํ•จ

URI(Uniform Resource Ideontifier)

์ž์›์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด

 

1. URL(Uniform Resource Locator): ์œ„์น˜๋ฅผ ์ด์šฉํ•ด ์ž์›์„ ์‹๋ณ„

  • ์˜ค๋Š˜๋‚  ์ธํ„ฐ๋„ท ํ™˜๊ฒฝ์—์„œ ์ž์› ์‹๋ณ„์— ๋” ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์‹๋ณ„์ž

URL(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

[URL ๊ตฌ์กฐ]

โ‘  scheme: URL์˜ ์ฒซ ๋ถ€๋ถ„์œผ๋กœ์จ, '์ž์›์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•'์„ ์˜๋ฏธ

  • ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•  ํ”„๋กœํ† ์ฝœ์ด ๋ช…์‹œ
    • HTTP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ๋Š” http://๋ฅผ
    • HTTPS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ๋Š” https://๋ฅผ ์‚ฌ์šฉ

โ‘ก authority: 'ํ˜ธ์ŠคํŠธ๋ฅผ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด', ์ด๋ฅผํ…Œ๋ฉด IP ์ฃผ์†Œ ํ˜น์€ ๋„๋ฉ”์ธ ๋„ค์ž„์ด ๋ช…์‹œ

  • ์ฝœ๋ก (:) ๋’ค์— ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ง๋ถ™์ผ ์ˆ˜๋„ ์žˆ์Œ

โ‘ข path: '์ž์›์ด ์œ„์น˜ํ•œ ๊ฒฝ๋กœ'๊ฐ€ ๋ช…์‹œ

  • ์ž์›์˜ ์œ„์น˜๋Š” ์Šฌ๋ž˜์‹œ(/)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์ธต์ ์œผ๋กœ ํ‘œํ˜„๋˜๊ณ , ์ตœ์ƒ์œ„ ๊ฒฝ๋กœ ๋˜ํ•œ ์Šฌ๋ž˜์‹œ๋กœ ํ‘œํ˜„

โ‘ฃ query: HTTP๋Š” ์š”์ฒญ-์‘๋‹ต ๊ธฐ๋ฐ˜์˜ ํ”„๋กœํ† ์ฝœ

  • ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ URI(URL)๊ฐ€ ํฌํ•จ๋œ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ ,
  • HTTP ์„œ๋ฒ„๋Š” ์ด์— ๋Œ€ํ•ด HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ„

scheme, authority, path๋งŒ์œผ๋กœ ์š”์ฒญ-์‘๋‹ตํ•˜๋Š” ๊ณผ์ •(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์ด๋Ÿฐ ์š”์ฒญ์€ scheme, authority, path๋งŒ์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ex: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ, ์ •๋ ฌ ๊ฒฐ๊ณผ

query๋ฅผ ์ด์šฉํ•ด ์š”์ฒญ-์‘๋‹ตํ•˜๋Š” ๊ณผ์ •(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด(query string), ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ(query parameter)๋ผ๊ณ ๋„ ๋ถ€๋ฆ„
  • ๋ฌผ์Œํ‘œ(?)๋กœ ์‹œ์ž‘๋˜๋Š” <ํ‚ค, ๊ฐ’> ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ
  • ์•ฐํผ์ƒŒ๋“œ(&)๋กœ ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์„ ๋ง๋ถ™์ผ ์ˆ˜ ์žˆ์Œ
  • ex) http://example.com/random/path?query=value&query2=value2
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์„ค๊ณ„ํ•˜๊ธฐ ๋‚˜๋ฆ„์ž„

โ‘ค fragment: '์ž์›์˜ ํ•œ ์กฐ๊ฐ์„ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ์œ„ํ•œ ์ •๋ณด'

  • HTML ํŒŒ์ผ๊ณผ ๊ฐ™์€ ์ž์›์—์„œ ํŠน์ • ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

fragment(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

2. URN(Uniform Resource Name): ์ด๋ฆ„์„ ์ด์šฉํ•ด ์ž์›์„ ์‹๋ณ„

  • URL์˜ ๋‹จ์ 
    • ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž์›์„ ์‹๋ณ„ํ•˜๋Š”๋ฐ ์ž์›์˜ ์œ„์น˜๋Š” ์–ธ์ œ๋“  ๋ณ€ํ•  ์ˆ˜ ์žˆ์Œ
    • ์ฆ‰, ์ž์›์˜ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ธฐ์กด URL๋กœ๋Š” ์ž์›์„ ์‹๋ณ„ํ•  ์ˆ˜ ์—†์Œ
  • URN์˜ ์žฅ์ 
    • ์ž์›์— ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ์ด๋ฆ„ ๊ธฐ๋ฐ˜ ์‹๋ณ„์ž์ด๊ธฐ์— ์ž์›์˜ ์œ„์น˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ž์›์„ ์‹๋ณ„
  • URN์€ ์•„์ง URL๋งŒํผ ๋„๋ฆฌ ์ฑ„ํƒ๋œ ๋ฐฉ์‹์€ ์•„๋‹˜
    ex) urn:isbn:04883920

HTTP

  • ์‚ฌ์šฉ์ž์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๋งž๋‹ฟ์•„ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ
  • ์›น ์„ธ์ƒ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ”„๋กœํ† ์ฝœ

HTTP ์ค‘์š”ํ•œ ํŠน์„ฑ

1. ์š”์ฒญ-์‘๋‹ต ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • HTTP๋Š” 'ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ ๊ธฐ๋ฐ˜์˜ ์š”์ฒญ-์‘๋‹ต ํ”„๋กœํ† ์ฝœ'
    • HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€์™€ HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” ๋ฉ”์‹œ์ง€ ํ˜•ํƒœ๊ฐ€ ๋‹ค๋ฆ„

2. ๋ฏธ๋””์–ด ๋…๋ฆฝ์  ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • HTTP๋ฅผ ์ •์˜ํ•˜๋Š” ๊ณต์‹ ๋ฌธ์„œ(RFC 9110)์— ๋”ฐ๋ฅด๋ฉด, 
HTTP๊ฐ€ ์š”์ฒญํ•˜๋Š” ๋Œ€์ƒ์€ '์ž์›'์ด๋‹ค. HTTP๋Š” ์ž์›์˜ ํŠน์„ฑ์„ ์ œํ•œํ•˜์ง€ ์•Š์œผ๋ฉฐ
์ž์›๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•  ๋ฟ์ด๋‹ค.
๋Œ€๋ถ€๋ถ„์˜ ์ž์›์€ URI๋กœ ์‹๋ณ„๋œ๋‹ค"
  • ์ฆ‰, HTTP๋Š” ์ฃผ๊ณ ๋ฐ›์„ ์ž์›์˜ ํŠน์„ฑ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ทธ์ € ์ž์›์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜๋‹จ(์ธํ„ฐํŽ˜์ด์Šค) ์—ญํ• ๋งŒ ํ•จ
  • HTTP๋ฅผ ํ†ตํ•ด HTML, JPEG, PNG, JSON, XML, PDF ๋“ฑ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ž์› ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅ
  • ๋ฏธ๋””์–ด ํƒ€์ž…(Media Type): HTTP์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ์ž์›์˜ ์ข…๋ฅ˜, ์›น ์„ธ์ƒ์˜ ํ™•์žฅ์ž (= MIME ํƒ€์ž…(Multipurpose Internet Mail Extension Type))
    • ์Šฌ๋ž˜์‹œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 'ํƒ€์ž…/์„œ๋ธŒํƒ€์ž…(type/subtype)'ํ˜•์‹์œผ๋กœ ๊ตฌ์„ฑ
      • ํƒ€์ž…: ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•
      • ์„œ๋ธŒํƒ€์ž…: ์ฃผ์–ด์ง„ ํƒ€์ž…์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์œ ํ˜•
    • ๋ฏธ๋””์–ด ํƒ€์ž…์—๋Š” ๋ถ€๊ฐ€์ ์ธ ์„ค๋ช…์„ ์œ„ํ•ด ์„ ํƒ์ ์œผ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜ ํฌํ•จ ๊ฐ€๋Šฅ
      • 'ํƒ€์ž…/์„œ๋ธŒํƒ€์ž…;๋งค๊ฐœ๋ณ€์ˆ˜=๊ฐ’'์˜ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ → type/subtype;parameter=value (ex: type/html;charset=UTF-8)
    • ๋ฏธ๋””์–ด ํƒ€์ž…์˜ ์ข…๋ฅ˜๋Š” ๋งค์šฐ ๋‹ค์–‘ํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ๋ฏธ๋””์–ด ํƒ€์ž…์„ ๋“ฑ๋กํ•  ์ˆ˜๋„ ์žˆ์Œ

๋ฏธ๋””์–ด ํƒ€์ž… ์ข…๋ฅ˜(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์ฆ‰, HTTP๋Š” ์ฃผ๊ณ ๋ฐ›์„ ๋ฏธ๋””์–ด ํƒ€์ž…์— ํŠน๋ณ„ํžˆ ์ œํ•œ์„ ๋‘์ง€ ์•Š๊ณ  ๋™์ž‘ํ•˜๋Š” ๋ฏธ๋””์–ด ๋…๋ฆฝ์  ํ”„๋กœํ† ์ฝœ
  • ์—ฌ๋Ÿฌ ๋ฏธ๋””์–ด ํƒ€์ž… ํ†ต์นญ: ๋ณ„ํ‘œ ๋ฌธ์ž(*)
    • ex) text/* = text ํƒ€์ž…์˜ ๋ชจ๋“  ์„œ๋ธŒํƒ€์ž…
    • ex) image/* = image ํƒ€์ž…์˜ ๋ชจ๋“  ์„œ๋ธŒํƒ€์ž…
    • ex) */* = ๋ชจ๋“  ๋ฏธ๋””์–ด ํƒ€์ž…

3. ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”(=stateless) ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • HTTP๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ์Šคํ…Œ์ดํŠธ๋ฆฌ์Šค(stateless) ํ”„๋กœํ† ์ฝœ
    • ์„œ๋ฒ„๊ฐ€ HTTP ์š”์ฒญ์„ ๋ณด๋‚ธ ํด๋ผ์ด์–ธํŠธ์™€ ๊ด€๋ จ๋œ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ
    • ํด๋ผ์ด์–ธํŠธ์˜ ๋ชจ๋“  HTTP ์š”์ฒญ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…๋ฆฝ์ ์ธ ์š”์ฒญ์œผ๋กœ ๊ฐ„์ฃผ
  • HTTP๊ฐ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”, HTTP์˜ ํ™•์žฅ์„ฑ๊ณผ ๊ฒฌ๊ณ ์„ฑ ๋•Œ๋ฌธ
    1. HTTP ์„œ๋ฒ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ์™€ ๋™์‹œ์— ์ƒํ˜ธ ์ž‘์šฉํ•จ. ๋˜ํ•œ, ์˜ค๋Š˜๋‚  ๋งŽ์€ HTTP ์„œ๋ฒ„๋Š” ๋†’์€ ๊ฐ€์šฉ์„ฑ(์žฅ์• ๊ฐ€ ์ƒ๊ฒจ๋„ ๋ฌธ์ œ์—†์ด ๋™์ž‘๋˜๊ฒŒ๋”)์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋Œ€๋กœ ๋‹ค์ค‘ํ™”๋˜์–ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ
      ์ฆ‰, ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋“ค์ด ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์„œ๋ฒ„์— ํฐ ๋ถ€๋‹ด
    2. ํŠน์ • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • ์„œ๋ฒ„์— ์ข…์†๋˜๋Š” ์ƒํ™ฉ ๋ฐฉ์ง€
      HTTP๊ฐ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋ผ๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ํŠน์ • ์„œ๋ฒ„ํ•˜๊ณ ๋งŒ ํ†ต์‹ 

HTTP๊ฐ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ์ด์œ (์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์Šคํ…Œ์ดํŠธ๋ฆฌ์Šค ํ”„๋กœํ† ์ฝœ์€ ํ™•์žฅ์„ฑ(scalability)๊ณผ ๊ฒฌ๊ณ ์„ฑ(robustness)์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Œ
    • ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ํŠน์„ฑ์€, ํŠน์ • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • ์„œ๋ฒ„์— ์ข…์†๋˜์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๊ณ , ๋˜ํ•œ ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ๋„ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ๋Œ€์ฒด ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

4. ์ง€์† ์—ฐ๊ฒฐ์„ ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • ๋น„์ง€์† ์—ฐ๊ฒฐ
    • ์ดˆ๊ธฐ์˜ HTTP ๋ฒ„์ „(HTTP 1.0 ์ดํ•˜)
    • TCP ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝํ•œ ํ›„, ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ์—ฐ๊ฒฐ ์ข…๋ฃŒ
    • ์ถ”๊ฐ€์ ์ธ ์š”์ฒญ-์‘๋‹ต์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์‹œ TCP ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ๋ถ€ํ„ฐ ๋ฐ˜๋ณต
  • ์ง€์† ์—ฐ๊ฒฐ(persistent connection) ๋˜๋Š” ํ‚ต ์–ผ๋ผ์ด๋ธŒ(keep-alive)
    • ์ตœ๊ทผ ๋Œ€์ค‘์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” HTTP ๋ฒ„์ „(HTTP 1.1 ์ด์ƒ)
    • ํ•˜๋‚˜์˜ TCP ์—ฐ๊ฒฐ์ƒ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์ฒญ-์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ 

๋น„์ง€์† ์—ฐ๊ฒฐ๊ณผ ์ง€์† ์—ฐ๊ฒฐ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

HTTP ๋ฒ„์ „

1. HTTP/0.9

  • ํ˜„์žฌ ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ดˆ์ฐฝ๊ธฐ HTTP ๋ฒ„์ „
  • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ: GET
  • ํ—ค๋” ์ง€์› X

2. HTTP/1.0

  • HEAD, POST ๋“ฑ GET ์ด์™ธ์— ๋ฉ”์„œ๋“œ ๋„์ž…
  • ํ—ค๋” ์ง€์› ์‹œ์ž‘
  • ๊ณต์‹์ ์œผ๋กœ๋Š” ์ง€์† ์—ฐ๊ฒฐ ๋ฏธ์ง€์›

3. HTTP/1.1

  • ์˜ค๋Š˜๋‚ ๊นŒ์ง€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฒ„์ „
  • ์ง€์† ์—ฐ๊ฒฐ ๊ณต์‹์  ์ง€์›
  • ํŒŒ์ดํ”„๋ผ์ด๋‹, ์ฝ˜ํ…์ธ  ํ˜‘์ƒ ๊ธฐ๋Šฅ ๋“ฑ ๋‹ค์–‘ํ•œ ํŽธ์˜ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ = ํ‰๋ฌธ
  • HTTP/1.1์˜ ๊ณ ์งˆ์  ๋ฌธ์ œ: HOL ๋ธ”๋กœํ‚น(Head-of-line blocking)
    • ๊ฐ™์€ ํ์— ๋Œ€๊ธฐํ•˜๋ฉฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ์—ฌ๋Ÿฌ ํŒจํ‚ท์ด ์žˆ์„ ๊ฒฝ์šฐ, ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท์˜ ์ฒ˜๋ฆฌ ์ง€์—ฐ์œผ๋กœ ์ธํ•ด ๋‚˜๋จธ์ง€ ํŒจํ‚ท ์ฒ˜๋ฆฌ๋„ ๋ชจ๋‘ ์ง€์—ฐ๋˜๋Š” ๋ฌธ์ œ ์ƒํ™ฉ

HOL ๋ธ”๋กœํ‚น ๋ฌธ์ œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

4. HTTP/2.0

  • ์˜ค๋Š˜๋‚ ๊นŒ์ง€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฒ„์ „
  • HTTP/1.1์˜ ํšจ์œจ๊ณผ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๋ฒ„์ „
  • ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ = ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ
  • ํ—ค๋” ์••์ถ• ์ „์†ก ๊ฐ€๋Šฅ
  • ์„œ๋ฒ„ ํ‘ธ์‹œ(server push) ๊ธฐ๋Šฅ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜์ง€ ์•Š์•˜๋”๋ผ๋„ ๋ฏธ๋ž˜์— ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์ž์› ๋ฏธ๋ฆฌ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ
  • HTTP ๋ฉ€ํ‹ฐํ”Œ๋ž™์‹ฑ(multiplexing)์„ ํ†ตํ•œ HOL ๋ธ”๋กœํ‚น ์™„ํ™”
    • ์—ฌ๋Ÿฌ ์ŠคํŠธ๋ฆผ(stream)์„ ํ™œ์šฉํ•ด ๋ณ‘๋ ฌ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ 
    • ์š”์ฒญ-์‘๋‹ต ๋‹จ์œ„๋Š” ํ•˜๋‚˜์˜ ์ŠคํŠธ๋ฆผ์—์„œ ์ด๋ฃจ์–ด์ง
    • ์ŠคํŠธ๋ฆผ๋ณ„ ๋…๋ฆฝ์ ์ธ ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅ
    • ๋ณ„๋„์˜ ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ HOL ๋ธ”๋กœํ‚น ์™„ํ™”

5. HTTP/3.0

  • ์ด์ „๊นŒ์ง€์˜ HTTP ๋ฒ„์ „ = TCP ๊ธฐ๋ฐ˜ ๋™์ž‘
  • HTTP/3.0 = UDP ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์ธ QUIC(Quick UDP Internet Connections) ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘
  • ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜ ์†ก์ˆ˜์‹  ์†๋„ < ๋น„์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜ ์†ก์ˆ˜์‹  ์†๋„ → ๋น ๋ฅธ ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅ

HTTP ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ

๏นก HTTP 1.1 ๋ฒ„์ „ ๊ธฐ์ค€์œผ๋กœ ์„œ์ˆ 

  • ์‹œ์ž‘ ๋ผ์ธ, ํ•„๋“œ ๋ผ์ธ, ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ
    • ํ•„๋“œ ๋ผ์ธ์€ ์—†๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ์Œ
    • ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์€ ์—†์„ ์ˆ˜ ์žˆ์Œ
    • ํ•„๋“œ ๋ผ์ธ๊ณผ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ ์‚ฌ์ด์—๋Š” ๋นˆ ์ค„๋ฐ”๊ฟˆ์ด ์žˆ์Œ

HTTP ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • HTTP ๋ฉ”์‹œ์ง€๋Š” HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€์ผ ์ˆ˜๋„ ์žˆ๊ณ , HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€์ผ ์ˆ˜๋„ ์žˆ์Œ

1. ์‹œ์ž‘ ๋ผ์ธ(start-line)

์‹œ์ž‘ ๋ผ์ธ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€์ผ ๊ฒฝ์šฐ, ์‹œ์ž‘ ๋ผ์ธ = '์š”์ฒญ ๋ผ์ธ'
    • ๋ฉ”์„œ๋“œ(method): ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์ž์›(์š”์ฒญ ๋Œ€์ƒ)์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•  ์ž‘์—…์˜ ์ข…๋ฅ˜
      ๋Œ€ํ‘œ์ ์œผ๋กœ GET, POST, PUT, DELETE ๋“ฑ
    • ์š”์ฒญ ๋Œ€์ƒ(request-target): HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ ์„œ๋ฒ„์˜ ์ž์›
      • ๋ณดํ†ต (์ฟผ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ) URI์˜ ๊ฒฝ๋กœ๊ฐ€ ๋ช…์‹œ
        ex) ํด๋ผ์ด์–ธํŠธ๊ฐ€ "http://www.example.com/hello?q=world"๋กœ ์š”์ฒญ → ์š”์ฒญ ๋Œ€์ƒ์€ "/hello?q=world"
      • ๋งŒ์•ฝ ํ•˜์œ„ ๊ฒฝ๋กœ๊ฐ€ ์—†๋”๋ผ๋„ ์š”์ฒญ ๋Œ€์ƒ์€ ์Šฌ๋ž˜์‹œ(/)๋กœ ํ‘œ๊ธฐ
        ex) ํด๋ผ์ด์–ธํŠธ๊ฐ€ "http://www.example.com"์œผ๋กœ ์š”์ฒญ → ์š”์ฒญ ๋Œ€์ƒ์€ "/"
    • HTTP ๋ฒ„์ „(HTTP-version): ์‚ฌ์šฉ๋œ HTTP ๋ฒ„์ „
      • 'HTTP/<๋ฒ„์ „>'์ด๋ผ๋Š” ํ‘œ๊ธฐ ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋ฉฐ, HTTP ๋ฒ„์ „ 1.1์€ HTTP/1.1๋กœ ํ‘œ๊ธฐ

์š”์ฒญ ๋ผ์ธ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

  • HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€์ผ ๊ฒฝ์šฐ, ์‹œ์ž‘ ๋ผ์ธ = '์ƒํƒœ ๋ผ์ธ'
    • HTTP ๋ฒ„์ „(HTTP-version): ์‚ฌ์šฉ๋œ HTTP ๋ฒ„์ „
      • 'HTTP/<๋ฒ„์ „>'์ด๋ผ๋Š” ํ‘œ๊ธฐ ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋ฉฐ, HTTP ๋ฒ„์ „ 1.1์€ HTTP/1.1๋กœ ํ‘œ๊ธฐ
    • ์ƒํƒœ ์ฝ”๋“œ(status code): ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„ธ ์ž๋ฆฌ ์ •์ˆ˜
    • ์ด์œ  ๊ตฌ๋ฌธ(reason phrase): ์ƒํƒœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฌธ์ž์—ด ํ˜•ํƒœ์˜ ์„ค๋ช…
    • ex) HTTP/1.1 200 OK, HTTP/1.1 404 Not Found

์‘๋‹ต ๋ผ์ธ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

2. ํ•„๋“œ ๋ผ์ธ ๋˜๋Š” ํ—ค๋” ๋ผ์ธ(header-line)

ํ—ค๋” ๋ผ์ธ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • 0๊ฐœ ์ด์ƒ์˜ HTTP ํ—ค๋”(HTTP header) ๋ช…์‹œ
  • HTTP ํ—ค๋”: HTTP ํ†ต์‹ ์— ํ•„์š”ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด
  • ์ฝœ๋ก (:)์„ ๊ธฐ์ค€์œผ๋กœ ํ—ค๋” ์ด๋ฆ„(header-name)๊ณผ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ—ค๋”๊ฐ’(header-value)์œผ๋กœ ๊ตฌ์„ฑ

3. ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ(message-body)

๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • HTTP ์š”์ฒญ ํ˜น์€ ์‘๋‹ต ๋ฉ”์‹œ์ง€์—์„œ ๋ณธ๋ฌธ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์„ ํƒ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ๋ช…์‹œ
  • ๋‹ค์–‘ํ•œ ์ฝ˜ํ…์ธ  ํƒ€์ž…์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

HTTP ๋ฉ”์„œ๋“œ

HTTP ๋ฉ”์„œ๋“œ ์„ค๋ช…
GET ์ž์›์„ ์Šต๋“ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ
HEAD GET๊ณผ ๋™์ผํ•˜๋‚˜, ํ—ค๋”๋งŒ์„ ์‘๋‹ต๋ฐ›๋Š” ๋ฉ”์„œ๋“œ
POST ์„œ๋ฒ„๋กœ ํ•˜์—ฌ๊ธˆ ํŠน์ • ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ๋” ํ•˜๋Š” ๋ฉ”์„œ๋“œ
PUT ์ž์›์„ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ
PATCH ์ž์›์— ๋Œ€ํ•œ ๋ถ€๋ถ„์  ์ˆ˜์ •์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ
DELETE ์ž์›์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ
CONNECT ์ž์›์— ๋Œ€ํ•œ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฉ”์„œ๋“œ
OPTIONS ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ ๋“ฑ ํ†ต์‹  ์˜ต์…˜์„ ํ™•์ธํ•˜๋Š” ๋ฉ”์„œ๋“œ
TRACE ์ž์›์— ๋Œ€ํ•œ ๋ฃจํ”„๋ฐฑ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ

 

1. GET - ๊ฐ€์ ธ๋‹ค์ฃผ์„ธ์š”

  • ํŠน์ • ์ž์›์„ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ (ex: ์›น ๋ธŒ๋ผ์šฐ์ € URL ์ž…๋ ฅ)
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ '์ด๊ฒƒ์„ ๊ฐ€์ ธ๋‹ค์ฃผ์„ธ์š”'๋ผ ์š”์ฒญ ๋ณด๋‚ด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Œ
    • '์ด๊ฒƒ' = ์ž์› (HTML, JSON, ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด๋‚˜ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํŒŒ์ผ ๋“ฑ)
  • ์š”์ฒญ ๋ฉ”์‹œ์ง€ 
    ex) http://www.example.com/example-page์— ๋Œ€ํ•œ ๊ฐ„๋žตํ™”๋œ GET ์š”์ฒญ ๋ฉ”์‹œ์ง€
    ๏นก GET ์š”์ฒญ ๋ฉ”์‹œ์ง€์—์„œ๋Š” ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ๋ณด๋‹ค ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ
    • Host: ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋Œ€์ƒ

GET ์š”์ฒญ ๋ฉ”์‹œ์ง€ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์‘๋‹ต ๋ฉ”์‹œ์ง€: GET ์š”์ฒญ ๋ฉ”์‹œ์ง€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค๋ฉด ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ์„œ ์š”์ฒญํ•œ ์ž์›์„ ์ „๋‹ฌ๋ฐ›์Œ

GET ์š”์ฒญ ์„ฑ๊ณต์— ๋Œ€ํ•œ ์‘๋‹ต ๋ฉ”์‹œ์ง€ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

2. HEAD - ํ—ค๋”๋งŒ ๊ฐ€์ ธ๋‹ค์ฃผ์„ธ์š”

  • HEAD ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ ํ—ค๋”๋งŒ์„ ๋ฐ˜ํ™˜
  • ์š”์ฒญ ๋ฉ”์‹œ์ง€
    ex) http://www.example.com/example-page์— ๋Œ€ํ•œ HEAD ์š”์ฒญ์„ ๋ณด๋‚ธ ์˜ˆ์‹œ

HEAD ์š”์ฒญ ๋ฉ”์‹œ์ง€ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์‘๋‹ต ๋ฉ”์‹œ์ง€

HEAD ์š”์ฒญ ์„ฑ๊ณต์— ๋Œ€ํ•œ ์‘๋‹ต ๋ฉ”์‹œ์ง€ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

3. POST - ์ฒ˜๋ฆฌํ•ด ์ฃผ์„ธ์š”

  • ์„œ๋ฒ„๋กœ ํ•˜์—ฌ๊ธˆ ํŠน์ • ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋ฉ”์„œ๋“œ
    ex) ๊ฒŒ์‹œํŒ ๊ธ€ ์ž‘์„ฑ, ๋Œ“๊ธ€ ์ž‘์„ฑ, ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋“ฑ
  • ์š”์ฒญ ๋ฉ”์‹œ์ง€: ์ฒ˜๋ฆฌํ•  ๋Œ€์ƒ์€ ํ”ํžˆ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์œผ๋กœ ๋ช…์‹œ

POST ์š”์ฒญ ๋ฉ”์‹œ์ง€ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ๋งŽ์€ ๊ฒฝ์šฐ 'ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ƒˆ๋กœ์šด ์ž์›์„ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•  ๋•Œ' ์‚ฌ์šฉ
  • ์ƒˆ๋กœ์šด ์ž์›์ด ์ƒ์„ฑ์‹œ ์„œ๋ฒ„๋Š” ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Location ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์ž์›์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์คŒ

POST ์‘๋‹ต ๋ฉ”์‹œ์ง€(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

PUT - ๋ฎ์–ด์จ ์ฃผ์„ธ์š”

  • ์š”์ฒญ ์ž์›์ด ์—†๋‹ค๋ฉด ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์œผ๋กœ ์ž์›์„ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ
  • ์š”์ฒญ ์ž์›์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์œผ๋กœ ์ž์›์„ ์™„์ „ํžˆ ๋Œ€์ฒด

PUT ๋ฉ”์„œ๋“œ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

PATCH - ์ผ๋ถ€ ์ˆ˜์ •ํ•ด ์ฃผ์„ธ์š”

  • PUT ๋ฉ”์„œ๋“œ โ‰’ ๋ฎ์–ด์“ฐ๊ธฐ/๋Œ€์ฒด, PATCH ๋ฉ”์„œ๋“œ โ‰’ ๋ถ€๋ถ„์  ์ˆ˜์ •
  • ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ๋งž๊ฒŒ ์ž์› ์ผ๋ถ€ ์ˆ˜์ •

PATCH ๋ฉ”์„œ๋“œ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

DELETE - ์‚ญ์ œํ•ด ์ฃผ์„ธ์š”

  • ํŠน์ • ์ž์›์„ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
  • ์š”์ฒญ ๋ฉ”์‹œ์ง€
    ex) example.com/texts/a.txt๋ผ๋Š” ์ž์›์„ ์‚ญ์ œํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋ฉ”์‹œ์ง€

DELETE ์š”์ฒญ ๋ฉ”์‹œ์ง€ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

 

โ€ป ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ HTTP ๋ฉ”์„œ๋“œ๋Š” ์„ค๊ณ„์˜ ๋Œ€์ƒ์ด๋‹ค. ์–ด๋–ค ๋ฉ”์„œ๋“œ๋Š” ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์–ด๋–ค ๋ฉ”์„œ๋“œ๋Š” ๊ตฌํ˜„ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Œ.

๊ฐ™์€ URL์— ๋Œ€ํ•ด ๋ฉ”์„œ๋“œ๋ณ„ ๋™์ž‘์„ ์—ฌ๋Ÿฌ ๊ฐœ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Œ


HTTP ์ƒํƒœ ์ฝ”๋“œ

  • ์ƒํƒœ ์ฝ”๋“œ๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„ธ ์ž๋ฆฌ ์ •์ˆ˜๋กœ, ์ƒํƒœ ์ฝ”๋“œ์˜ ์ข…๋ฅ˜๋Š” ๋ฐฑ์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ ํ˜•์„ ๊ตฌ๋ถ„
์ƒํƒœ ์ฝ”๋“œ ์„ค๋ช…
100๋ฒˆ๋Œ€(100~199) ์ •๋ณด์„ฑ ์ƒํƒœ ์ฝ”๋“œ
200๋ฒˆ๋Œ€(200~299) ์„ฑ๊ณต ์ƒํƒœ ์ฝ”๋“œ
300๋ฒˆ๋Œ€(300~399) ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ƒํƒœ ์ฝ”๋“œ
400๋ฒˆ๋Œ€(400~499) ํด๋ผ์ด์–ธํŠธ ์—๋Ÿฌ ์ƒํƒœ ์ฝ”๋“œ
500๋ฒˆ๋Œ€(500~599) ์„œ๋ฒ„ ์—๋Ÿฌ ์ƒํƒœ ์ฝ”๋“œ

 

200๋ฒˆ๋Œ€: ์„ฑ๊ณต ์ƒํƒœ ์ฝ”๋“œ

  • '์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ์Œ'์„ ์˜๋ฏธ
  • ์ฃผ์š” ์ƒํƒœ ์ฝ”๋“œ
    • 200(OK): ex) 'http://example.com/images/a.pn'๋กœ GET ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋ณด๋‚ธ ๊ฒฝ์šฐ
    • 201(Created)
      • POST ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„์— ์ƒˆ๋กœ์šด ์ž์›์„ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ ์ƒํƒœ ์ฝ”๋“œ 201 ์‘๋‹ต
      • ์ด๋•Œ, Location ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์ž์›์˜ ์œ„์น˜๋ฅผ ๋ช…์‹œ
    • 202(Accepted): ์š”์ฒญ์„ ์ž˜ ๋ฐ›์•˜์œผ๋‚˜, ์•„์ง ์š”์ฒญํ•œ ์ž‘์—…์„ ๋๋‚ด์ง€ ์•Š์•˜์Œ
      • ์š”์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๊ณง๋ฐ”๋กœ ์‘๋‹ตํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ
      • ex) ์ž‘์—… ์‹œ๊ฐ„์ด ๊ธด ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์—…๋กœ๋“œ ์ž‘์—…, ๋ฐฐ์น˜ ์ž‘์—…๊ณผ ๊ฐ™์ด
    • 204(No Content): ์š”์ฒญ์„ ์ž˜ ๋ฐ›์•˜๊ณ , ๋งˆ๋•…ํžˆ ๋ณธ๋ฌธ์œผ๋กœ ํ‘œํ˜„ํ•  ๊ฒƒ์ด ์—†์Œ ex) DELETE ๋ฉ”์„œ๋“œ ์š”์ฒญ
์ƒํƒœ ์ฝ”๋“œ ์ด์œ  ๊ตฌ๋ฌธ ์„ค๋ช…
200 OK ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ์Œ
201 Created ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ์ž์›์ด ์ƒ์„ฑ๋˜์—ˆ์Œ
202 Accepted ์š”์ฒญ์„ ์ž˜ ๋ฐ›์•˜์œผ๋‚˜, ์•„์ง ์š”์ฒญํ•œ ์ž‘์—…์„ ๋๋‚ด์ง€ ์•Š์•˜์Œ
204 No Content ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ์ง€๋งŒ, ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์œผ๋กœ ํ‘œ์‹œํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์Œ

 

300๋ฒˆ๋Œ€: ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์ƒํƒœ ์ฝ”๋“œ

  • ๋ฆฌ๋‹ค์ด๋ ‰์…˜(redirection): '์š”์ฒญ์„ ์™„์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•œ ์ƒํƒœ'๋กœ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ์ž์›์ด ๋‹ค๋ฅธ ๊ณณ์— ์žˆ์„ ๋•Œ, ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒ

๋ฆฌ๋‹ค์ด๋ ‰์…˜(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

1) ์˜๊ตฌ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(permanent redirection): ์ž์›์ด ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๊ณณ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๊ฒฝ๋กœ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์žฌ์ง€์ •
์ด ๊ฒฝ์šฐ ๊ธฐ์กด์˜ URL์— ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ฉด ํ•ญ์ƒ ์ƒˆ๋กœ์šด URL๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜

์ƒํƒœ ์ฝ”๋“œ ์ด์œ  ๊ตฌ๋ฌธ ์„ค๋ช…
301 Moved Permanently ์˜๊ตฌ์  ๋ฆฌ๋‹ค์ด๋ ‰์…˜: ์žฌ์š”์ฒญ ๋ฉ”์„œ๋“œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ
308 Permananet Redirect ์˜๊ตฌ์  ๋ฆฌ๋‹ค์ด๋ ‰์…˜: ์žฌ์š”์ฒญ ๋ฉ”์„œ๋“œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
  • ์˜๊ตฌ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์˜ ๊ฒฝ์šฐ, ํด๋ผ์ด์–ธํŠธ, ์›น ํฌ๋กค๋Ÿฌ ๋“ฑ์ด ๊ธฐ์กด์˜ URL์„ ๊ธฐ์–ตํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰ ์—”์ง„ ํ˜น์€ ํฌ๋กค๋Ÿฌ ๋“ฑ์— ์˜ํ–ฅ์„ ๋ผ์น  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— GET ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ณ ,
    301 ํ˜น์€ 308 ์‘๋‹ต์„ ๋ฐ›์€ ํ›„,
    ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Location ํ—ค๋”์— ๋ช…์‹œ๋œ ๊ฒฝ๋กœ๋กœ ์žฌ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ,
    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ด๋Š” ๋‘ ๋ฒˆ์งธ ์š”์ฒญ ๋ฉ”์„œ๋“œ๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ GET์ด ๋จ
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— POST ์š”์ฒญ ๋ฉ”์‹œ์ง€(GET ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ ์š”์ฒญ ๋ฉ”์‹œ์ง€)๋ฅผ ์ „์†กํ•˜๊ณ , 
    301 ์‘๋‹ต์„ ๋ฐ›์€ ํ›„,
    ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Location ํ—ค๋”์— ๋ช…์‹œ๋œ ๊ฒฝ๋กœ๋กœ ์žฌ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ,
    ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ด๋Š” ๋‘ ๋ฒˆ์งธ ์š”์ฒญ ๋ฉ”์„œ๋“œ๋Š” GET ์š”์ฒญ์œผ๋กœ ๋ฐ”๋€” '์ˆ˜๋„' ์žˆ์Œ

301๊ณผ 308 ์ƒํƒœ ์ฝ”๋“œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

2) ์ผ์‹œ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜(temporary redirection): ์ž์›์˜ ์œ„์น˜๊ฐ€ ์ž„์‹œ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๊ฑฐ๋‚˜ ์ž„์‹œ๋กœ ์‚ฌ์šฉํ•  URL์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์ฃผ๋กœ ์‚ฌ์šฉ

์–ด๋–ค URL์— ๋Œ€ํ•ด ์ผ์‹œ์ ์ธ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๊ด€๋ จ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์‘๋‹ต๋ฐ›์•˜๋‹ค๋ฉด ์—ฌ์ „ํžˆ ์š”์ฒญ์„ ๋ณด๋‚ธ URL์€ ๊ธฐ์–ต!

์ƒํƒœ ์ฝ”๋“œ ์ด์œ  ๊ตฌ๋ฌธ ์„ค๋ช…
302 Found ์ผ์‹œ์  ๋ฆฌ๋‹ค์ด๋ ‰์…˜: ์žฌ์š”์ฒญ ๋ฉ”์„œ๋“œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Œ
303 See Other ์ผ์‹œ์  ๋ฆฌ๋‹ค์ด๋ ‰์…˜: ์žฌ์š”์ฒญ ๋ฉ”์„œ๋“œ GET์œผ๋กœ ๋ณ€๊ฒฝ
307 Temporary Redirect ์ผ์‹œ์  ๋ฆฌ๋‹ค์ด๋ ‰์…˜: ์žฌ์š”์ฒญ ๋ฉ”์„œ๋“œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ

307๊ณผ 303 ์ƒํƒœ ์ฝ”๋“œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

400๋ฒˆ๋Œ€: ํด๋ผ์ด์–ธํŠธ ์—๋Ÿฌ ์ƒํƒœ ์ฝ”๋“œ

  • 'ํด๋ผ์ด์–ธํŠธ์— ์˜ํ•œ ์—๋Ÿฌ๊ฐ€ ์žˆ์Œ'์„ ์•Œ๋ ค ์ฃผ๋Š” ์ƒํƒœ ์ฝ”๋“œ
์ƒํƒœ ์ฝ”๋“œ ์ด์œ  ๊ตฌ๋ฌธ ์„ค๋ช…
400 Bad Request ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์ž˜๋ชป๋˜์—ˆ์Œ
401 Unauthorized ์š”์ฒญํ•œ ์ž์›์— ๋Œ€ํ•œ ์œ ํšจํ•œ ์ธ์ฆ์ด ์—†์Œ
403 Forbidden ์š”์ฒญ์ด ์„œ๋ฒ„์— ์˜ํ•ด ๊ฑฐ๋ถ€๋จ(ex: ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†์„ ๊ฒฝ์šฐ)
404 Not Found ์š”์ฒญ๋ฐ›์€ ์ž์›์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ
405 Method Not Allowed ์š”์ฒญํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Œ
  • 400(Bad Request): ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์ž˜๋ชป๋˜์—ˆ์Œ์„ ์•Œ๋ ค ์ฃผ๋Š” ์ƒํƒœ ์ฝ”๋“œ

400 ์ฝ”๋“œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • 401(Unauthorized): ํŠน์ • ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์š”์ฒญ์— ๋Œ€ํ•œ ์ธ์ฆ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” 401(Unauthorized) ์ƒํƒœ ์ฝ”๋“œ ์‘๋‹ต
    • ์„œ๋ฒ„๊ฐ€ ์ƒํƒœ ์ฝ”๋“œ 401(Unauthorized)๋กœ ์‘๋‹ตํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ WWW-Authenticate๋ผ๋Š” ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค ์ฃผ์–ด์•ผ ํ•จ

401 ์ฝ”๋“œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • 403(Forbidden): ํด๋ผ์ด์–ธํŠธ์˜ ๊ถŒํ•œ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์˜ ์ƒํƒœ ์ฝ”๋“œ
์ธ์ฆ(Authentication) ์—ฌ๋ถ€ vs ๊ถŒํ•œ ์—ฌ๋ถ€(Authorization) ์—ฌ๋ถ€
- ์ธ์ฆ: ์ž์‹ ์ด ๋ˆ„๊ตฌ์ธ์ง€ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ
- ๊ถŒํ•œ ์—ฌ๋ถ€/์ธ๊ฐ€: ์ธ์ฆ๋œ ์ฃผ์ฒด์—๊ฒŒ ์ž‘์—…์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ
  • 404(Not Found): ์ ‘๊ทผํ•˜๊ณ ์ž ํ•˜๋Š” ์ž์›์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ์„ ์•Œ๋ฆฌ๋Š” ์ƒํƒœ์ฝ”๋“œ
    • ์กด์žฌํ•˜์ง€๋งŒ ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š” ์ž์›์— ๋Œ€ํ•ด 404(Not Found)๋ฅผ ์‘๋‹ตํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Œ
  • 405(Method Not Allowed): ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ

405 ์ฝ”๋“œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

 

500๋ฒˆ๋Œ€: ์„œ๋ฒ„ ์—๋Ÿฌ ์ƒํƒœ ์ฝ”๋“œ

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์š”์ฒญ์„ ๋ณด๋ƒˆ์„์ง€๋ผ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„ ์—๋Ÿฌ์— ๋Œ€ํ•œ ์ƒํƒœ ์ฝ”๋“œ
์ƒํƒœ ์ฝ”๋“œ ์ด์œ  ๊ตฌ๋ฌธ ์„ค๋ช…
500 Internal Server Error ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ
502 Bad Gateway ์ค‘๊ฐ„ ์„œ๋ฒ„์˜ ํ†ต์‹  ์˜ค๋ฅ˜
503 Service Unavailable ํ˜„์žฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์œผ๋‚˜ ์ถ”ํ›„ ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์Œ
  • 500(Internal Server Error): '์„œ๋ฒ„์˜ ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์œผ๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ'
    • ์ƒํƒœ ์ฝ”๋“œ 500์€ ์„œ๋ฒ„ ๋‚ด ์—๋Ÿฌ๋ฅผ ํ†ต์นญ
  • 502(Bad Gateway): ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์œ„์น˜ํ•œ ์ค‘๊ฐ„ ์„œ๋ฒ„์˜ ํ†ต์‹  ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒํƒœ ์ฝ”๋“œ

502 ์ƒํƒœ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • 503(Service Unavailable): 'ํ˜„์žฌ ์„œ๋น„์Šค๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ด์šฉํ•  ์ˆ˜ ์—†์Œ'
    • ์„œ๋ฒ„๊ฐ€ ๊ณผ๋ถ€ํ•˜ ์ƒํƒœ์— ์žˆ๊ฑฐ๋‚˜ ์ผ์‹œ์ ์ธ ์ ๊ฒ€ ์ƒํƒœ์ผ ๋•Œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ

HTTP ํ—ค๋”์™€ HTTP ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ 

HTTP ํ—ค๋”

  • ํ•„๋“œ ์ด๋ฆ„(ํ—ค๋” ์ด๋ฆ„)๊ณผ ํ•„๋“œ ๊ฐ’(ํ—ค๋” ๊ฐ’)์ด ์ฝœ๋ก (:)์„ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„
  • ํ—ค๋” ์œ ํ˜•
    • ํŠน๋ณ„ํ•œ ์‚ฌ์ „ ์ง€์‹์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ—ค๋”
    • ์‚ฌ์ „ ์ง€์‹์ด ํ•„์š”ํ•œ ํ—ค๋” ex) ์บ์‹œ, ์ฟ ํ‚ค, ์ฝ˜ํ…์ธ  ํ˜‘์ƒ ๊ด€๋ จ ํ—ค๋”

HTTP ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

[ํŠน๋ณ„ํ•œ ์‚ฌ์ „ ์ง€์‹์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ—ค๋”]

 

1. HTTP ์š”์ฒญ ์‹œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ—ค๋”

  • Host: ์š”์ฒญ์„ ๋ณด๋‚ผ ํ˜ธ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ—ค๋”, ์ฃผ๋กœ ๋„๋ฉ”์ธ ๋„ค์ž„ ๋ช…์‹œ, ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ
    ex) http://info.cern.ch/hypertext/WWW/TheProject.html์— ์ ‘์†ํ•  ๋•Œ์˜ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ ์ผ๋ถ€

Host(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • User-Agent: HTTP ์š”์ฒญ์„ ์‹œ์ž‘ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ํ”„๋กœ๊ทธ๋žจ ex) ์›น ๋ธŒ๋ผ์šฐ์ €
    • User-Agent ํ—ค๋”: ์š”์ฒญ ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ์— ๊ด€์—ฌํ•œ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ์ •๋ณด ๋ช…์‹œ

User-Agent(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • Referer: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๋จธ๋ฌด๋ฅด๊ณ  ์žˆ๋˜ URL์ด ๋ช…์‹œ
    • ํด๋ผ์ด์–ธํŠธ์˜ ์œ ์ž… ๊ฒฝ๋กœ๋ฅผ ํŒŒ์•…
      ex) Referer: https://en.wikipedia.org/
  • Authorization: ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ํ—ค๋”
    • ์ธ์ฆ ํƒ€์ž…(type)๊ณผ ์ธ์ฆ์„ ์œ„ํ•œ ์ •๋ณด(credentials) ๋ช…์‹œ
      Authorization: <type> <credentials>
    • ์ธ์ฆ ํƒ€์ž…์— ๋”ฐ๋ผ ์ธ์ฆ ์ •๋ณด์— ๋ช…์‹œ๋  ๊ฐ’์ด ๋‹ฌ๋ผ์ง
    • ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ HTTP ์ธ์ฆ ํƒ€์ž…์€ Basic
      • username:password๋ฅผ Base64 ์ธ์ฝ”๋”ฉํ•œ ๊ฐ’์„ ์ธ์ฆ ์ •๋ณด๋กœ ์‚ผ๋Š” ๋ฐฉ์‹
    • Basic ์ด์™ธ์—๋„ Token ์ธ์ฆ ํƒ€์ž…์ธ Bearer๋„ ์กด์žฌํ•จ

2. HTTP ์‘๋‹ต ์‹œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ—ค๋”

  • Server: ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„ ์ธก์˜ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ด€๋ จ๋œ ์ •๋ณด ๋ช…์‹œ
    ex) 'Unix ์šด์˜์ฒด์ œ์—์„œ ๋™์ž‘ํ•˜๋Š” ์•„ํŒŒ์น˜ HTTP ์„œ๋ฒ„'๋ฅผ ์˜๋ฏธํ•˜๋Š” ํ—ค๋” → Server: Apache/2.4.1 (Unix)
  • Allow: ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ—ˆ์šฉ๋œ HTTP ๋ฉ”์„œ๋“œ ๋ชฉ๋ก์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    • ์ƒํƒœ ์ฝ”๋“œ 405(Method Not Allowed)๋ฅผ ์‘๋‹ตํ•˜๋Š” ๋ฉ”์‹œ์ง€์—์„œ Allow ํ—ค๋”๊ฐ€ ํ•จ๊ป˜ ์‚ฌ์šฉ
  • Retry-After: ์ƒํƒœ ์ฝ”๋“œ 503(Service Unavailable)๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํ—ค๋”
    • ์ž์›์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ ์งœ ํ˜น์€ ์‹œ๊ฐ์„ ๋‚˜ํƒ€๋ƒ„
      ex) '2024๋…„ 8์›” 23์ผ ๊ธˆ์š”์ผ 09์‹œ ์ดํ›„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ' → Retry-After: Fri, 23 Aug 2024 09:00:00 GMT
      '120์ดˆ ์ดํ›„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ' → Retry-After: 120
  • Location: ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ž์›์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ—ค๋”
    • ์ฃผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ๋‚˜ ์ƒˆ๋กœ์šด ์ž์›์ด ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ์‚ฌ์šฉ
  • WWW-Authenticate: ์ƒํƒœ ์ฝ”๋“œ 401(Unauthorized)๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ํ—ค๋”
    • ์ž์›์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ๋ฐฉ์‹์„ ์„ค๋ช…
      ex) WWW-Authenticate: Basic
Authorization๊ณผ WWW-Authenticate ํ—ค๋”๋ฅผ ํ†ตํ•œ HTTP ์ธ์ฆ(Basic ์ธ์ฆ) ๊ณผ์ •
โ‘  ์ธ์ฆ๋˜์ง€ ์•Š์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— GET ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†ก
โ‘ก ์„œ๋ฒ„๋Š” 401(Unauthorized)๊ณผ ํ•จ๊ป˜ WWW-Authenticate ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ธ์ฆ ๋ฐฉ์‹์„ ์•Œ๋ฆผ
โ‘ข ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ธ์ฆ ์ •๋ณด(์‚ฌ์šฉ์ž ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ)๋ฅผ ์ „๋‹ฌ๋ฐ›์Œ
โ‘ฃ ํด๋ผ์ด์–ธํŠธ๋Š” Base64 ์ธ์ฝ”๋”ฉํ•œ ๊ฐ’์„ Authorization ํ—ค๋”๋ฅผ ํ†ตํ•ด ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†ก
โ‘ค ์„œ๋ฒ„๋Š” ์ธ์ฆ ์ •๋ณด๋ฅผ ํ™•์ธ
โ‘ค ์ธ์ฆ์ด ์œ ํšจํ•˜๋ฉด ์ƒํƒœ ์ฝ”๋“œ 200์œผ๋กœ ์‘๋‹ตํ•˜๊ณ , ์ธ์ฆ๋˜์ง€ ์•Š์•˜์œผ๋ฉด ์ƒํƒœ ์ฝ”๋“œ 401๋กœ ์‘๋‹ต

 

์š”์ฒญ๊ณผ ์‘๋‹ต ๋ชจ๋‘์—์„œ ํ™œ์šฉ๋˜๋Š” HTTP ํ—ค๋”

  • Date: ๋ฉ”์‹œ์ง€๊ฐ€ ์ƒ์„ฑ๋œ ๋‚ ์งœ์™€ ์‹œ๊ฐ์— ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ—ค๋”
    ex) Date: Tue, 15 Nov 1994 08:12:31 GMT
  • Connection: ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต ๊ฐ„์˜ ์—ฐ๊ฒฐ ๋ฐฉ์‹์„ ์„ค์ •ํ•˜๋Š” ํ—ค๋”
    • ์ง€์† ์—ฐ๊ฒฐ์ด Connection์— ๋ช…์‹œ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์—ฐ๊ฒฐ ๋ฐฉ์‹
    • ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์€ keep-alive์™€ close

Connection(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • Content-Length: ๋ณธ๋ฌธ์˜ ๋ฐ”์ดํŠธ ๋‹จ์œ„ ํฌ๊ธฐ(๊ธธ์ด)
    ex) Content-Length: 100
  • Content-Type, Content-Language, Content-Encoding: ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์˜ ํ‘œํ˜„ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๋Š” ํ—ค๋”,
    ํ‘œํ˜„ ํ—ค๋”(reperesentation header)์˜ ์ผ์ข…
    • Content-Type ํ—ค๋”: ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์—์„œ ์‚ฌ์šฉ๋œ ๋ฏธ๋””์–ด ํƒ€์ž…
      ex) png, html ๋“ฑ
    • Content-Language ํ—ค๋”: ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์—์„œ ์‚ฌ์šฉ๋œ ์ž์—ฐ์–ด๋ฅผ ๋ช…์‹œ,
      - ์–ธ์–ด ํƒœ๊ทธ๋กœ ๋ช…์‹œ: ํ•˜์ดํ”ˆ(-)์œผ๋กœ ๊ตฌ๋ถ„๋œ ๊ตฌ์กฐ
      - ์ผ๋ฐ˜์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์„œ๋ธŒ ํƒœ๊ทธ = ์–ธ์–ด ์ฝ”๋“œ, ๋‘ ๋ฒˆ์งธ ์„œ๋ธŒ ํƒœ๊ทธ = ๊ตญ๊ฐ€ ์ฝ”๋“œ
      - ์–ธ์–ด ์ฝ”๋“œ-๊ตญ๊ฐ€ ์ฝ”๋“œ์˜ ์กฐํ•ฉ = "์–ด๋–ค ๊ตญ๊ฐ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ด๋–ค ์–ธ์–ด"
      ex) ko-KR, en-GB, en-US
    • Content-Encoding ํ—ค๋”: ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์„ ์••์ถ•ํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•œ ๋ฐฉ์‹

Content-Encoding ํ—ค๋”(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)


HTTP ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ 

1. ์บ์‹œ

์‘๋‹ต ๋ฐ›์€ ์ž์›์˜ ์‚ฌ๋ณธ์„ ์ž„์‹œ ์ €์žฅํ•˜๋Š” ๊ธฐ์ˆ 

  • ์ถ”ํ›„ ๋™์ผํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ๋ถˆํ•„์š”ํ•œ ๋Œ€์—ญํญ ๋‚ญ๋น„ ๋ฐฉ์ง€, ์‘๋‹ต ์ง€์—ฐ ๋ฐฉ์ง€
  • ๋น ๋ฅธ ์ž์› ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๊ฐœ์ธ ์ „์šฉ ์บ์‹œ(private cache): ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ
  • ๊ณต์šฉ ์บ์‹œ(public cache): ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์œ„์น˜ํ•œ ์ค‘๊ฐ„ ์„œ๋ฒ„์— ์ €์žฅ
  • ์บ์‹œ๋Š” '์‚ฌ๋ณธ'์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ ์„ ๋„์˜ ๊ฒ€์‚ฌ์™€ ์œ ์ง€ ํ•„์š”
    • ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋Š” ์–ผ๋งˆ๋“ ์ง€ ์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ
    • ์บ์‹œ ์‹ ์„ ๋„: ์บ์‹œ๋œ ์‚ฌ๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ตœ์‹  ์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ์œ ์‚ฌํ•œ์ง€๋ฅผ ํ‘œํ˜„์œผ๋กœ,
      - ์บ์‹œ ์‹ ์„ ๋„๊ฐ€ ๋†’์„์ˆ˜๋ก ํด๋ผ์ด์–ธํŠธ๋Š” ์ตœ์‹  ์ •๋ณด๋ฅผ ์ž„์‹œ ์ €์žฅํ•œ ์ƒํƒœ๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธ

์บ์‹œ ์‹ ์„ ๋„ ๊ฒ€์‚ฌ: ์œ ํšจ ๊ธฐ๊ฐ„ ์„ค์ •๊ธฐ๊ฐ„์ด ๋งŒ๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์š”์ฒญ

  • ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Expires ํ—ค๋”(๋‚ ์งœ)์™€ Cache-Control ํ—ค๋”์˜ Max-Age ๊ฐ’(์ดˆ)์„ ์‚ฌ์šฉ
    ex) ์บ์‹œ์˜ ์œ ํšจ ์‹œ๊ฐ„์„ 2024๋…„ 2์›” 6์ผ ํ™”์š”์ผ 12:00:00๋กœ ์„ค์ •, ๋˜๋Š” 1200์ดˆ๋กœ ์„ค์ •ํ•˜๋Š” ์‘๋‹ต ๋ฉ”์‹œ์ง€

์œ ํšจ ๊ธฐ๊ฐ„ ์„ค์ • ๋ฐฉ๋ฒ•(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์œ ํšจ ๊ธฐ๊ฐ„์ด ๋๋‚ฌ์–ด๋„ ์„œ๋ฒ„์˜ ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ™”ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋จ. ์ด๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ๋Š” ์บ์‹œ ์‹ ์„ ๋„์˜ ์žฌ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•จ

์บ์‹œ ์‹ ์„ ๋„ ์žฌ๊ฒ€์‚ฌ

1) If-Modified-Since ํ—ค๋”: ๋‚ ์งœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„์—๊ฒŒ ๋ฌผ์–ด๋ณด๋Š” ๋ฐฉ๋ฒ•

  • If-Modified-Since ํ—ค๋”์— ๋ช…์‹œ๋œ ์‹œ์  ์ดํ›„๋กœ ์›๋ณธ์— ๋ณ€๊ฒฝ์ด ์žˆ์—ˆ๋‹ค๋ฉด ๊ทธ๋•Œ๋งŒ ์ƒˆ ์ž์›์œผ๋กœ ์‘๋‹ตํ•˜๋„๋ก ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•˜๋Š” ํ—ค๋”

์บ์‹œ ์‹ ์„ ๋„ ์žฌ๊ฒ€์‚ฌ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์„œ๋ฒ„์˜ Last-Modified ํ—ค๋”: ์ƒํƒœ ์ฝ”๋“œ 304(Not Modified)๋ฅผ ํ†ตํ•œ ์ž์›์˜ '๋ณ€๊ฒฝ ์—ฌ๋ถ€'๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ž์›์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •๋œ ์‹œ์ ๋„ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์Œ

Last-Modified ํ—ค๋” ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

2) If-None-Match ํ—ค๋”: ์—”ํ‹ฐํ‹ฐ ํƒœ๊ทธ(Etag)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„์—๊ฒŒ ๋ฌผ์–ด๋ณด๋Š” ๋ฐฉ๋ฒ•

  • Etag๋Š” '์ž์›์˜ ๋ฒ„์ „'์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด
    • ๋ฒ„์ „(version): '์œ ์˜๋ฏธํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ'
    • ์ฆ‰, ์ž์›์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ž์›์˜ ๋ฒ„์ „์„ ์‹๋ณ„ํ•˜๋Š” Etag ๊ฐ’์ด ๋ณ€๊ฒฝ
    • ๋ฐ˜๋Œ€๋กœ ์ž์›์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด Etag ๊ฐ’๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ → 304(Not Modified) ์ƒํƒœ ์ฝ”๋“œ ๋ฐ˜ํ™˜

Etag๋ฅผ ํ™œ์šฉํ•œ ์‹ ์„ ๋„ ๊ฒ€์‚ฌ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • '์ด Etag ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ์ž์›์ด ์žˆ๋Š”๊ฐ€?', 'ํ˜น์‹œ Etag ๊ฐ’์ด abc์ธ www.example.com/index.html์ด๋ผ๋Š” ์ž์›์ด ์žˆ๋Š”๊ฐ€? ์ž์›์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋ฉด(Etag ๊ฐ’์ด ๋ฐ”๋€Œ์—ˆ๋‹ค๋ฉด) ๊ทธ๋•Œ๋งŒ ์ƒˆ ์ž์›์œผ๋กœ ์‘๋‹ตํ•˜๋ผ'์™€ ๊ฐ™์ด ์‹ ์„ ๋„ ๊ฒ€์‚ฌ

If-None-Match ํ—ค๋”๋ฅผ ํ†ตํ•ด ์‹ ์„ ๋„ ๊ฒ€์‚ฌ ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

2. ์ฟ ํ‚ค(Cookie)

  • HTTP๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ์Šคํ…Œ์ดํŠธ๋ฆฌ์Šคํ•œ ํ”„๋กœํ† ์ฝœ์ž„
  • ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋˜์–ด ํด๋ผ์ด์–ธํŠธ ์ธก์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ
    • ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” HTTP์˜ ํŠน์„ฑ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ
    • ๊ธฐ๋ณธ์ ์œผ๋กœ <์ด๋ฆ„, ๊ฐ’> ์Œ์˜ ํ˜•ํƒœ, ์ถ”๊ฐ€๋กœ ๋‹ค์–‘ํ•œ ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
  • ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์ „๋‹ฌ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ์ถ”ํ›„ ์š”์ฒญ ๋ฉ”์‹œ์ง€์— ์ฟ ํ‚ค๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „์†ก
  • ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด ์š”์ฒญ์ด ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์™”๋Š”์ง€, ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์„ ์•Œ ์ˆ˜ ์žˆ์Œ

 

[์ฟ ํ‚ค๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ธ์ฆ ๊ธฐ์ˆ , ์„ธ์…˜ ์ธ์ฆ]

  • HTTP๋Š” ์Šคํ…Œ์ดํŠธ๋ฆฌ์Šค ํ”„๋กœํ† ์ฝœ
    • ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๊ณ  ํ•ด๋„, ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„๋Š” ๋ชจ๋“  ์š”์ฒญ๋“ค์„ ๋ณ„๊ฐœ์˜ ์š”์ฒญ์œผ๋กœ ๊ฐ„์ฃผ
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค (์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์€) ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฒˆ๊ฑฐ๋กœ์šด ์ธ์ฆ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€?
    • ๊ทธ๋Ÿด ํ•„์š” ์—†์Œ! ์ฟ ํ‚ค๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ธฐ์ˆ  ์กด์žฌ
  • ์„ธ์…˜ ์•„์ด๋””(session id)์™€ ์„ธ์…˜ ์ธ์ฆ(session authentication)
    โ‘  ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ (์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์€) ์ธ์ฆ ์ •๋ณด๋ฅผ ์ „์†ก
    โ‘ก ์ธ์ฆ ์ •๋ณด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๋‹ค๋ฉด, ์„œ๋ฒ„๋Š” ์„ธ์…˜ ์•„์ด๋””๋ฅผ ์ƒ์„ฑํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†ก
    โ‘ข ์„œ๋ฒ„๋Š” ์ƒ์„ฑํ•œ ์„ธ์…˜ ์•„์ด๋””๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์— ์ €์žฅ
    โ‘ฃ ํด๋ผ์ด์–ธํŠธ๋Š” ์ถ”ํ›„ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์ฟ ํ‚ค ๋‚ด์— ์„ธ์…˜ ์•„์ด๋””๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „์†ก
    โ‘ค ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค ์† ์„ธ์…˜ ์•„์ด๋””์™€ ์ €์žฅ๋œ ์„ธ์…˜ ์•„์ด๋””๋ฅผ ๋น„๊ตํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„
    ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ๋ฒˆ๊ฑฐ๋กœ์šด ์ธ์ฆ ๊ณผ์ •์„ ๊ฑฐ์น  ํ•„์š”๊ฐ€ ์—†์Œ
  • ์„œ๋ฒ„์˜ ์ฟ ํ‚ค ์ƒ์„ฑ - ํด๋ผ์ด์–ธํŠธ์˜ ์ฟ ํ‚ค ํ™œ์šฉ
    • ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Set-Cookie ํ—ค๋”, ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ Cookie ํ—ค๋” ํ™œ์šฉ
  • ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Set-Cookie ํ—ค๋”
    • ์ฟ ํ‚ค์˜ ์ด๋ฆ„, ๊ฐ’๊ณผ ๋”๋ถˆ์–ด ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ์†์„ฑ(๋“ค)์„ ์ „๋‹ฌ
    • ํ•œ ์‘๋‹ต ๋ฉ”์‹œ์ง€์— ์ „๋‹ฌํ•  ์ฟ ํ‚ค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ Set-Cookie

์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ Set-Cookie ํ—ค๋”(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ Cookie ํ—ค๋”
    • ์„œ๋ฒ„์— ์ „๋‹ฌํ•  ์ฟ ํ‚ค์˜ ์ด๋ฆ„๊ณผ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ—ค๋”
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฟ ํ‚ค ๊ฐ’์„ ์„œ๋ฒ„์— ์ „๋‹ฌํ•ด์•ผ ํ•  ๋•Œ๋Š” ์„ธ๋ฏธ ์ฝœ๋ก (;)์„ ์‚ฌ์šฉ

์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ Set-Cookie ํ—ค๋”(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋จ
    • ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด๊ณ , [Application] → [Storage] → [Cookies]

 

[์ฟ ํ‚ค์˜ ์†์„ฑ ๊ฐ’]

์ฟ ํ‚ค์˜ ์†์„ฑ๊ฐ’(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์ฟ ํ‚ค๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๋ฉ”์ธ์ด ์ •ํ•ด์ ธ ์žˆ์Œ
    • www.naver.com์—๊ฒŒ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ์ „ํ˜€ ๋‹ค๋ฅธ ์›น ์‚ฌ์ดํŠธ์ธ www.google.com์—๊ฒŒ ์ „์†กํ•˜๋ฉด ์•ˆ๋จ
    • ์‘๋‹ต ๋ฉ”์‹œ์ง€ ์† Set-Cookie ํ—ค๋”์˜ 'domain' ์†์„ฑ์œผ๋กœ ์ •ํ•จ

์ฟ ํ‚ค์˜ ๋„๋ฉ”์ธ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ๊ฐ™์€ ๋„๋ฉ”์ธ์ด๋ผ๋„ ๊ฒฝ๋กœ๋ณ„๋กœ ์ฟ ํ‚ค๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ
    • ex) www.example.com/lectures๋ฅผ ํฌํ•จํ•œ ํ•˜์œ„ ๊ฒฝ๋กœ์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์ฟ ํ‚ค์™€ www.example.com/books๋ฅผ ํฌํ•จํ•œ ํ•˜์œ„ ๊ฒฝ๋กœ์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์ฟ ํ‚ค๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ
    • 'path' ์†์„ฑ์œผ๋กœ ์ฟ ํ‚ค๊ฐ€ ์ ์šฉ๋  ๊ฒฝ๋กœ๋ฅผ ๋ช…์‹œ: ์ง€์ •๋œ ๊ฒฝ๋กœ + ํ•˜์œ„ ๊ฒฝ๋กœ์—์„œ ์ฟ ํ‚ค ํ™œ์šฉ

์ฟ ํ‚ค์˜ path(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์ฟ ํ‚ค ์œ ํšจ ๊ธฐ๊ฐ„
    • Expires ์†์„ฑ์„ ํ†ตํ•ด ์ฟ ํ‚ค ๋งŒ๋ฃŒ ์‹œ์  ์ง€์ •
    • Max-Age ์†์„ฑ์„ ํ†ตํ•ด ์ดˆ ๋‹จ์œ„ ์œ ํšจ ๊ธฐ๊ฐ„ ์ง€์ •

์ฟ ํ‚ค์˜ ์œ ํšจ๊ธฐ๊ฐ„(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

 

[์ฟ ํ‚ค์˜ ํ•œ๊ณ„์™€ ๋ณด์•ˆ ๊ธฐ์ˆ ]

์ฟ ํ‚ค์˜ ํ•œ๊ณ„

  • ์ฟ ํ‚ค์˜ ๋Œ€ํ‘œ์ ์ธ ํ•œ๊ณ„๋Š” ๋ณด์•ˆ์ด๋‹ค.
  • ์ฟ ํ‚ค ์ •๋ณด๋Š” ์‰ฝ๊ฒŒ ๋…ธ์ถœ๋˜๊ฑฐ๋‚˜ ์กฐ์ž‘๋  ์ˆ˜ ์žˆ์Œ

Secure์™€ HttpOnly

  • Secure: HTTPS ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค ์ „์†ก
  • HttpOnly: HTTP ์†ก์ˆ˜์‹ ์„ ํ†ตํ•ด์„œ๋งŒ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•˜๋„๋ก ์ œํ•œํ•˜๋Š” ์†์„ฑ
    • ์ฟ ํ‚ค ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ํ†ตํ•ด์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    • HttpOnly๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฟ ํ‚ค์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ์†์„ฑ
์ฟ ํ‚ค์™€ ์œ ์‚ฌํ•œ ์›น ์Šคํ† ๋ฆฌ์ง€: ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์™€ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ €์žฅํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๋Š” <ํ‚ค-๊ฐ’> ์Œ ํ˜•ํƒœ์˜ ์ •๋ณด
- ์›น ์Šคํ† ๋ฆฌ์ง€๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด์— ์ €์žฅ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟ ํ‚ค๋ณด๋‹ค ๋” ํฐ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ฐ€๋Šฅ
- ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„๋กœ ์ž๋™ ์ „์†ก๋˜์ง€๋งŒ, ์›น ์Šคํ† ๋ฆฌ์ง€์˜ ์ •๋ณด๋Š” ์„œ๋ฒ„๋กœ ์ž๋™ ์ „์†ก X
- ์›น ์Šคํ† ๋ฆฌ์ง€ ์ข…๋ฅ˜์—๋Š” ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์™€ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ ์กด์žฌ
- ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€(local storage): ๋ณ„๋„๋กœ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” ํ•œ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•œ ์ •๋ณด
- ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€(session storage): ์„ธ์…˜์ด ์œ ์ง€๋˜๋Š” ๋™์•ˆ(๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ๋™์•ˆ) ์œ ์ง€๋˜๋Š” ์ •๋ณด

 

3. ์ฝ˜ํ…์ธ  ํ˜‘์ƒ

๊ฐ™์€ URI์— ๋Œ€ํ•ด ๊ฐ€์žฅ ์ ํ•ฉํ•œ '์ž์›์˜ ํ˜•ํƒœ'๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜

  • ๊ฐ™์€ URI๋กœ ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ HTML ๋ฌธ์„œ๋ผ ํ•ด๋„, ์˜์–ด๋กœ ์š”์ฒญํ•˜๋ฉด ์˜์–ด๋กœ ๋œ ํ˜•ํƒœ๋ฅผ ์ œ๊ณต, ํ•œ๊ตญ์–ด๋กœ ์š”์ฒญํ•˜๋ฉด ํ•œ๊ตญ์–ด๋กœ ๋œ ํ˜•ํƒœ ์ œ๊ณต
  • ์ž์›์˜ ํ‘œํ˜„(representation): ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅํ•œ ์ž์›์˜ ํ˜•ํƒœ
    • ์ฆ‰, ์ฝ˜ํ…์ธ  ํ˜‘์ƒ์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ž์›์˜ ํ‘œํ˜„์„ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜
  • GET ๋ฉ”์„œ๋“œ์˜ ์ •์˜: '์ž์›์˜ ํŠน์ • ํ‘œํ˜„์„ ์Šต๋“ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ'
  • ์ฝ˜ํ…์ธ  ํ˜‘์ƒ ๊ด€๋ จ HTTP ํ—ค๋”
    • Accept ํ—ค๋”: ์„ ํ˜ธํ•˜๋Š” ๋ฏธ๋””์–ด ํƒ€์ž…
    • Accept-Language: ์„ ํ˜ธํ•˜๋Š” ์–ธ์–ด
    • Accept-Charset ๋ฐ Accept-Encoding: ์„ ํ˜ธํ•˜๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ๊ณผ ์••์ถ• ๋ฐฉ์‹
    • ex) ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์–ธ์–ด๊ฐ€ ํ•œ๊ตญ์–ด ๋ฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTML ๋ฌธ์„œ ํƒ€์ž…์„ ์„ ํ˜ธ

์ฝ˜ํ…์ธ  ํ˜‘์ƒ ๊ด€๋ จ HTTP ํ—ค๋” ์˜ˆ์‹œ(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)

  • ์„ ํ˜ธ๋„์— ์šฐ์„ ์ˆœ์œ„ ๋ฐ˜์˜ ๊ฐ€๋Šฅ
    ex) '์–ธ์–ด๋Š” ํ•œ๊ตญ์–ด๋ฅผ ๊ฐ€์žฅ ์„ ํ˜ธํ•˜์ง€๋งŒ, ์˜์–ด๋„ ๋ฐ›์„ ์šฉ์˜๊ฐ€ ์žˆ๋‹ค.'
    '๋ฏธ๋””์–ด ํƒ€์ž…์€ HTML ๋ฌธ์„œ๋ฅผ ๊ฐ€์žฅ ์„ ํ˜ธํ•˜๊ณ , XML์„ ๋‹ค์Œ์œผ๋กœ ์„ ํ˜ธํ•˜๊ณ , ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋ฅผ ๋‹ค์Œ์œผ๋กœ ์„ ํ˜ธํ•œ๋‹ค'
    • ์šฐ์„ ์ˆœ์œ„๋Š” ์ฝ˜ํ…์ธ  ํ˜‘์ƒ ๊ด€๋ จ ํ—ค๋”์˜ q๊ฐ’์œผ๋กœ ํ‘œํ˜„(q๋Š” Quality Value์˜ ์•ฝ์ž)
      • ๊ฐ’์ด ํด์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์Œ
      • ์ƒ๋žต๋˜์—ˆ์„ ๊ฒฝ์šฐ์—๋Š” 1์„ ์˜๋ฏธ
      • ๋ฒ”์œ„๋Š” 0๋ถ€ํ„ฐ 1๊นŒ์ง€
    • ex) ํ•œ๊ตญ์–ด(ko-KR, ko), ์˜์–ด(en-US, en)์ˆœ์œผ๋กœ ์„ ํ˜ธํ•˜๊ณ , HTML, XML, ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ˆœ์œผ๋กœ ์„ ํ˜ธ

์ฝ˜ํ…์ธ  ํ˜‘์ƒ ๊ด€๋ จ HTTP ํ—ค๋”๋ฅผ ์šฐ์„ ์ˆœ์œ„ ๋ฐ˜์˜(์ถœ์ฒ˜: https://www.youtube.com/watch?v=k7G1wXTB8Fk&t=5s)