[๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์ฝ”์Šค ๊ฐ•์˜] ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ_http ํ”„๋กœํ† ์ฝœ์˜ ์ดํ•ด

2020. 1. 19. 23:51ใ†๐ŸŒฑ Develop/web

** ๋ณธ ๊ฐ•์˜๋Š” ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์ฝ”์Šค์—์„œ ๋ฌด๋ฃŒ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•์ขŒ๋กœ, ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ ์ง€์‹์„ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. 

์ด๋ฒˆ ๊ฐ•์˜ ๋‚ด์šฉ์€ ํฌ๊ฒŒ http ํ”„๋กœํ† ์ฝœ์˜ ์ „๋ฐ˜์ ์ธ ์ž‘๋™ ๋ฐฉ์‹๊ณผ ์žฅ๋‹จ์ ๊ณผ ์š”์ฒญ/์‘๋‹ต ๋ฐ์ดํ„ฐ ํฌ๋งท์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค.

 

1. http๋ž€?

Hypertext Transfer Protocol์˜ ์•ฝ์ž๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ธํ„ฐ๋„ท ์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์„ ์˜๋ฏธํ•œ๋‹ค.

 

2. URL

url์€ ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์ž์›์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ํŠน์ • ์›น ์„œ๋ฒ„์˜ ํŠน์ • ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ mydrive๋ผ๋Š” ์‚ฌ์ดํŠธ์—์„œ docs๋ผ๋Š” ํด๋”์— ๋“ค์–ด ์žˆ๋Š” index.html ํŒŒ์ผ์„ ๋ณด๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜๋ฉด ์ฃผ์†Œ์ฐฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์œผ๋ฉด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

์ ‘๊ทผ ํ”„๋กœํ† ์ฝœ:// ๋ฆฌ์†Œ์Šค(์ž์›)์˜ ์„œ๋ฒ„ ip ์ฃผ์†Œ๋‚˜ ๋„๋ฉ”์ธ / ๋ฌธ์„œ ๊ฒฝ๋กœ๋ฌธ์„œ ์ด๋ฆ„

 http://www.mydrive.co.kr/docs/index.html

 

** ํฌํŠธ: ํฌํŠธ๋Š” ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์“ฐ๋Š” ๋ฐฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ์  ์ปดํ“จํ„ฐ์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์†Œํ”„ํŠธ์›จ์–ด ์„œ๋ฒ„๊ฐ€ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ฐ๊ฐ์˜ ์„œ๋ฒ„๋Š” ๊ณ ์œ ํ•œ ํฌํŠธ(port) ๊ฐ’์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค.(๊ธฐ๋ณธ ํฌํŠธ : 80)

 

2. http์˜ ์ž‘๋™ ๋ฐฉ์‹

 ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ๋ชจ๋ธ์„ ๋”ฐ๋ฅด๋ฉฐ, ์ด ๋‘˜์˜ ๊ด€๊ณ„๋Š” ๊ณ„์† ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ๋ฌด์ƒํƒœ(stateless)๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ(Request)๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ ์ž ํ•˜๊ณ , ์„œ๋ฒ„๋Š” ๊ทธ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต(Response) ๊ฐ’์„ ๋ณด๋‚ด์ฃผ์–ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„ ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

http ์ž‘๋™ ๊ณผ์ •

 

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

 

< ํด๋ผ-> ์„œ๋ฒ„: Request >

์š”์ฒญ ํ—ค๋” GET /serverlet/query?a=10&b=10
์š”์ฒญ ๋ฐ”๋”” (get์€ ๋ฐ”๋”” ์—†์ด ์š”์ฒญํ•จ)

์š”์ฒญ ํ—ค๋”์— ๋“ค์–ด๊ฐ€๋Š” ์š”์ฒญ ๋ฉ”์†Œ๋“œ ๋ฐฉ์‹์€ ๋‹ค์–‘ํ•œ๋ฐ, ์ฃผ๋กœ ๋„ค ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์ž์ฃผ ์“ฐ์ด๋ฏ€๋กœ ์•Œ์•„๋‘๋ฉด ์ข‹๋‹ค.

GET ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ธฐ (SELECT)
POST ์ •๋ณด๋ฅผ ์‚ฝ์ž…ํ•˜๊ธฐ(INSERT)
PUT ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธ ๋ฐ ์ˆ˜์ •ํ•˜๊ธฐ(UPDATE)
DELETE ์ •๋ณด๋ฅผ ์‚ญ์ œํ•˜๊ธฐ(DELETE)

 

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์„œ๋ฒ„ ์ธก์—์„œ๋Š” ํด๋ผ์˜ ์š”์ฒญ์„ ๋ฐ›์•„ ๊ฒฐ๊ณผ ๊ฐ’์„ ์‘๋‹ตํ•˜์—ฌ ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ธ๋‹ค.  ์‘๋‹ต ๊ฐ’ ๋˜ํ•œ ํ—ค๋”์™€ ๋ฐ”๋””์˜ ํ˜•์‹์„ ์ง€์ผœ์„œ ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์ฃผ๋Š”๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์‘๋‹ต ํ—ค๋”์—๋Š” http/ http ๋ฒ„์ „ ๋ช…์‹œ/ ์‘๋‹ต ์ฝ”๋“œ/์‘๋‹ต ๋ฉ”์‹œ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ , ์‘๋‹ต ๋ฐ”๋””์—๋Š” ์‹ค์งˆ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค.

 

< ์„œ๋ฒ„-> ํด๋ผ: Response >

์‘๋‹ต ํ—ค๋” HTTP/1.1 200 ok
์‘๋‹ต ๋ฐ”๋””

data /server

Content-Type/ Content-Length ๋“ฑ

๊ธฐ๋ณธ์ ์ธ ์ •๋ณด์™€ ํ•จ๊ป˜

์‹ค์งˆ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ์ •๋ณด

 

** http์™€ https ๋Š” ๋ฌด์Šจ ์ฐจ์ด?

 http๋Š” ์ธํ„ฐ๋„ท ์ƒ์—์„œ ์›น ์„œ๋ฒ„์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด์— ๋ฌธ์„œ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๊ทœ์•ฝ(protocol)์ด๊ณ , https๋Š” http์˜ ๋ณด์•ˆ ์ƒ์˜ ์ทจ์•ฝ์ ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ๋‚˜์˜จ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. 

 

http๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ๋กœ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ๋…ธ์ถœ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ณด์•ˆ ์ƒ์˜ ๋‹จ์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, http์— ์†Œ์ผ“(socket) ํ†ต์‹ ์ด ์ถ”๊ฐ€๋˜์–ด ๋‚˜์˜จ ํ”„๋กœํ† ์ฝœ์ด https์ธ ๊ฒƒ์ด๋‹ค.

https๋Š” http์™€ ๋น„์Šทํ•˜์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ํ†ต์‹ ์ด SSL์ด๋‚˜ TLS ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค๋Š” ์ ์—์„œ ๋‹ค๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ์ธ์ฆ์ด ํ•„์š”ํ•˜๋ฉฐ http๋ณด๋‹ค ๋ณด์•ˆ ๊ธฐ๋Šฅ์ด ๋” ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

[๋ถ€์ŠคํŠธ์ฝ”์Šค ๊ฐ•์˜ ๋งํฌ]

https://www.edwith.org/boostcourse-web/lecture/16661