๐ŸŒ HTTP ํ†ต์‹ 

๐Ÿ‘พยท2021๋…„ 7์›” 26์ผ
0

HTTP

๋ชฉ๋ก ๋ณด๊ธฐ
3/4

HTTP ๋น„๋™๊ธฐ ํ†ต์‹ 

๊ฑฐ์˜ ๋ชจ๋“  ๋‚ด์šฉ ์ถœ์ฒ˜

http ํ†ต์‹ 

http์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ(์›น ๊ด€์ ์—์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ(request) ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ์ด์— ๋Œ€ํ•ด ์„œ๋ฒ„(๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ์›๊ฒฉ์ง€์˜ ์ปดํ“จํ„ฐ)๊ฐ€ ์‘๋‹ต(response) ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ response๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

  • http ํ†ต์‹ ์€ stateless.
    ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์„œ ํ†ต์‹ ์„ ์ฃผ๊ณ ๋ฐ›๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์˜ ํ†ต์‹ ์€ ๋…๋ฆฝ์ ์ด๋‹ค.
    ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. (์„œ๋กœ ์š”์ฒญํ•œ ๊ฒƒ๋“ค์„ ๊ธฐ์–ตํ•˜์ง€ ์•Š์Œ)
    ์žฅ์  : ์„ธ์…˜๊ณผ ๊ฐ™์€ ๋ณ„๋„์˜ ์ถ”๊ฐ€์ •๋ณด ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋จ, ๋‹ค์ˆ˜์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ์ƒ์˜ ์ด์ .

  • ํŒจํ‚ท
    http ํ†ต์‹ ์€ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๋ฐ›์„๋•Œ ์ •๋ณด๋“ค์„ ํŒจํ‚ท์— ๋„ฃ์–ด ๋ณด๋‚ธ๋‹ค.
    ํŒจํ‚ท์€ header/body๋กœ ์ด๋ฃจ์–ด์ง.

    • header : ๋ณด๋‚ด๋Š” ์‚ฌ๋žŒ์˜ ์ฃผ์†Œ, ๋ฐ›๋Š” ์‚ฌ๋žŒ์˜ ์ฃผ์†Œ, ํŒจํ‚ท ์ƒ๋ช…์‹œ๊ฐ„
    • body : ์‹ค์ œ ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋‚ด์šฉ

๋น„๋™๊ธฐ ํ†ต์‹ 

  • request๋ฅผ ๋ณด๋‚ด๋”๋ผ๋„ response๋ฅผ ์–ธ์ œ ๋ฐ›์•„๋„ ์ƒ๊ด€์—†์Œ.
    = response๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์œผ๋‹ˆ request๋ฅผ ๋ณด๋‚ธ thread๋Š” ๋‹ค๋ฅธ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Œ. (non block ์ƒํƒœ)
  • ๋’ค์— ์š”์ฒญํ•œ ๊ฐ’์ด ๋จผ์ € ์˜ฌ์ˆ˜๋„ ์žˆ์Œ. ๋น„๋™๊ธฐ ํ†ต์‹ ์€ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

URL & http ์š”์ฒญ ๋ฉ”์„œ๋“œ

url์„ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•จ.
URL ๊ตฌ์กฐ

http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

  • http://
    ํ”„๋กœํ† ์ฝœ. ์ผ๋ฐ˜์ ์œผ๋กœ httpํ”„๋กœํ† ์ฝœ์ด๊ฑฐ๋‚˜ ๋ณด์•ˆ์ด ์ ์šฉ๋œ ๋ฒ„์ „์ธ https.

  • www.example.com
    ๋„๋ฉ”์ธ ์ด๋ฆ„. ์–ด๋–ค ์›น์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ๋ฐ›๊ฒŒ ๋ ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • :80
    ํฌํŠธ. ์›น ์„œ๋ฒ„์ƒ์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” gate๋ฅผ ๋‚˜ํƒ€๋ƒ„. ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ถŒํ•œ์„ ์–ป๊ธฐ ์œ„ํ•ด ์›น์„œ๋ฒ„๊ฐ€ HTTP ํ”„ํ† ์ฝœ์˜ ํ‘œ์กด ํฌํŠธ(http๋Š” 80, https๋Š” 443)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ๋žต๋จ. ์•„๋‹ˆ๋ผ๋ฉด ํฌํŠธ ์ž…๋ ฅ์€ ํ•„์ˆ˜์ด๋‹ค.

  • /path/to/myfile.html
    ๊ฒฝ๋กœ. ์›น ์„œ๋ฒ„์ƒ์˜ ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ. ์ดˆ๊ธฐ ์›น์—์„œ๋Š” ์ด์™€ ๊ฐ™์€ ๊ฒฝ๋กœ๋“ค์ด ์›น ์„œ๋ฒ„์ƒ์— ์žˆ๋Š” ํŒŒ์ผ์˜ ์‹ค์ œ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒˆ์—ˆ์Œ. ํ˜„์žฌ์—๋Š” ๋Œ€๋ถ€๋ถ„ ๋ฌผ๋ฆฌ์ ์ธ ์‹ค์ œ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๊ณ  ์›น ์„œ๋ฒ„์— ์˜ํ•ด ๋‹ค๋ค„์ง€๋Š” ์ถ”์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • ?key1=value1&key2=value2
    ์ฟผ๋ฆฌ. ์›น์„œ๋ฒ„์— ์ œ๊ณต๋˜๋Š” ์ถ”๊ฐ€์ ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ. ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์€ &๋กœ ๊ตฌ๋ถ„๋˜๋Š” ํ‚ค/๊ฐ’ ์Œ์˜ ๋ชฉ๋ก์ด๋‹ค. ์›น์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์ด์ „์— ์–ด๋–ค ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์›น์„œ๋ฒ„๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ๋”ฐ๋ฅด๋Š” ์ž์‹ ๋งŒ์˜ ๊ทœ์น™์„ ๊ฐ€์ง„๋‹ค. ํŠน์ • ์›น์„œ๋ฒ„๊ฐ€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ์‹์„ ์•Œ๊ธฐ ์œ„ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์›น ์„œ๋ฒ„ ์†Œ์œ ์ž์—๊ฒŒ ์š”์ฒญํ•˜๋Š”๊ฒƒ!

  • #SomewhereInTheDocument
    anchor. ๋ฆฌ์†Œ์Šค ์ž์ฒด์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์•ต์ปค. ์•ต์ปค๋Š” ๋ฆฌ์†Œ์Šค ๋‚ด์—์„œ์˜ ๋ถ๋งˆํฌ์˜ ํ•œ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋ƒ„. ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋ถ๋งˆํฌ๋œ ์ง€์ ์— ์œ„์น˜ํ•œ ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ์‹œ๋กœ HTML ๋ฌธ์„œ ์ƒ์—์„œ ๋ธŒ๋ผ์šฐ์ €๋Š” ์—ฅ์ปค๊ฐ€ ์ •์˜๋œ ์ง€์ ์œผ๋กœ ์Šคํฌ๋กค๋œ๋‹ค. # ๋’ค์˜ ๋ถ€๋ถ„์€ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์„œ๋ฒ„์— ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š”๋‹ค.


HTTP ๋ฉ”์„ธ์ง€

  • ์š”์ฒญ

  • ์‘๋‹ต


HTTP Method

์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ์— ํŠน์ • ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์œผ๋ฉด http request method๋ฅผ ์‚ฌ์šฉ.

์ฃผ์š” ๋ฉ”์„œ๋“œ

  • GET : ์กด์žฌํ•˜๋Š” ์ž์›์— ๋Œ€ํ•œ ์š”์ฒญ
  • POST : ์ƒˆ๋กœ์šด ์ž์›์„ ์ƒ์„ฑ
  • PUT : ์กด์žฌํ•˜๋Š” ์ž์›์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ
  • DELETE : ์กด์žฌํ•˜๋Š” ์ž์›์— ๋Œ€ํ•œ ์‚ญ์ œ

0๊ฐœ์˜ ๋Œ“๊ธ€