๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป Deep Wide Programming/Server

์š”์ฒญ(Request) ์‘๋‹ต(Response) ํ๋ฆ„ ๊ณผ์ •

728x90
๋ฐ˜์‘ํ˜•

HTTP๋ž€?

Hyper Text Transfer Protocol = ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ (ํ”„๋กœํ† ์ฝœ = ๊ทœ์น™/ ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ์•”ํ˜ธ-๋Œ€ํšจ์ ์ธ ํ”„๋กœํ† ์ฝœ: TCP, IP, HTTP, FTP ๋“ฑ) 

 

๋ธŒ๋ผ์šฐ์ €๋ž€?

์›นํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ๋น„๋””์˜ค ๋“ฑ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆ˜์‹ , ์ „์†ก ๋ฐ ํ‘œํ˜„ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋‹ค. ํฌ๋กฌ, ์‚ฌํŒŒ๋ฆฌ, ์—ฃ์ง€, ํŒŒ์ด์–ดํญ์Šค ๋“ฑ์ด ๋ฐ”๋กœ ๋ธŒ๋ผ์šฐ์ €๋‹ค. 

 

์ธํ„ฐ๋„ท์ด๋ž€? 

'์ปดํ“จํ„ฐ๋“ค์ด ์—ฐ๊ฒฐ๋œ ํ†ต์‹ ๋ง'์ด๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์˜ ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ƒํ˜ธ๊ฐ„์˜ '์—ฐ๊ฒฐ'์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ์ „ ์„ธ๊ณ„ ์ปดํ“จํ„ฐ๋“ค์„ ํ•˜๋‚˜๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฑฐ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ๊ฐ€ ๊ณง ์ธํ„ฐ๋„ท์ด๋‹ค.

์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ๊ฐ€ ๊ฐ๊ฐ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ๊ตฌ์„ฑ๋œ ๋ง์„ Computer Network๋ผ๊ณ  ํ•œ๋‹ค. ์ธํ„ฐ๋„ท์€ ์ด๋Ÿฌํ•œ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ „ ์„ธ๊ณ„์ ์ธ ๊ทœ๋ชจ๋กœ ์ˆ˜์—†์ด ๋งŽ์ด ๋ชจ์—ฌ์„œ ์ด๋ฃจ์–ด์ง„ ์ผ์ข…์˜ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์‹œ์Šคํ…œ์ธ ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์ธํ„ฐ๋„ท์€ ์ˆ˜๋งŽ์€ ํด๋ผ์ด์–ธํŠธ ์ปดํ“จํ„ฐ์™€ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ ๋„คํŠธ์›Œํฌ์˜ ์ง‘ํ•ฉ์ฒด๋‹ค. 

ํŒจํ‚ท

ํŒจํ‚ท์€ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ „์†ก๋˜๋Š” ์ž‘์€ ๋‹จ์œ„๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํŒจํ‚ท ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์–ด ํ†ต์‹ ํ•˜์—ฌ ํšจ์œจ์„ ๋†’์ธ๋‹ค. ์šฐ์ฒด๊ตญ์—์„œ ํ™”๋ฌผ์„ ์ ๋‹นํ•œ ๋ฉ์–ด๋ฆฌ๋กœ ๋‚˜๋ˆ  ํ–‰์„ ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ผฌ๋ฆฌํ‘œ๋ฅผ ๋ถ™์ด๋Š”๋ฐ, ์ด ๋ฐฉ์‹์„ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์— ์ ‘๋ชฉํ•œ ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์ด๋‹ค. 

 

๋ผ์šฐํ„ฐ(๊ณต์œ ๊ธฐ)

Route = ๊ฒฝ๋กœ. router๋Š” ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์—ฌ๋Ÿฌ '๊ฒฝ๋กœ'๋“ค ๊ฐ€์šด๋ฐ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ธธ์„ ์ฐพ์•„๋‚ด๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์žฅ๋น„๋‹ค. 

ํŒจํ‚ท์˜ ๋ชฉ์ ์ง€ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ชฉ์ ์ง€๊นŒ์ง€ ํšจ์œจ์ ์œผ๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๊ทธ ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ์ „์†ก์„ ํ•˜๋Š” ๊ฒƒ์„ '๋ผ์šฐํŒ…'์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋˜ํ•œ ํ•˜๋‚˜์˜ ๊ณต์ธ IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ธฐ๊ธฐ๊ฐ€ ์ธํ„ฐ๋„ท์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ๋„คํŠธ์›Œํฌ ๊ธฐ๊ธฐ์ด๊ธฐ๋„ ํ•˜๋‹ค. 

