5. Overview of web server architectures

[ํ•™์Šต๋ชฉํ‘œ]

์›น ์„œ๋ฒ„๋Š” WWW ์˜ ์ผ๊พผ์ด๋‹ค.

  • ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ SW, HW ์›น์„œ๋ฒ„๋ฅผ ์กฐ์‚ฌํ•œ๋‹ค.

  • HTTP ํ†ต์‹ ์„ ์ง„๋‹จํ•ด์ฃผ๋Š” ๊ฐ„๋‹จํ•œ ์›น ์„œ๋ฒ„๋ฅผ ํŽ„(Perl)๋กœ ์ž‘์„ฑํ•ด๋ณธ๋‹ค.

  • ์›น์„œ๋ฒ„๊ฐ€ HTTP ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹จ๊ณ„๋ณ„๋กœ ํ™•์ธํ•œ๋‹ค.

  • ์ดํ•ด๋ฅผ ์œ„ํ•ด ์•„ํŒŒ์น˜ ์›น ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•ด๋ณธ๋‹ค.(์˜ˆ์ œ๋กœ ํ™œ์šฉํ•œ๋‹ค.)

1) ๋‹ค์ฑ„๋กœ์šด ์›น์„œ๋ฒ„

'์›น ์„œ๋ฒ„' : ์›น์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด & ์›นํŽ˜์ด์ง€ ์ œ๊ณต์— ํŠนํ™”๋œ ์žฅ๋น„ [2๊ฐœ๋‹ค ๊ฐ€๋ฆฌํ‚จ๋‹ค.]

์›น ์„œ๋ฒ„๋Š” ๊ธฐ๋Šฅ, ํ˜•ํƒœ, ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค.

๊ธฐ๋Šฅ์ด ๋‹ค๋ฅด๋”๋ผ๋„ ๋ชจ๋“  ์›น ์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค์—๋Œ€ํ•œ HTTP ์š”์ฒญ์„ ๋ฐ›์•„์„œ ํด๋ผ์ด์–ธํŠธ์— ์ฝ˜ํ…์ธ ๋ฅผ ๋Œ๋ ค์ค€๋‹ค.

โ‘  ์›น์„œ๋ฒ„ ๊ตฌํ˜„

  • ์›น์„œ๋ฒ„๋Š” HTTP ๋ฐ ๊ด€๋ จ๋œ TCP ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

  • ์›น์„œ๋ฒ„๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๊ณ , ์›น๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์›น ์„œ๋ฒ„ ๊ด€๋ฆฌ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • ์›น์„œ๋ฒ„๋Š” TCP ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ์šด์˜์ฒด์ œ์™€ ๋‚˜๋ˆ ๊ฐ–๋Š”๋‹ค.

    [OS: ํ•˜๋“œ์›จ์–ด๊ด€๋ฆฌ, ํŒŒ์ผ์‹œ์Šคํ…œ(์›น ๋ฆฌ์†Œ์Šค ์œ ์ง€), ํ”„๋กœ์„ธ์Šค๊ด€๋ฆฌ(ํ˜„์žฌ ์—ฐ์‚ฐ ํ™œ๋™์ œ์–ด), ๋„คํŠธ์›Œํฌ์ง€์›(TCP/IP)]

  • ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ˜•ํƒœ ์˜ˆ

    • ๋‹ค๋ชฉ์  ์†Œํ”„ํŠธ์›จ์–ด ์›น์„œ๋ฒ„

      • ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ํ‘œ์ค€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ๋™์ž‘ํ•œ๋‹ค.

      • ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด: ์•„ํŒŒ์น˜, W3C์˜ ์ง์†Œ ๋“ฑ

      • ์ƒ์šฉ์†Œํ”„ํŠธ์›จ์–ด: ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ, ์•„์ดํ”Œ๋ž˜๋‹›,...

      • ๊ฑฐ์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ์™€ ์šด์˜์ฒด์ œ์—์„œ ๋™์ž‘ํ•œ๋‹ค.

      • ์›น์„œ๋ฒ„ ์‹œ์žฅ์ ์œ ์œจ: Apache, Nginx, .. ์ฐธ์กฐ

    • ์ž„๋ฒ ๋””๋“œ ์›น ์„œ๋ฒ„

      • ์ผ๋ฐ˜ ์†Œ๋น„์ž์šฉ ์ œํ’ˆ์— ๋‚ด์žฅ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ž‘์€ ์›น์„œ๋ฒ„ (์˜ˆ: ํ”„๋ฆฐํ„ฐ,๊ฐ€์ „์ œํ’ˆ)

