Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋””/๋ชจ์˜ ํ•ดํ‚น - ๊ธฐ๋ก์ผ์ง€

[๊ธฐ๋ก์ผ์ง€] ๐Ÿ“š 01์ฃผ์ฐจ (๐ŸŒWeb)

Gearvirus(junyup2) 2023. 11. 1. 04:40

์›น ์„œ๋ฒ„(Web Server) ์— ๋Œ€ํ•œ ์ดํ•ด


์›น ์„œ๋ฒ„(Web Server) 

ํŒŒ์ผ ์ „๋‹ฌ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰

  • ์›น ์„œ๋ฒ„๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์„ ์š”์ฒญํ•˜์—ฌ, ๋‹จ์ง€ ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ผ ๋ฟ์ด๋‹ค.

๊ทธ๋Ÿผ, ์–ด๋–ป๊ฒŒ ํŒŒ์ผ์„ ์š”์ฒญํ•˜๋Š”๊ฐ€?

  • ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉ
  • url ์ฐฝ์„ ํ†ตํ•ด์„œ ์š”์ฒญ
  • url : ์›น์„œ๋ฒ„์—์„œ ์ž๋ฃŒ๋ฅผ ์š”์ฒญํ•˜๋Š” ์ž…๊ตฌ.

URL

URL (Uniform Resource Locator)

URL์ด๋ž€ ์›น ์„œ๋ฒ„์—์„œ (์ธํ„ฐ๋„ท ์ƒ์— ์žˆ๋Š”) ์ž๋ฃŒ๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฐ’

[Protocol]://[ Domain or IP Address ]:[Port]/[File/Path]/[Query/Params]
  • Protocol : http ํ˜น์€ https ๋“ฑ์„ ์˜๋ฏธ
  • Domain or IP Adress : www.naver.com ์ด๋‚˜ 192.168.xxx.xxx ๋ฅผ ์˜๋ฏธ
  • Port : ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธ
  • File/Path : ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์—ฌ์ค„ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ
    • ๋ฏธ๊ธฐ์ž… ์‹œ - index.html์„ ๋ณด์—ฌ์คŒ(์ƒ๋žต)
  • Query/Params : ์ž๋ฃŒ ์š”์ฒญ์„ ์œ„ํ•œ ์ฟผ๋ฆฌ(Query)์™€ ํŒŒ๋ผ๋ฏธํ„ฐ(Parameter)
  • ex) http://๋ณธ์ธip์ฃผ์†Œ:ํฌํŠธ/ํŒŒ์ผ๋ช…
์›ฐ๋…ผ ํฌํŠธ(์‚ฌํšŒ์  ์•ฝ์†, ๊ทœ๋ฒ”)
http : 80    https : 443    ssh : 22    ftp :23

์›ฐ๋…ผ ํฌํŠธ์— ํ•œํ•ด, url์— ํฌํŠธ ๋ฒˆํ˜ธ ์ƒ๋žต ๊ฐ€๋Šฅ
(์ž„์˜์˜ ๋‹ค๋ฅธ port๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ, protocol์— ๋”ฐ๋ฅธ default๋กœ ์‚ฌ์šฉ๋˜๋Š” port๋กœ ์š”์ฒญ)

์ด์™ธ์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ์ƒ๋žต ๋ถˆ๊ฐ€๋Šฅ(์ด ๊ฒฝ์šฐ ๋ฌด์กฐ๊ฑด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ž…ํ•ด ์ฃผ์–ด์•ผ ํ•จ)
(http๊ฐ€ 80์ด์ง€๋งŒ ๋‹ค๋ฅธ ํฌํŠธ ๋ฒˆํ˜ธ๋กœ ํ•œ๋‹ค๊ณ  ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ํ•˜์ง„ ์•Š์Œ, ํ•˜์ง€๋งŒ "๊ฐ€๋Šฅํ•˜๋ฉด 80์„ ์จ๋ผ" ๋ผ๋Š” ๋ถˆ๋ฌธ๋ฅ ์  ์•ฝ์†์„ ํ•œ ๊ฒƒ) - url ์ฐฝ์— ์ž…๋ ฅํ•˜๋Š” ์ˆœ๊ฐ„ ํฌํŠธ๊ฐ€ ์•ˆ ์ ํ˜€์žˆ์œผ๋ฉด ์•Œ์•„์„œ 80์„ ์ž…๋ ฅํ•˜๊ณ  ์ „์†กํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Web Root ๊ฒฝ๋กœ