IP์ฃผ์†Œ๋ž€

๊ฑฐ๋Œ€ํ•œ ์ธํ„ฐ๋„ท์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ ์ปดํ“จํ„ฐ์˜ ํŠน์ •ํ•œ ์ด๋ฆ„ ๋˜๋Š” ์ฃผ์†Œ๋‹ค. IP์ฃผ์†Œ๋Š” 173.194.121.32์ฒ˜๋Ÿผ ์„ธ ๊ฐœ์˜ ์ ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š” ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ๋งค๋ฒˆ ๊ธฐ์–ตํ•˜๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— 'google.com'๊ณผ ๊ฐ™์€ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค . ๊ทธ๋Ÿฌ๋‚˜ ํŒจํ‚ท์ด๋‚˜ ๋ฐ์ดํ„ฐ ๋ผ์šฐํŒ…์€ IP์ฃผ์†Œ๋ฅผ ์ด์šฉํ•˜์ง€ ๋„๋ฉ”์ธ๋„ค์ž„์„ ์ด์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. (์šฐํŽธ์ด ์šฐ๋ฆฌ์ง‘ ์ฃผ์†Œ๋ฅผ ๋ณด๊ณ  ๋ฐฐ์†ก๋˜์ง€, ์šฐ๋ฆฌ ์ด๋ฆ„์„ ๋ณด๊ณ  ๋ฐฐ์†ก๋˜๋Š”๊ฒŒ ์•„๋‹Œ ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๋‹ค.)

 

Web Server & WAS

์›น์„œ๋ฒ„๋“ค์€ ์„œ๋ฒ„์—์„œ ์ž‘๋™ํ•˜๋ฉฐ http ์š”์ฒญ์ด ์˜ค๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๊ฐ€, http ์š”์ฒญ์ด ์˜ค๋ฉด ๊ทธ์— ๋”ฐ๋ฅธ ์ ์ ˆํ•œ ์‘๋‹ต์„ ํ•œ๋‹ค.

1) Web server :  ์ •์  Static ํŽ˜์ด์ง€ -html, css๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ๋“ค์„ ์ œ๊ณต, WAS๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ž์›์„ ์ œ๊ณต, ๋™์ ์ธ ์ฝ˜ํ…์ธ  ์ œ๊ณต์„ ์œ„ํ•œ ์š”์ฒญ ์ „๋‹ฌ(ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ WAS์— ๋ณด๋‚ด๊ณ , WAS๊ฐ€ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋‹ค์‹œ ์ „๋‹ฌํ•œ๋‹ค.) ex. Apache Server, Nginx,๋“ฑ

2) WAS(Wev Application Server) : ์ •์  + ๋™์  Dynamic ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„,

Web server + '์›น ์ปจํ…Œ์ดํ„ฐ(Web Container) 

์ถœ์ฒ˜: 10๋ถ„ ํ…Œ์ฝ”ํ†ก https://www.youtube.com/watch?v=F_vBAbjj4Pk

WAS๊ฐ€ ์ •์ , ๋™์  ์ฝ˜ํ…์ธ  ๋ชจ๋‘ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ณดํ†ต ์›น์„œ๋ฒ„์™€ WAS๋ฅผ ๋‘˜๋‹ค ์‚ฌ์šฉํ•ด ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ๋˜ ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์ค‘๋‹จ ์šด์˜์„ ๋ฐฉํ•ดํ•˜๋Š” ์žฅ์• ๋“ค์—๋„ ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 

 

๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— URL ๊ฐ’์„ ์ž…๋ ฅ์‹œ์ผฐ์„ ๋•Œ ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ๊ณผ์ •

๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด๊ณ  URL์„ ์ž…๋ ฅํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ HTTP ์š”์ฒญ์ด ์‹œ์ž‘๋œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ URL์ฃผ์†Œ์— ํ•ด๋‹นํ•˜๋Š” ๋ชฉ์ ์ง€(์›น์„œ๋ฒ„)์— ๋„์ฐฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ , ๊ทธ ๋ชฉ์ ์ง€(์›น์„œ๋ฒ„)์—์„œ ์‘๋‹ตํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๊ฒŒ ๋œ๋‹ค.

