[ Node.js ์ž…๋ฌธ์ฃผ์ฐจ1 (1-3)] ์›น๊ณผ HTTP์˜ ๋™์ž‘ ๋ฐฉ์‹

2023. 8. 25. 15:51ใ†3. Node.js

์›น ๋ธŒ๋ผ์šฐ์ €์˜ ํ†ต์‹  ๋ฐฉ์‹

 

1) ์›น๋ธŒ๋ผ์šฐ์ €๋ž€?

์›น ๋ธŒ๋ผ์šฐ์ €(Web Browser)๋Š” ์ธํ„ฐ๋„ท ์ƒ์˜ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ณ  ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์˜€์„๋•Œ, HTML, CSS, JavaScript ํŒŒ์ผ์„ ์ „๋‹ฌ๋ฐ›์•„ ์ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์šฐ๋ฆฌ์˜ ๋ˆˆ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์ •์ ์ธ(Static)ํŒŒ์ผ ๋™์ ์ธ(Dynamic) ์ •๋ณด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ, ์ •์  ์›น ํŽ˜์ด์ง€๋Š” ์„œ๋ฒ„์—์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†ก๋˜๋Š” ๊ทธ๋Œ€๋กœ ํ‘œ์‹œ๋˜์ง€๋งŒ, ๋™์  ์›น ํŽ˜์ด์ง€๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‚ด์šฉ์„ ์ƒ์„ฑ ๋˜๋Š” ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

2) ๋ธŒ๋ผ์šฐ์ €์˜ ํ†ต์‹  ๋ฐฉ์‹
๋ธŒ๋ผ์šฐ์ €์˜ ํ†ต์‹  ๋ฐฉ์‹์€ ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1๏ธโƒฃ ์‚ฌ์šฉ์ž๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ์ฐฝ์— URL์„ ์ž…๋ ฅ
2๏ธโƒฃ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์ž…๋ ฅ๋ฐ›์€ URL์„ DNS ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜์—ฌ ํ•ด๋‹น IP ์ฃผ์†Œ๋ฅผ ์ฐพ๋Š”๋‹ค.
3๏ธโƒฃ DNS ์„œ๋ฒ„๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์„ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜
4๏ธโƒฃ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ด๋‹น IP ์ฃผ์†Œ๋กœ HTTP ์š”์ฒญ์„ ์ „๋‹ฌ
5๏ธโƒฃ IP ์ฃผ์†Œ์— ์—ฐ๊ฒฐ๋œ ์›น ์„œ๋ฒ„๋Š” ์š”์ฒญ(Request)์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌ
6๏ธโƒฃ ์›น ์„œ๋ฒ„๋Š” ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ HTTP Response๋กœ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ „๋‹ฌ
7๏ธโƒฃ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ HTTP Response์„ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ

 

3) ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ์ฐฝ์— URL ์ž…๋ ฅํ•˜๊ธฐ

URL(Uniform Resource Locator)์€ ์ธํ„ฐ๋„ท(Internet)์ƒ์˜ ๋ฆฌ์†Œ์Šค ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. ( = ์ธํ„ฐ๋„ท ์ƒ์˜ ์ฃผ์†Œ)

URL์€ ‘<ํ”„๋กœํ† ์ฝœ>://<๋„๋ฉ”์ธ ๋ช…>:<ํฌํŠธ>/<๊ฒฝ๋กœ>’์˜ ๊ตฌ์กฐ

์˜ˆ๋ฅผ ๋“ค์–ด, ‘http://cafe.naver.com/joonggonara’ ๋ผ๋Š” URL์„ ๋ณด๋ฉด, ‘http’๋Š” ํ”„๋กœํ† ์ฝœ์„, ‘cafe.naver.com’์€ ‘naver.com’ ์ด๋ผ๋Š” ๋ฉ”์ธ ๋„๋ฉ”์ธ ๋ช…๊ณผ ‘cafe’๋ผ๋Š” ์„œ๋ธŒ ๋„๋ฉ”์ธ ๋ช…์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ‘joonggonara’๋Š” ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ์ค‘๊ณ ๋‚˜๋ผ ๋ผ๋Š” ์นดํŽ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ด.

 

 

4) DNS๋กœ ์กฐํšŒํ•˜๊ธฐ

