πŸ“‚ 개발 μ„œμ /그림으둜 λ°°μš°λŠ” HTTP&Network Basic

제 5μž₯. HTTP와 μ—°κ³„ν•˜λŠ” μ›Ή μ„œλ²„

Amenable 2023. 5. 31. 12:43

πŸ“˜ 1. 가상 호슀트(Virtual Host)

  • 가상 호슀트 κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄ λ¬Όλ¦¬μ μœΌλ‘œλŠ” μ„œλ²„κ°€ 1λŒ€μ§€λ§Œ κ°€μƒμœΌλ‘œ μ—¬λŸ¬ λŒ€κ°€ μžˆλŠ” κ²ƒμ²˜λŸΌ μ„€μ •ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€
  • κ³ κ°λ§ˆλ‹€ λ‹€λ₯Έ 도메인을 κ°€μ§€κ³ , λ‹€λ₯Έ μ›Ή μ‚¬μ΄νŠΈλ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€

 

  • 이름 κΈ°λ°˜μ˜ κ°€μƒ ν˜ΈμŠ€νŠΈ(Name-Based Virtual Host)
    같은 IP μ£Όμ†Œλ₯Ό κ°€μ§€κ³  μ—¬λŸ¬ κ°œμ˜ ν˜ΈμŠ€νŠΈλͺ…을 κ°€μ§„λ‹€.
    example1.com -> 192.168.0.1
    example2.com -> 192.168.0.1
  • μ£Όμ†Œ κΈ°λ°˜μ˜ κ°€μƒ ν˜ΈμŠ€νŠΈ(IP-Based Virtual Host)
    ν•˜λ‚˜μ˜ μ„œλ²„에 μžˆλŠ” λ„λ©”μΈλ“€μ—κ²Œ κ°κ° IP μ£Όμ†Œλ₯Ό ν• λ‹Ήν•˜μ—¬ μš΄μš©
    example1.com -> 192.168.0.0
    example2.com -> 192.168.0.1
  • 포트 κΈ°λ°˜μ˜ κ°€μƒ ν˜ΈμŠ€νŠΈ(Port-Based Virtual Host)
    ν•˜λ‚˜μ˜ μ„œλ²„에 κΈ°λ³Έ ν¬νŠΈλ₯Ό μ£Όν˜ΈμŠ€νŠΈλ‘œ μ„€μ •ν•˜κ³  μ—¬λŸ¬ κ°œμ˜ λ‹€λ₯Έ ν¬νŠΈλ₯Ό μ§€μ •ν•˜μ—¬ μš΄μš©
    example1.com -> 192.168.0.1:8080
    example2.com -> 192.168.0.1:80
  • κΈ°λ³Έ κ°€μƒ ν˜ΈμŠ€νŠΈ(Default Virtual Host)
    μ§€μ •λœ 가상 ν˜ΈμŠ€νŠΈκ°€ 없을 λ•Œ 응닡에 응할 호슀트λ₯Ό μ§€μ •ν•΄ λ‘” 것

 

  • 같은 IP μ£Όμ†Œμ—μ„œ λ‹€λ₯Έ ν˜ΈμŠ€νŠΈλͺ…(www, mail, comic,...)κ³Ό λ„메인 λͺ…(naver.com, daum.com)을 κ°€μ§„ μ—¬λŸ¬ κ°œμ˜ μ›Ή μ‚¬μ΄νŠΈκ°€ μ‹€ν–‰λ˜κ³  μžˆλŠ” κ°€μƒ ν˜ΈμŠ€νŠΈμ˜ μ‹œμŠ€ν…œμ΄ μžˆλ‹€.
  • κ·Έλ ‡κΈ° λ•Œλ¬Έμ— HTTP μš”청을 λ³΄λ‚΄λŠ” κ²½μš°μ—λŠ” ν˜ΈμŠ€νŠΈλͺ…κ³Ό λ„메인 λͺ…을 μ™„μ „ν•˜κ²Œ ν¬ν•¨ν•œ URIλ₯Ό μ§€μ •ν•˜κ±°λ‚˜λ°˜λ“œμ‹œ Host ν—€λ” ν•„λ“œμ—μ„œ μ§€μ •ν•΄μ•Ό ν•œλ‹€.

 

 

 