2) ๊ฐ„๋‹จํ•œ ํŽ„ ์›น ์„œ๋ฒ„

์™„์ „ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ HTTP ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ํ• ์ผ์ด ๋งŽ๋‹ค.

์ตœ์†Œํ•œ์œผ๋กœ ๊ธฐ๋Šฅํ•˜๋Š” HTTP ์„œ๋ฒ„๋ผ๋ฉด 30์ค„ ์ดํ•˜์˜ ํŽ„(Perl) ์ฝ”๋“œ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์ฐธ์กฐ๋งํฌ: https://www.tutorialspoint.com/perl/perl_socket_programming.htm

[joe's ๊ฐ€๊ฒŒ ์‚ฌ์ดํŠธ(์ฑ…์—์žˆ๋Š” ์‚ฌ์ดํŠธ) ๋กœ ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์–ด์„œ ์œ„ ๋งํฌ๋กœ ์†Œ์ผ“ํ†ต์‹  ์‹ค์Šต ์ง„ํ–‰ํ•จ]

์™ผ์ชฝ) ์„œ๋ฒ„์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰, ์˜ค๋ฅธ์ชฝ) ํด๋ผ์ด์–ธํŠธ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™”๋ฉด

์ฐธ์กฐ๋งํฌ์— client ๋งจ ์ฒซ๋ฒˆ์งธ์ค„์— # ์ด ๋น ์ ธ์žˆ์–ด์„œ ์ด๊ฒƒ๋งŒ ์ œ๋Œ€๋กœ ํ•˜๋ฉด ์œ„์ฒ˜๋Ÿผ ํ†ต์‹ ์ด ๋˜๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

3) ์ง„์งœ ์›น ์„œ๋ฒ„๊ฐ€ ํ•˜๋Š” ์ผ

  1. ์ปค๋„ฅ์…˜์„ ๋งบ๋Š”๋‹ค - ํด๋ผ์ด์–ธํŠธ ์ ‘์†์„ ๋ฐ›์•„๋“ค์ด๊ฑฐ๋‚˜, ์›์น˜ ์•Š๋Š” ํด๋ผ์ด์–ธํŠธ๋ผ๋ฉด ๋‹ซ๋Š”๋‹ค.

  2. ์š”์ฒญ์„ ๋ฐ›๋Š”๋‹ค - HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋„คํŠธ์›Œํฌ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด๋“ค์ธ๋‹ค

  3. ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. - ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด์„ํ•˜๊ณ  ํ–‰๋™์„ ์ทจํ•œ๋‹ค.

  4. ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•œ๋‹ค. - ๋ฉ”์‹œ์ง€์— ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•œ๋‹ค.

  5. ๋ฌธ์„œ์˜ ๋ฃจํŠธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.์˜ˆ: Documentroot /usr/local/httpd/files

  6. ํŒŒ์ผ์ด ์•„๋‹Œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ์— ์–ด๋–ค ํ–‰๋™์„ ์ทจํ• ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์˜ˆ: DirectoryIndex index.html index.htm home.html ํ•˜์ง€๋งŒ ์ƒ‰์ธ๊ธฐ๋Šฅ์ด ๊บผ์ ธ์žˆ๊ฑฐ๋‚˜ ๊ธฐ๋ณธ ์ƒ‰์ธ ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด๋ถ€ ํŒŒ์ผ๋“ค์˜ ํฌ๊ธฐ, ๋ณ€๊ฒฝ์ผ, html ํŒŒ์ผ๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋‹จ, ์›์น˜์•Š๋Š” ํŒŒ์ผ ์ •๋ณด๊ฐ€ ๋“œ๋Ÿฌ๋‚  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ƒ‰์ธ ํŒŒ์ผ ์ž๋™ ์ƒ์„ฑ์„ ๋„๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.(Options-Indexed )

  7. ์‘๋‹ต์„ ๋งŒ๋“ ๋‹ค. - ์˜ฌ๋ฐ”๋ฅผ ํ—ค๋”๋ฅผ ํฌํ•จํ•œ HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

  8. ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค. - ์‘๋‹ต์„ ํด๋ผ์ด์–ธํŠธ์— ๋Œ๋ ค์ค€๋‹ค.

  9. ํŠธ๋žœ์žญ์…˜์„ ๋กœ๊ทธ๋กœ ๋‚จ๊ธด๋‹ค - ๋กœ๊ทธ ํŒŒ์ผ์— ํŠธ๋žœ์žญ์…˜ ์™„๋ฃŒ์— ๋Œ€ํ•œ ๊ธฐ๋ก์„ ๋‚จ๊ธด๋‹ค.

Last updated