DNS(Domain Name Service)๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ค‘๊ฐœํ•˜์—ฌ, IP๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต. ์ธํ„ฐ๋„ท์ƒ์˜ ์—ฐ๋ฝ์ฒ˜์™€ ๊ฐ™๋‹ค.

 

Naver ํ”Œ๋žซํผ์˜ ๋ธ”๋กœ๊ทธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ‘blog.naver.com’ ์ฃผ์†Œ์™€ ๊ฐ™์ด ์˜์–ด, ์ˆซ์ž, ํŠน์ˆ˜๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ URL์„ ์ž…๋ ฅํ•˜๊ฒŒ๋˜๋Š”๋ฐ, ํ•ด๋‹นํ•˜๋Š” URL์„ IP๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ DNS(Domain Name Service)๋ผ๊ณ  ๋ถ€๋ฅด๊ฒŒ๋œ๋‹ค.

 

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

 

 

5) IP๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ

IP(Internet Protocol)๋Š” ๊ฐ๊ฐ์˜ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์žฅ์น˜๋“ค์ด ๊ณ ์œ ํ•œ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ ์ธํ„ฐ๋„ท ์ƒ์— ์กด์žฌํ•˜๋Š” ํ•ด๋‹นํ•˜๋Š” ์žฅ์น˜์˜ ์œ„์น˜๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

 

์ถœ์ฒ˜: https://ํ•œ๊ตญ์ธํ„ฐ๋„ท์ •๋ณด์„ผํ„ฐ.ํ•œ๊ตญ

 

์ธํ„ฐ๋„ท์ด ์ฒ˜์Œ ์„ธ์ƒ์— ๋‚˜์™”์„ ๋•Œ, ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๊ณ ์œ ํ•œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด 32๋น„ํŠธ(8๋น„ํŠธ 4๊ทธ๋ฃน, ์•ฝ 43์–ต ๊ฐœ)์˜ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” IPv4์ฒด๊ณ„๊ฐ€ ๋„์ž….

ํ•˜์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉฐ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜๋Š” ๊ธฐ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด์„œ IPv4 ์ฃผ์†Œ๊ฐ€ ๋ถ€์กฑํ•ด์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. ์›๋ž˜๋Š” ์ฃผ๋กœ ๋ฐ์Šคํฌํƒ‘๋งŒ์ด ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜์—ˆ์ง€๋งŒ, ์Šค๋งˆํŠธํฐ, IoT ๊ธฐ๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋“ค์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ IP ์ฃผ์†Œ๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๊ธฐ๊ฐ€ ํฌ๊ฒŒ ๋Š˜์–ด๋‚จ.

Ipv4์—์„œ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ๊ฐ€ ์ดˆ๊ณผํ•  ์กฐ์ง์ด ๋ณด์ด์ž, ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 128๋น„ํŠธ(16๋น„ํŠธ 8๊ทธ๋ฃน)๋ฅผ ๊ฐ€์ง„, ์•ฝ 3.4x10^38๊ฐœ์˜ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ์ฒด๊ณ„์ธ IPv6๊ฐ€ ๋„์ž…๋˜์—ˆ๋‹ค. Ipv6๋Š” ๋‹จ์ˆœํžˆ ์ฃผ์†Œ์˜ ํ™•์žฅ๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋” ๋‚˜์€ ํ™•์žฅ์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 


HTTP์˜ ์ดํ•ด

 

1) HTTP๋ž€?

๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์–‘์‹์„ ์ •์˜ํ•œ "ํ†ต์‹  ๊ทœ์•ฝ"์ค‘ ํ•˜๋‚˜ (ํ†ต์‹  ๊ทœ์•ฝ: Protocol)

* ํ†ต์‹ ๊ทœ์•ฝ : ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„๋•Œ ์ •ํ•ด๋‘” ์•ฝ์†

* HTTPS๋Š”?

HTTP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์˜ ์•ˆ์ „์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์•”ํ˜ธํ™” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ๋กœ ์ตœ๊ทผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋Œ€๋‹ค์ˆ˜์˜ ์‚ฌ์ดํŠธ๋Š” HTTPS๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