πŸ“˜ 2. ν†΅μ‹  μ€‘계 ν”„λ‘œκ·Έλž¨

  • HTTPλŠ” ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ μ΄μ™Έμ— ν”„λ‘μ‹œ(Proxy)κ²Œμ΄νŠΈμ›¨μ΄(Gateway)터널(Tunnel)κ³Ό κ°™μ€ ν†΅μ‹ μ„ μ€‘κ³„ν•˜λŠ” ν”„λ‘œκ·Έλž¨κ³Ό μ„œλ²„λ₯Ό μ—°κ³„ν•˜λŠ” κ²ƒλ„ κ°€λŠ₯
  • μ΄λŸ¬ν•œ ν”„λ‘œκ·Έλž¨κ³Ό μ„œλ²„λŠ” κ·Έλ‹€μŒμ— μžˆλŠ” λ‹€λ₯Έ μ„œλ²„에 μš”청을 μ€‘κ³„ν•˜κ³ , κ·Έ μ„œλ²„λ‘œλΆ€ν„° λ°›μ€ μ‘닡을 ν΄λΌμ΄μ–ΈνŠΈμ— λ°˜ν™˜ν•˜λŠ” μ—­ν• μ„ λ‹΄λ‹Ή

 

πŸ”Ž 2-1. ν”„λ‘μ‹œ(Proxy)

  • μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ μ–‘μͺ½ μ—­ν• μ„ ν•˜λŠ” μ€‘계 ν”„λ‘œκ·Έλž¨
  • ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μš”청을 μ„œλ²„에 μ „μ†‘ν•˜κ³ , μ„œλ²„λ‘œλΆ€ν„°μ˜ μ‘닡을 ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ „μ†‘ν•œλ‹€.

 

  • 체인과 κ°™μ΄ ν”„λ‘μ‹œ μ„œλ²„λ₯Ό μ—¬λŸ¬ λŒ€ κ²½μœ ν•˜λŠ” κ²ƒλ„ κ°€λŠ₯
  • 쀑계할 λ•Œμ—λŠ” Via ν—€λ” ν•„λ“œμ— κ²½μœ ν•œ ν˜ΈμŠ€νŠΈ μ •보λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•¨
  • μ‚¬μš© μ΄μœ 
    μΊμ‹œλ₯Ό μ‚¬μš©ν•΄μ„œ λ„€νŠΈμ›Œν¬ λŒ€μ—­ λ“±μ„ νš¨μœ¨μ μœΌλ‘œ μ‚¬μš©ν•˜κΈ°
    쑰직 λ‚΄μ— νŠΉμ • μ›Ή μ‚¬μ΄νŠΈμ— λŒ€ν•œ μ•‘μ„ΈμŠ€ μ œν•œ
    μ•‘μ„ΈμŠ€ λ‘œκ·Έλ₯Ό νšλ“ν•˜λŠ” μ •책을 μ² μ €ν•˜κ²Œ μ§€ν‚€λ €λŠ” λͺ©μ 

 

  • 캐싱 ν”„λ‘μ‹œ(Cashing Proxy)
    ν”„λ‘μ‹œ μ„œλ²„ μƒμ— λ¦¬μ†ŒμŠ€ μΊμ‹œλ₯Ό λ³΄μ‘΄ν•΄ λ‘λŠ” νƒ€μž…μ˜ ν”„λ‘μ‹œ
    자주 μ‚¬μš©ν•˜λŠ” 컨텐츠 및 μžμ› μΈμŠ€ν„΄μŠ€λ₯Ό ν”„λ‘μ‹œ μ„œλ²„μ— 둜컬둜 μ €μž₯ν•˜μ—¬ μ›Ή 페이즈 및 μ›Ή μ‚¬μ΄νŠΈ μš”μ²­μ„ κ°€μ†ν™”ν•˜λŠ” μˆ˜λ‹¨
  • 투λͺ… ν”„λ‘μ‹œ(Transparent Proxy)
    λ©”μ‹œμ§€ λ³€κ²½μ„ ν•˜μ§€ μ•ŠλŠ” νƒ€μž…μ˜ ν”„λ‘μ‹œ
    κΈ°κΈ° μ‚¬μš©μžμ˜ μ˜¨λΌμΈ ν™œλ™μ„ λͺ¨λ‹ˆν„°λ§ν•˜κ³  νŠΉμ • μ›Ήμ‚¬μ΄νŠΈμ— μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 μ°¨λ‹¨ν•˜κ³  μ‹Άμ€ κ²½μš°μ— μ‚¬μš©
    ν˜Έν…”κ³Ό μΉ΄νŽ˜μ—μ„œ 곡용 μ™€μ΄νŒŒμ΄μ—μ„œ μ‚¬μš©μžλ₯Ό μΈμ¦ν•˜κ³  μ•‘μ„ΈμŠ€ κΆŒν•œμ„ ν—ˆμš©ν•˜λŠ” 것이 ν•˜λ‚˜μ˜ μ˜ˆμ‹œμž„

 

