# ๐ŸŒ ์›น์˜ ๋™์ž‘

# ๐Ÿง‘๐Ÿผโ€๐Ÿš€ ์›น์˜ ๋™์ž‘์„ ์•Œ์•„์•ผ ํ•˜๋Š” ์ด์œ 

โ—๋ฌธ์„œ์ธ ์›นํŽ˜์ด์ง€๋ฅผ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด โ—์„œ๋ฒ„์— ๋‹ค์–‘ํ•œ ์š”์ฒญ์„ ํ•˜๊ณ , ๋ฐ›์€ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด โ—๋„คํŠธ์›Œํฌ์—์„œ ์ผ์–ด๋‚œ ์—๋Ÿฌ๋ฅผ ์•Œ๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

# ๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ์ด ๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ๋‚˜๋ฉด

  • HTTP๋ผ๋Š” ์•ฝ์†๊ณผ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

# 1. ์›น ์„œ๋ฒ„์™€ ์›น ํด๋ผ์ด์–ธํŠธ

์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์— ํฌํ•จ๋œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์›น์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅํ•œ ํ–‰์œ„๋“ค์€ ์–ด๋–ป๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ํ™”๋ฉด์— ์ถœ๋ ฅ๋ ๊นŒ์š”? ํ˜„์žฌ์˜ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ชจ๋ธ์˜ ํ˜•ํƒœ๊ฐ€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๊ฐ๊ฐ client์™€ server๋ผ๋Š” ์˜๋ฏธ์˜ ์˜์–ด๊ฐ€ ์–ด์›์ž…๋‹ˆ๋‹ค. ์ฆ‰ client๊ฐ€ ์š”์ฒญ(request)ํ•˜๋ฉด server๊ฐ€ ์‘๋‹ต(response)ํ•ด์ฃผ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์›น์„œ๋ฒ„๋Š” ๋„คํŠธ์›Œํฌ์ƒ์— ๊ณต๊ฐœํ•˜๋Š” ํ•˜์ดํผํ…์ŠคํŠธ(HTML ํ˜•์‹์˜ ํŒŒ์ผ)๋ฅผ ์Œ“๊ณ , ์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๋Š” HTML ํŒŒ์ผ์„ ๊ฑด๋„ค์ฃผ๋Š” ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

# ์™œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋กœ ๋‚˜๋‰˜๋Š” ๊ฒƒ์ผ๊นŒ?

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

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

# ๊ทธ ๋ฆฌ์†Œ์Šค(html ํŒŒ์ผ์€) ์–ด๋””์„œ ์ฐพ์•„์„œ ์ฃผ๋Š” ๊ฒƒ์ผ๊นŒ? - URL

ํด๋ผ์ด์–ธํŠธ(์œ ์ €)๋Š” "์–ด๋”” ์–ด๋””์— ์žˆ๋Š” ์ด ์ฝ˜ํ…์ธ ๋ฅผ ์ฝ๊ณ  ์‹ถ๋‹ค."๋ผ๊ณ  ์ง€์ •ํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธํ„ฐ๋„ท์ƒ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ๊ฐ€ URL(Uniform Resource Locator) ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ์œ ์ €๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํŠน์ • ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•  ๋•Œ ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•˜๋Š” ๋ฌธ์ž์—ด์ด ๋ฐ”๋กœ URL์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ ์ €๊ฐ€ ์€ํ–‰์—์„œ ๋ˆ์„ ์ฐพ๋Š” ํ™”๋ฉด์„ ์ด์šฉํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

# 2. HTTP๋ผ๋Š” ์•ฝ์†