๊ธฐ์กด HTTP์™€ ๋‹ฌ๋ฆฌ, HTTPS๋Š” ์ •๋ณด๋ฅผ ‘๋น„๋ฐ€ ์ฝ”๋“œ’์ฒ˜๋Ÿผ ๋งŒ๋“ค์–ด ์ „์†กํ•˜๊ฒŒ ๋œ๋‹ค.

 

2) ์–ด๋–ป๊ฒŒ HTTP๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„๊นŒ?

HTTP์—์„œ๋Š” ์–ธ์ œ๋‚˜ ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response)์ด๋ผ๋Š” ๊ฐœ๋…์ด ์กด์žฌ.

 

๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์—๊ฒŒ ์ž์‹ ์ด ์›ํ•˜๋Š” ํŽ˜์ด์ง€(URL ๋“ฑ์˜ ์ •๋ณด)๋ฅผ  ์š”๊ตฌ(Request)ํ•œ๋‹ค.

์„œ๋ฒ„๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›ํ•˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜(Response)ํ•œ๋‹ค.

์—†๋‹ค๋ฉด ์—†๋Š” ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (์ผ๋ฐ˜์ ์ธ ์›น ์„œ๋ฒ„ ๊ธฐ์ค€)

๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ๋ ค์ค๋‹ˆ๋‹ค.

 

3) ๋ธŒ๋ผ์šฐ์ €์—์„œ HTTP๊ฐ€ ๋™์ž‘ํ•˜๋Š”๊ฒƒ์„ ์ง์ ‘ ํ™•์ธํ•ด๋ณด์ž.

์›นํŽ˜์ด์ง€ ์–ด๋””๋“  ์ ‘์† -> ๋ธŒ๋ผ์šฐ์ €์—์„œ F12 ํ˜น์€ โŒ˜ + โŒฅ + i๋ฅผ ๋ˆ„๋ฅด๋ฉด DevTool ํ˜น์€ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๊ฐ€ ๋œฌ๋‹ค.

[๋„คํŠธ์›Œํฌ(Network)] ํƒญ ๋งจ ์œ„์˜ ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ ํด๋ฆญ

General

๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ Request ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

Request Headers

์ด๊ฒƒ๋„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ Request ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

Response Headers

์„œ๋ฒ„๊ฐ€ ์›น ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ๋ณด๋‚ธ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ.

 

 

[Response ํƒญ] ์‚ดํŽด๋ณด๊ธฐ 

 

 

 

์„œ๋ฒ„์—์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ฐ˜ํ™˜ํ•ด์ค€ ์›น ํŽ˜์ด์ง€๋ฅผ ๊ทธ๋ ค์ฃผ๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4) ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ? ๋ฐ์ดํ„ฐ? ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฑธ๊นŒ?

Headers ํƒญ์—์„œ๋Š” ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋งŽ์ด ๋งํ–ˆ์—ˆ๊ณ , Response ํƒญ์—์„œ๋Š” ๊ทธ๋ƒฅ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋งํ–ˆ๋Š”๋ฐ, ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฑธ๊นŒ? 

 

Method ์„ค๋ช…

GET: ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์–ด๋–ค ๋ฆฌ์†Œ์Šค๋ฅผ "์–ป์„ ๋•Œ" ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฌ๋Ÿฌ๋ถ„์ด ์›น ์„œํ•‘์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฏ€๋กœ ๋ชจ๋“  ์š”์ฒญ์€ "GET" ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋ƒ„. 

POST: ์›น ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ "๊ฒŒ์‹œ"ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ผ๋ฐ˜์ . (ex. ํšŒ์›๊ฐ€์ž…, ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ, ๋Œ“๊ธ€ ์ž‘์„ฑ)

 

Header ์„ค๋ช… (์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ. ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ)

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ์›ํ•˜๋Š”์ง€

์š”์ฒญ ๋ฐ›์€ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์•˜๋Š”์ง€

์„ฑ๊ณต์ ์œผ๋กœ ์ฐพ์•˜๋Š”์ง€

์ด๋Ÿฌํ•œ ์‚ฌ๋ก€ ์™ธ์—๋„ ์•„์ฃผ ๋‹ค์–‘ํ•œ ์˜์‚ฌ ํ‘œํ˜„์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ Header ํ•„๋“œ์— ๋„ฃ๊ณ  ์ฃผ๊ณ  ๋ฐ›์Œ

 