πŸ”Ž 2-2. κ²Œμ΄νŠΈμ›¨μ΄(Gateway)

  • λ‹€λ₯Έ μ„œλ²„λ₯Ό μ€‘κ³„ν•˜λŠ” μ„œλ²„
  • ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μˆ˜μ‹ ν•œ μš”청을 λ¦¬μ†ŒμŠ€λ₯Ό λ³΄μœ ν•œ μ„œλ²„인 κ²ƒμ²˜λŸΌ μˆ˜μ‹ 
  • κ·Έλ‹€μŒμ— μžˆλŠ” μ„œλ²„κ°€ HTTP μ„œλ²„ μ΄μ™Έμ˜ μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ„œλ²„μž„
  • ν΄λΌμ΄μ–ΈνŠΈμ™€ κ²Œμ΄νŠΈμ›¨μ΄ μ‚¬μ΄λ₯Ό μ•”ν˜Έν™”ν•˜λŠ” λ“±μœΌλ‘œ μ•ˆμ „ν•˜κ²Œ μ ‘μ†ν•¨μœΌλ‘œμ¨ ν†΅μ‹ μ˜ μ•ˆμ „성을 λ†’μ΄λŠ” μ—­ν• 
  • ν•œ λ„€νŠΈμ›Œν¬(segment)μ—μ„œ λ‹€λ₯Έ λ„€νŠΈμ›Œν¬λ‘œ μ΄λ™ν•˜κΈ° μœ„ν•˜μ—¬ κ±°μ³μ•Ό ν•˜λŠ” μ§€μ 

 

  • μ§‘ μ»΄ν“¨ν„°μ—μ„œ 인터넷에 μ ‘μ†ν•˜λ €λŠ” 경우, 인터넷에 μ ‘μ†ν•˜κΈ° μœ„ν•˜μ—¬ μˆ˜λ§Žμ€ κ²Œμ΄νŠΈμ›¨μ΄λ₯Ό 거쳐야 ν•œλ‹€. (μ§‘ → 곡유기 → 인터넷 제곡 νšŒμ‚¬ λΌμš°ν„° → 인터넷망)
  • λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘속해 SQL μΏΌλ¦¬λ₯Ό μ‚¬μš©ν•΄μ„œ λ°μ΄ν„°λ₯Ό μ–»λŠ” κ³³μ— μ΄μš© κ°€λŠ₯
  • μ‡Όν•‘ μ‚¬μ΄νŠΈ λ“±μ—μ„œ μ‹ μš© μΉ΄λ“œ κ²°μ œ μ‹œμŠ€ν…œκ³Ό μ—°κ³„ν•  λ•Œ μ‚¬μš©λ˜κΈ°λ„ ν•¨

 

πŸ”Ž 2-3. ν„°λ„(Tunnel)

  • μ„œλ‘œ λ–¨μ–΄μ§„ λ‘ λŒ€μ˜ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ μ‚¬μ΄λ₯Ό μ€‘κ³„ν•˜λ©° μ ‘속을 μ£Όμ„ ν•˜λŠ” μ€‘계 ν”„λ‘œκ·Έλž¨
  • μš”κ΅¬μ— λ”°λΌμ„œ λ‹€λ₯Έ μ„œλ²„μ™€μ˜ ν†΅μ‹  κ²½λ‘œλ₯Ό ν™•λ¦½ν•œλ‹€
  • ν΄λΌμ΄μ–ΈνŠΈλŠ” SSL κ°™μ€ μ•”ν˜Έν™” ν†΅μ‹ μ„ ν†΅ν•΄ μ„œλ²„와 μ•ˆμ „ν•˜κ²Œ ν†΅μ‹ μ„ ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
  • 터널 μžμ²΄λŠ” HTTP μš”청을 ν•΄μ„ν•˜λ €κ³  ν•˜μ§€ μ•ŠλŠ”λ‹€
  • κ²°κ΅­ μš”청을 κ·ΈλŒ€λ‘œ λ‹€μŒ μ„œλ²„에 μ€‘κ³„ν•œλ‹€

 

 