์ข€๋” ์ž์„ธํžˆ ๋งํ•ด, ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•˜๋ฉด URL์— ์ ํžŒ ๊ฐ’์„ ํŒŒ์‹ฑํ•˜๊ณ  HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค. ๋งŒ๋“ค์–ด์ง„ ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์›น ์„œ๋ฒ„๋กœ ์ „์†กํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋„คํŠธ์›Œํฌ์— ์ง์ ‘ ์†ก์ถœํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ, OS์— ์˜๋ขฐํ•ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. OS์— ์†ก์‹ ์„ ์˜๋ขฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, IP ์ฃผ์†Œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์„ ์ƒ๋Œ€๋ฅผ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ DNS(Domain Name Server)๋ฅผ ์กฐํšŒํ•ด์•ผ ํ•œ๋‹ค.

์ดํ›„, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ์›น์„œ๋ฒ„ ์ธก LAN์— ๋„์ฐฉํ•˜๋ฉด ๋ฐฉํ™”๋ฒฝ์ด ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋Š”๋ฐ, ์บ์‹œ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์›น์„œ๋ฒ„๊นŒ์ง€ ๊ฐ€์•ผํ•˜๋Š” ์ง€ ์•„๋‹Œ์ง€ ์กฐ์‚ฌํ•œ๋‹ค. ์•ก์„ธ์Šคํ•œ ํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ์„œ๋ฒ„์— ์žˆ์œผ๋ฉด ์›น์„œ๋ฒ„์— ์˜๋ขฐํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ ์ค‘ ๋‹ค์‹œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์บ์‹œ ์„œ๋ฒ„์— ์ €์žฅ๋œ๋‹ค.

์›น์„œ๋ฒ„์— ๋„์ฐฉํ•˜๋ฉด ํŒจํ‚ท์— ๋‹ด๊ธด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณต์›ํ•ด์„œ WAS์— ๋„˜๊ธด๋‹ค. WAS์€ ์š”์ฒญ ๋ฉ”์‹œ์ง€์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ต ๋ฉ”์‹œ์ง€์— ๋„ฃ์–ด ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹ค์‹œ ๋ณด๋‚ธ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์—ญ์œผ๋กœ ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ HTTP๋ฅผ ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก๋ฐ›๊ณ , ๋ Œ๋”๋ง ์—”์ง„์„ ์‚ฌ์šฉํ•ด ์ด๋ฅผ ํ…์ŠคํŠธ ๋ฐ ์ด๋ฏธ์ง€ ๋“ฑ์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ตœ์ข… ํ™”๋ฉด์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. 

 

 

 

์ฐธ๊ณ ์ž๋ฃŒ

oneroomtable.tistory.com/entry/%EC%9D%B8%ED%84%B0%EB%84%B7%EC%9D%98-%EC%9E%91%EB%8F%99-%EC%9B%90%EB%A6%AC%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C?category=883027

 

์ธํ„ฐ๋„ท์˜ ์ž‘๋™ ์›๋ฆฌ๋Š” ๋ฌด์—‡์ผ๊นŒ?

์ธํ„ฐ๋„ท์€ ์›น์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ๋กœ, ๊ฐ ์ปดํ“จํ„ฐ๊ฐ€ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ๋‹ค. ์ด๋Ÿฌํ•œ ์ธํ„ฐ๋„ท์€ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋– ํ•œ ์›๋ฆฌ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ? ์ธํ„ฐ๋„ท์˜ ์ดํ•ด

oneroomtable.tistory.com

feco.tistory.com/127

 

HTTP ์š”์ฒญ ํ๋ฆ„์˜ ์ดํ•ด (๋ฒˆ์—ญ)

Understand the Flow of a HTTP Request ๋ฅผ ๋ฒˆ์—ญํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—”ํ„ฐ ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ, ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š” ์ง€ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋Š”๊ฐ€? ์ด ์•„ํ‹ฐํด์€ ๊ฐœ๋ฐœ์ž์˜ ๊ด€์ ์—์„œ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  'HTTP ์š”

feco.tistory.com

opentutorials.org/course/3781/25116

 

Web Application Server - ์‹ค์ „์ฝ”๋”ฉ

๊ฐœ์š”  Web Application Server(์ดํ•˜ WAS)๋Š” ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋™์  ํŽ˜์ด์ง€ ์š”์ฒญ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์›น ์„œ๋ฒ„๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ฃผ๋กœ ๋™์  ํŽ˜์ด์ง€ ์ƒ์„ฑ์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ์ž‘

opentutorials.org

gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

728x90
๋ฐ˜์‘ํ˜•