์›น ๋ฃจํŠธ(Web Root)๋ž€, ์›น ์„œ๋ฒ„(Web Server)๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์œ„์น˜๋ฅผ ๋งํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ(Client)๊ฐ€ ํŒŒ์ผ์„ ์š”์ฒญํ•  ๋•Œ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น ์„œ๋ฒ„(Web Server)๊ฐ€ ์‹คํ–‰๋œ ์œ„์น˜(์›น ๋ฃจํŠธ)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์š”์ฒญ(Request)๋ฅผ ๋ณด๋‚ธ๋‹ค.

  • /var/www/ : ์ผ๋ฐ˜์ ์ธ ๊ฒฝ๋กœ

ex) apache2์˜ root ๊ฒฝ๋กœ ํ™•์ธ

์›น ์„œ๋ฒ„(Web Server)๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์œ„์ฐจ๊ฐ€ ์›น ๋ฃจํŠธ(Web Root) ๊ฒฝ๋กœ๊ฐ€ ๋˜๊ณ , ์›น ๋ฃจํŠธ ๊ฒฝ๋กœ๊ฐ€ ์–ด๋””์ธ๊ฐ€์— ๋”ฐ๋ผ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ(์š”์ฒญ ๊ฐ€๋Šฅํ•œ) ์ž๋ฃŒ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.

  • ์›น ๋ฃจํŠธ ๊ฒฝ๋กœ ๋ฐ–์˜ ํŒŒ์ผ์€ ์š”์ฒญํ•  ์ˆ˜ ์—†์Œ
ex) ์›น ๋ฃจํŠธ(Web Root) ๊ฒฝ๋กœ ๋ฐ–์˜ ํŒŒ์ผ ์š”์ฒญ ํ…Œ์ŠคํŠธ

ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์„ ๋•Œ
webBasic
โ”œ test_pic.jpeg
โ”” test_dir
    โ”” test.txt

web Root๊ฐ€ test_dir์ด๋ผ๋ฉด?
http://Ip Adress:80/test.txt ๋Š” ์ ‘๊ทผ(์š”์ฒญ)์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
ํ•˜์ง€๋งŒ! http://Ip Adress:80/../test_pic.jpeg ๋Š” ๊ฐ€๋Šฅํ•œ ๋“ฏ ๋ณด์ด์ง€๋งŒ, root ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ”๊ธฐ์— ๋ถˆ๊ฐ€๋Šฅ
(ํ…Œ์ŠคํŠธ ์‹œ cache ๋•Œ๋ฌธ์— ์ˆœ๊ฐ„์ ์œผ๋กœ ๋‚˜์˜จ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์Œ.)
๋งŒ์•ฝ Web Root ๊ฒฝ๋กœ๊ฐ€ / (๋ฃจํŠธ) ๊ฒฝ๋กœ๋ผ๋ฉด?
๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•˜์—ฌ ์š”์ฒญ ๊ฐ€๋Šฅํ•œ ์žฌ์•™์ด ๋ฐœ์ƒ(๋ชจ๋“  ์‹œ์Šคํ…œ ์ ‘๊ทผ ๊ฐ€๋Šฅ)

 

  • ๋”ฐ๋ผ์„œ ์–ด๋””๋ฅผ ๋ฃจํŠธ ๊ฒฝ๋กœ๋กœ ์‚ผ์„์ง€๊ฐ€ ์›น ๊ฐœ๋ฐœ์— ์žˆ์–ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.

์ •์  ํŽ˜์ด์ง€ vs ๋™์  ํŽ˜์ด์ง€

 

์ •์  ํŽ˜์ด์ง€ - Static

Web Server ๋Š” ์ •์  ํŽ˜์ด์ง€์ด๋‹ค.

  • ์›น ์„œ๋ฒ„๋Š” ๋‹จ์ˆœ ๋ฌด์‹ํŒŒ์ผ์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ !

 

๋™์  ํŽ˜์ด์ง€ - Dynamic

WAS : Web Application Server  - ๋™์  ํŽ˜์ด์ง€

[ - ] ๋งŒ์•ฝ?! ์„ฑ์ ํ‘œ๋ฅผ ๋‚˜๋ˆ ์ฃผ๋Š” ์›น ์„œ๋ฒ„๋ฅผ ์ œ์ž‘ ํ•œ๋‹ค๋ฉด...

ํ•™์ƒ : A, B, C ...

์›น์„œ๋ฒ„ :  A_score.txt, B_score.txt, C_score.txt. ...
ํ•™์ƒ ์ˆ˜๊ฐ€ ์ ๋‹ค๋ฉด ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅ

ํ•˜์ง€๋งŒ !
ํ•™์ƒ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง„๋‹ค๋ฉด ์žฌ์•™์ด ๋ฐœ์ƒ
๋ฌด์–ธ๊ฐ€๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ๋ฐ”๊พธ๋ ค๋ฉด ์ผ์ผ์ด ๋…ธ๊ฐ€๋‹ค๋กœ ๋ฐ”๊ฟ”์•ผํ•˜๋Š” ์ ˆ๋ง์ ์ธ ์ƒํ™ฉ์ด ์ƒ๊น€
  • ์ด์— ์ด ํŒŒ์ผ๋“ค์„ ๋‹ค์ด๋‚˜๋ฏน(Dynamic)ํ•˜๊ฒŒ ๋ฐ”๊ฟ”, ๊ทธ๋•Œ ๊ทธ๋•Œ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋„์›Œ์ฃผ๋Š” ๋™์  ํŽ˜์ด์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์›น์˜ ๋™์ž‘ ๋ฐฉ์‹(๊ตฌ์กฐ)

์›น ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ดํ•ด - Web Server vs WAS

  • Web Server - WAS - DB
    • Web Server : ํŒŒ์ผ์„ ์ œ๊ณต - ์ •์  ํŽ˜์ด์ง€/ ์ •์  ๋ฆฌ์†Œ์Šค
    • WAS : ๋™์  ํŽ˜์ด์ง€
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ request.php ๋ฅผ ์š”์ฒญํ•œ๋‹ค๋ฉด, ์›น ์„œ๋ฒ„๊ฐ€ WAS์—๊ฒŒ ๋™์ ํŽ˜์ด์ง€๋ฅผ ์—ด๋„๋ก ํ•œ๋‹ค.
    • <?php  ?> ์‚ฌ์ด์˜ ์„œ๋ฒ„์ธก ์Šคํฌ๋ฆฝํŠธ · ๋ฒก์—”๋“œ ์ฝ”๋“œ์—์„œ ์ฒ˜๋ฆฌ ํ›„, ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ , ์„œ๋ฒ„์— ์ „๋‹ฌํ•œ๋‹ค.

ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ „๋‹ฌ ๋ฐฉ์‹ - ๋ฉ”์„œ๋“œ(Method)

GET / POST

method = "GET"

  • $_GET : GET Method๋กœ ์ „๋‹ฌ๋ฐ›์€ ํŒŒ๋ผ๋ฏธํ„ฐ (์›น ์„œ๋ฒ„์— ์ž…๋ ฅ๋ฐ›์€ ํŒŒ๋ผ๋ฏธํ„ฐ)
    • ํŒŒ๋ผ๋ฏธํ„ฐ : ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ
  • GET์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ URL์—๋‹ค๊ฐ€ ๋ถ™์—ฌ์„œ ์ „๋‹ฌ
    • http://ip adress:port/get.php?name=parameter&
      • ? ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ถ„์ž
      • & ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ„์˜ ๊ตฌ๋ถ„์ž
      • name ๋ณ€์ˆ˜์—  ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ์–ด์„œ ๋ณด๋ƒ„

 

method = "POST"

  • POST๋Š” GET๊ณผ ๋‹ฌ๋ฆฌ URL์— ๋ณด์—ฌ์ฃผ์ง€ ์•Š์Œ
    • Request์˜  Body ๋ถ€๋ถ„์— ๋„ฃ์–ด์„œ ๋ณด๋ƒ„
    • URL์— ๋ณด์—ฌ์ฃผ์ง€ ์•Š์Œ์œผ๋กœ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊ธฐ๋Š” ํšจ๊ณผ
      • ex) ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€, GET์„ ์‚ฌ์šฉํ•˜๋ฉด ์ •๋ณด๊ฐ€ ๋…ธ์ถœ

์‹ค์Šต

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” 1์ฃผ์ฐจ ์‹ค์Šต

 

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” - ์‹ค์Šต 01์ฃผ์ฐจ

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋”” 1์ฃผ์ฐจ ์‹ค์Šต ์‹ค์Šต ํ™˜๊ฒฝ VMware : ๊ฐ€์ƒ ๋จธ์‹ (.ova) - VMware ์„ค์น˜ ๋ฐ ๋„คํŠธ์›Œํฌ ์„ค์ • Ubuntu 22.04.3 LTS Docker 20.10.24 Apache2 php 8.1 MySQL Termius - Termius ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ์„ค์ • VScode ์‹ค์Šต ์ค€๋น„ ์ œ๊ณต๋œ ๊ฐ€

codegear-archive.tistory.com


์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