πŸ“˜ 3. μΊμ‹œ(Cache)

  • μΊμ‹œ(Cache)λŠ” ν”„λ‘μ‹œ μ„œλ²„와 ν΄λΌμ΄μ–ΈνŠΈ λ‘œμ»¬ λ””μŠ€ν¬μ— λ³΄κ΄€λœ λ¦¬μ†ŒμŠ€μ˜ μ‚¬λ³Έμ„ κ°€λ¦¬ν‚¨λ‹€
  • μΊμ‹œλ₯Ό μ‚¬μš©ν•˜λ©΄ λ¦¬μ†ŒμŠ€λ₯Ό κ°€μ§„ μ„œλ²„λ‘œμ˜ μ•‘μ„Έμ„œλ₯Ό μ€„μ΄λŠ” κ²ƒμ΄ κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— ν†΅μ‹ λŸ‰κ³Ό ν†΅μ‹  μ‹œκ°„을 μ ˆμ•½ν•  μˆ˜ μžˆλ‹€

 

  • μΊμ‹œ μ„œλ²„λŠ” ν”„λ‘μ‹œ μ„œλ²„μ˜ ν•˜λ‚˜λ‘œ μΊμ‹± ν”„λ‘μ‹œλ‘œ λΆ„λ₯˜λœλ‹€
  • μΊμ‹œ μ„œλ²„μ˜ μž₯점은 μΊμ‹œλ₯Ό μ΄μš©ν•¨μœΌλ‘œμ¨ κ°™μ€ λ°μ΄ν„°λ₯Ό λͺ‡ λ²ˆμ΄κ³  μ˜€λ¦¬μ§„ μ„œλ²„에 μ „솑할 ν•„μš”κ°€ μ—†λ‹€λŠ” κ²ƒμ΄λ‹€

 

  • μΊμ‹œλ₯Ό κ°€μ§€κ³  μžˆλ”라도 ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”κ΅¬λ‚˜ μΊμ‹œμ˜ μœ νš¨ κΈ°κ°„ λ“±μ— μ˜ν•΄μ„œ μ˜€λ¦¬μ§„ μ„œλ²„에 λ¦¬μ†ŒμŠ€μ˜ μœ νš¨μ„±μ„ ν™•μΈν•˜κ±°λ‚˜ λ¦¬μ†ŒμŠ€λ₯Ό λ‹€μ‹œ νšλ“ν•˜λŸ¬ κ°€κ²Œ λ˜λŠ” κ²½μš°κ°€ μžˆλ‹€

 

  • μΊμ‹œ μ„œλ²„λ§Œ μΊμ‹œλ₯Ό κ°€μ§€κ³  μžˆλŠ” 게 μ•„λ‹ˆλΌ ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‚¬μš©ν•˜λŠ” λΈŒλΌμš°μ €μ—μ„œλ„ μΊμ‹œλ₯Ό κ°€μ§ˆ μˆ˜ μžˆλ‹€
  • λΈŒλΌμš°μ €κ°€ μœ νš¨ν•œ μΊμ‹œλ₯Ό κ°€μ§€κ³  μžˆλŠ” κ²½μš°, κ°™μ€ λ¦¬μ†ŒμŠ€μ˜ μ•‘μ„ΈμŠ€λŠ” μ„œλ²„에 μ•‘μ„ΈμŠ€ ν•˜μ§€ μ•Šκ³  λ‘œμ»¬ λ””μŠ€ν¬λ‘œλΆ€ν„° λΆˆλŸ¬μ˜¨λ‹€
  • μΊμ‹œ μ„œλ²„와 λ§ˆμ°¬κ°€μ§€λ‘œ λ¦¬μ†ŒμŠ€κ°€ μ˜€λž˜λœ κ²ƒμœΌλ‘œ νŒλ‹¨λœ κ²½μš°μ—λŠ” μ˜€λ¦¬μ§„ μ„œλ²„에 λ¦¬μ†ŒμŠ€μ˜ μœ νš¨μ„±μ„ ν™•μΈν•˜λŸ¬ κ°€κ±°λ‚˜ μƒˆλ‘œμš΄ λ¦¬μ†ŒμŠ€λ₯Ό λ‹€μ‹œ νšλ“ν•˜λŸ¬ κ°€λŠ” μΌμ΄ μžˆλ‹€

 

[참고자료]
홍크 λ‹˜μ˜ '[Network] Virtual Host(가상 호슀트)λž€?',
yein λ‹˜μ˜ '[λ„€νŠΈμ›Œν¬] 가상 호슀트(Virtual Host)',
melonicedlatte λ‹˜μ˜ 'κ²Œμ΄νŠΈμ›¨μ΄(Gateway)λž€? κ°œλ… 정리',
λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.