์šฐ๋ฆฌ๋Š” URL์„ ์ด์šฉํ•จ์œผ๋กœ์จ ์›น์ƒ์— ๊ณต๊ฐœ๋œ ๋‹ค์–‘ํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์›น์˜ ๊ตฌํ˜„์—๋Š” ํ•œ ๊ฐ€์ง€ ๋” ๋„˜์–ด์•ผ ํ•  ์‚ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ํ•˜์ดํผํ…์ŠคํŠธ๋ฅผ ๋น„๋กฏํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์†ก์ˆ˜์‹ ํ• ์ง€์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์—๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ปดํ“จํ„ฐ๊ฐ€ ์—ฐ๊ฒฐ๋ผ์žˆ๋Š”๋ฐ, ์›น ์„œ๋ฒ„์™€ ์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ†ต์‹ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„์ง€์— ๋Œ€ํ•œ ์•ฝ์†์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์•ฝ์†์„ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ(communication protocol) ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์›น์˜ ์ฐฝ์‹œ์ž ๋ฒ„๋„ˆ์Šค ๋ฆฌ ๋ฐ•์‚ฌ๋Š” HTML ์ „์†ก์— ์ ํ•ฉํ•œ ํ”„๋กœํ† ์ฝœ์„ ์ƒˆ๋กœ ๊ณ ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ˜„์žฌ๋„ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” HTTP (HyperText Transfer Protocol) (opens new window) ์ž…๋‹ˆ๋‹ค. HTTP๋Š” ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ์— ๋น„ํ•ด ๋งค์šฐ ๋‹จ์ˆœํ•ด์„œ ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ์‰ฝ๊ฒŒ ๋„๋ฆฌ ์ด์šฉ๋์Šต๋‹ˆ๋‹ค.

http

# 1. HTTP ์•ฝ์† ์•Œ๊ธฐ

# 1) URL(Uniform Resource Location)

์Šคํฌ๋ฆฐ์ƒท 2019-07-03 ์˜ค์ „ 9 18 14
  • URI(Uniform Resource Identifier)๋ผ๊ณ ๋„ ํ•จ.
  • URI๊ฐ€ URL๋ณด๋‹ค ๋” ์ƒ์œ„ ๊ฐœ๋…์ด์ง€๋งŒ ํ˜„์žฌ ํ˜ผ์šฉํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ. ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ดํ•ดํ•ด๋„ ๋ฌด๋ฐฉํ•จ
  • URL์€ ์Šคํ‚ด(scheme), ํ˜ธ์ŠคํŠธ๋ช…, ๊ฒฝ๋กœ๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์œ„ ์˜ˆ์—์„œ ์Šคํ‚ด์€ http, ํ˜ธ์ŠคํŠธ๋ช…์€ wooteco.com, ๊ฒฝ๋กœ๋ช…์€ webcontents/index.html์ด ๋œ๋‹ค.

# a) ์Šคํ‚ด(scheme)

์Šคํ‚ด์€ ๋ฆฌ์†Œ์Šค๋ฅผ ํš๋“ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. HTTP ์ด์™ธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • https: ์•”ํ˜ธํ™”๋œ http ํ†ต์‹ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์Šคํ‚ด
  • mailto: ์ด๋ฉ”์ผ์˜ ์ˆ˜์ทจ์ธ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์Šคํ‚ด
  • ftp: FTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•œ ํŒŒ์ผ ํš๋“์„ ๋‚˜ํƒ€๋‚ด๋Š” ์Šคํ‚ด
  • file: ํŒŒ์ผ ์‹œ์Šคํ…œ ์†์˜ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ์Šคํ‚ด

# b) ํ˜ธ์ŠคํŠธ๋ช…

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

# c) ๊ฒฝ๋กœ๋ช…

ํ˜ธ์ŠคํŠธ๋ช…์—์„œ ์ง€์ •๋œ ์ปดํ“จํ„ฐ์ƒ์˜ ๋ฆฌ์†Œ์Šค ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

www.wootecto.com/webcontents/index.html

์œ„ ๊ฒฝ๋กœ์—์„œ๋Š” webcontents ํ•˜์œ„์— ์žˆ๋Š” index.html์ด๋ผ๋Š” ํŒŒ์ผ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ URL์„ ์ด์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ -> ์ปดํ“จํ„ฐ -> ๋””๋ ‰ํ„ฐ๋ฆฌ -> ํŒŒ์ผ๋ช…๊ณผ ๊ฐ™์ด ๊ณ„์ธต์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์–ด ์ธํ„ฐ๋„ท์ƒ์—์„œ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