Payload ์„ค๋ช… (๋ฐ์ดํ„ฐ. ์‹ค์งˆ์ ์ธ ๋ฐ์ดํ„ฐ)

์„œ๋ฒ„๊ฐ€ ์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ์—๋Š” ํ•ญ์ƒ Payload๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์š”์ฒญ์„ ํ•  ๋•Œ์—๋„ Payload๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  "GET method๋ฅผ ์ œ์™ธํ•˜๊ณค ๋ชจ๋‘ Payload๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค" ๋Š”๊ฒŒ HTTP์—์„œ์˜ ์•ฝ์†.

์ถ”๊ฐ€์ ์œผ๋กœ DELETE method์—์„œ Payload๋ฅผ ๋ณด๋‚ผ์ˆ˜์žˆ์ง€๋งŒ, ๋ณดํ†ต ๋งŽ์€ ๊ฒฝ์šฐ์— Payload๋ฅผ ๋ณด๋‚ด์ง€์•Š๊ณ ์žˆ๋‹ค.

 


์›น ์„œ๋ฒ„์˜ ์ดํ•ด

 

1) ์›น ์„œ๋ฒ„๋ž€?

์›น์„œ๋ฒ„๋Š” HTTP๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ตํ•ด์ฃผ๋Š” ์ปดํ“จํ„ฐ ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ

์›น์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์ •์ ์ธ ์ฝ˜ํ…์ธ (ex: HTML, CSS, ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋“ฑ)๋ฅผ ์ œ๊ณต

ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS, Web Application Server)๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์›น์„œ๋ฒ„์˜ ์ฃผ์š” ์—…๋ฌด๋Š” ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์ˆ˜ํ–‰๋ณด๋‹ค๋Š” ์š”์ฒญ๋œ ์ฝ˜ํ…์ธ ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ. ์ด๋กœ ์ธํ•ด ๋น ๋ฅด๊ฒŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์›น ์„œ๋ฒ„๋กœ๋Š” Apache, Nginx ๋“ฑ์ด ์žˆ๋‹ค. ( 2023๋…„ ๊ธฐ์ค€ ๊ธ€๋กœ๋ฒŒ์—์„œ ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Web Server๋Š” Apache๊ฐ€ ๋Œ€ํ‘œ์ ์œผ๋กœ ์‚ฌ์šฉ ๋จ. )

 

2) ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ž€?

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS, Web Application Server)๋Š” ์›น ์„œ๋ฒ„์™€ ํ˜‘๋ ฅํ•˜์—ฌ ๋™์ ์ธ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณต.

์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜, ๋ณต์žกํ•œ ๊ณ„์‚ฐ๊ณผ ๊ฐ™์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌ.

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์›น ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์•„ ์ฒ˜๋ฆฌ -> ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์›น ์„œ๋ฒ„์— ๋ฐ˜ํ™˜ -> ์ตœ์ข…์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ

๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ฑฐ๋‚˜ ๋‹ค์–‘ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์ ์ธ ๋ฐ์ดํ„ฐ๋งŒ ์ „๋‹ฌํ•˜๋Š” ์›น ์„œ๋ฒ„์— ๋น„ํ•ด ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋Š” ์ฝ˜ํ…์ธ  ์ƒ์„ฑ์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์ด ํ•„์š”ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

3) ์›น ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์˜ ํ†ต์‹  ๋ฐฉ์‹ ์ •๋ฆฌํ•˜๊ธฐ

์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด HTTP request๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ์›น ์„œ๋ฒ„์— ์š”์ฒญ ->  ์›น ์„œ๋ฒ„๋Š” ์ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ HTTP response๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์›น์‚ฌ์ดํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ „์†กํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ๋ ค๋‚ด๋Š” ์ผ์„ ํ•œ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ์„œ๋ฒ„์— ์š”์ฒญ(Request)์„ ํ•  ๋•Œ๋Š” ์ฃผ๋กœ GET Method๋กœ ์š”์ฒญํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ POST, PUT, DELETE ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ HTTP ์š”์ฒญ ๋ฉ”์„œ๋“œ๋“ค๋„ ์กด์žฌํ•œ๋‹ค. ์ด๋“ค์€ ์„œ๋ฒ„์— ๋‹ค๋ฅธ ํƒ€์ž…์˜ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.