# 2) HTTP Request Line

request


# a) ๋ฉ”์„œ๋“œ(scheme)

์š”์ฒญ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” GET, ์ฆ‰ โ€˜URIโ€™์—์„œ ์ง€์ •ํ•œ ์ •๋ณด๋ฅผ ๋ณด๋‚ด ์ฃผ์„ธ์š”โ€™๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ์—๋Š” ๊ทธ ๋ฐ–์—๋„ ๋ช‡ ๊ฐ€์ง€๊ฐ€ ์ •์˜๋ผ ์žˆ๋Š”๋ฐ, ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น ์„œ๋ฒ„๋กœ ์†ก์‹ ๋˜๋Š” ์š”์ฒญ์˜ ๋Œ€๋ถ€๋ถ„์€ GET ๋ฉ”์„œ๋“œ์— ๋”ฐ๋ฅธ ์š”์ฒญ์ž…๋‹ˆ๋‹ค.

# b) URI(Uniform Resource Identifier)

GET๋ฉ”์„œ๋“œ๋Š” ๋‹จ์ˆœํžˆ โ€˜์ •๋ณด๋ฅผ ์ฃผ์„ธ์š”โ€™๋ผ๋Š” ์˜๋ฏธ์— ๋ถˆ๊ณผํ•˜๋ฉฐ, URI๋Š” '๋ฌด์—‡์„ ์›ํ•˜๋Š”๊ฐ€โ€™๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ผ๋‹จ์€ URL๊ณผ URI๋Š” ๊ฑฐ์˜ ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

# c) HTTP ๋ฒ„์ „

๋ฒ„์ „์— ๋”ฐ๋ผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ์˜ ์ข…๋ฅ˜์™€ ์š”์ฒญ ํ—ค๋”์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ์–ด๋–ค ๋ฒ„์ „์— ๋”ฐ๋ฅธ ์š”์ฒญ์ธ์ง€ ์ €์žฅํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘๋ฒˆ ์งธ ์ค„ ์ดํ›„์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ๋ฉ”์‹œ์ง€ ํ—ค๋”๋ผ๊ณ  ํ•˜๋ฉฐ, ์š”์ฒญ์˜ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

# d) Accept

์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋ฅผ ํ‘œ์‹œํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋Š” Content-Type์ด๋ผ๋Š” ํ˜•์‹์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” Content-Type์„ ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ Aceept ํ•„๋“œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ์›น ์„œ๋ฒ„๋Š” ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์†ก์‹ ํ•˜์ง€ ์•Š์•„๋„ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

# e) Accept-Language

์›น ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ž์—ฐ ์–ธ์–ด์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ž์—ฐ ์–ธ์–ด๋Š” ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” โ€˜en-usโ€™๋กœ ๋˜์–ด ์žˆ์Œ์œผ๋กœ ์˜์–ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

# f) User-Agent

์ด์šฉ ์ค‘์ธ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ข…๋ฅ˜์™€ ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

# g) Host

์š”์ฒญ์„ ๋ณด๋‚ธ ๊ณณ์˜ ํ˜ธ์ŠคํŠธ๋ช…๊ณผ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•œ๋‹ค.

# 3) HTTP response

resonse

# a) ์ƒํƒœ๋ผ์ธ

HTTP ์š”์ฒญ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ HTTP ์‘๋‹ต์—์„œ๋„ ์ฒซ ๋ฒˆ์งธ ์ค„์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋ฉฐ, ์ด๊ฒƒ์„ ์ƒํƒœ ๋ผ์ธ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. HTTP ์ƒํƒœ ๋ผ์ธ๋„ ๊ตฌ์„ฑ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. HTTP ๋ฒ„์ „๊ณผ ์ƒํƒœ ์ฝ”๋“œ, ์‘๋‹ต ๊ตฌ๋ฌธ์œผ๋กœ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค

image

HTTP ๋ฒ„์ „์€ ์š”์ฒญ์—์„œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์˜ ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ƒํƒœ ์ฝ”๋“œ๋กœ ์ด ๋ถ€๋ถ„์„ ๋ณด๋ฉด ์š”์ฒญ์ด ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์‹คํŒจํ–ˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 200์€ ์š”์ฒญ์ด ์„ฑ๊ณตํ•ด ์ •์ƒ์ ์ธ ์‘๋‹ต์ด ๋Œ์•„์™”์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒํƒœ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

# ๋Œ€ํ‘œ์ ์ธ HTTP status code

  • 200 - OK
  • 201 - Created
  • 302 - Found(HTTP 1.0)
  • 304 - Not Modified
  • 401 - Unauthorized
  • 404 - Not Found
  • 500 - Internal Server Error
  • 503 - Service Unavailable

  • status code ๋‹จ์œ„๋ณ„ ์˜๋ฏธ๋Š”?
    • 2XX : ์„ฑ๊ณต. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•œ ๋™์ž‘์„ ์ˆ˜์‹ ํ•˜์—ฌ ์ดํ•ดํ–ˆ๊ณ  ์Šน๋‚™ํ–ˆ์œผ๋ฉฐ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ
    • 3XX : ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์™„๋ฃŒ. ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ์„ ๋งˆ์น˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๋™์ž‘์ด ํ•„์š”ํ•จ.
    • 4XX : ์š”์ฒญ ์˜ค๋ฅ˜. ํด๋ผ์ด์–ธํŠธ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Œ
    • 5XX : ์„œ๋ฒ„ ์˜ค๋ฅ˜. ์„œ๋ฒ„๊ฐ€ ์œ ํšจํ•œ ์š”์ฒญ์„ ๋ช…๋ฐฑํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ์Œ

# b) ๋ฉ”์‹œ์ง€ ํ—ค๋”

์ƒํƒœ ๋ผ์ธ์— ์ด์–ด์„œ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๋ฉ”์‹œ์ง€ ํ—ค๋”๋กœ ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ๋นˆ ์ค„๊นŒ์ง€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ํ—ค๋”๋Š” HTTP ์š”์ฒญ์˜ ๋ฉ”์‹œ์ง€ ํ—ค๋”์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ, ์‘๋‹ต์— ๊ด€ํ•œ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค.

# c) ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ์žˆ๋Š” HTML์„ ํ•ด์„ํ•ด ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. HTML์€ ํ…์ŠคํŠธ ํ˜•์‹์ด๋ฏ€๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ์ €์žฅ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ GIF๋‚˜ JPEG ํ˜•์‹์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์š”์ฒญํ–ˆ์„ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ทธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

# 4) HTTP method

์ฃผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” GET๊ณผ POST์ž…๋‹ˆ๋‹ค.

GET์€ Select ์ ์ธ ์„ฑํ–ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. GET์€ ์„œ๋ฒ„์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ณด์—ฌ์ค€๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์šฉ๋„์ด์ง€ ์„œ๋ฒ„์˜ ๊ฐ’์ด๋‚˜ ์ƒํƒœ ๋“ฑ์„ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œํŒ์˜ ๋ฆฌ์ŠคํŠธ๋ผ๋˜์ง€ ๊ธ€ ๋ณด๊ธฐ ๊ธฐ๋Šฅ ๊ฐ™์€ ๊ฒƒ์ด ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

POST๋Š” ์„œ๋ฒ„์˜ ๊ฐ’์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธ€์“ฐ๊ธฐ๋ฅผ ํ•˜๋ฉด ๊ธ€์˜ ๋‚ด์šฉ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ์ด ๋˜๊ณ  ์ˆ˜์ •์„ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ’์ด ์ˆ˜์ •์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ์— POST๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

# ๐Ÿ“˜ ์ •๋ฆฌ

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

# ๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