๐Ÿผ๋ฐฑ์•ค๋“œ/HTTP

JSON(JavaScript Object Notation)์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ๋Ÿ‰์˜ DATA ๊ตํ™˜ ํ˜•์‹. ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ํฌ๋งท์œผ๋กœ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ํŒŒ์‹ฑ ๋ฐ ์ƒ์„ฑ์ด ์šฉ์ดํ•˜๋‹ค. JSON์€ ๋ฐ์ดํ„ฐ ํฌ๋งท์ผ ๋ฟ์ด๋ฉฐ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํ‘œํ˜„๋ฐฉ๋ฒ•์ด๋‹ค. JSON์˜ ํŠน์ง• ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ JSON ๋ฌธ์„œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ๋„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ์ข…์†๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด์—์„œ JSON ํฌ๋งท์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. XML๊ณผ ๋‹ค๋ฅธ์ ? ์šฐ๋ฆฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ• ์ค‘ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด XML์ด๋‹ค. XML์€ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. John 30 JSON์€ ์ค‘๊ด„..
์บ์‹œ ๊ธฐ๋ณธ ๋™์ž‘ 1.1M(ํ—ค๋”+๋ฐ”๋””)๊ฐ€ ์ „์†ก๋จ. ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญํ•œ ๋‚ด์šฉ์„ ๋ณด๊ณ  ์„œ๋ฒ„๊ฐ€ ์‹ค์ œ ์ด๋ฏธ์ง€์™€ ๊ด€๋ จ๋œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ์‘๋‹ต์„ ๋‚ด๋ฆฐ๋‹ค. ๋˜ ๋‹ค์‹œ ์š”์ฒญํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ์ฒ˜๋Ÿผ ๋˜‘๊ฐ™์ด 1.1MB์˜ ์‘๋‹ต์„ ๋ณด๋‚ด๊ฒŒ ๋˜๊ณ  ์บ์‹œ๊ฐ€ ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„๋„ ๊ณ„์† ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๋˜‘๊ฐ™์€ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์บ์‹œ๊ฐ€ ์—†์„ ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„๋„ ๊ณ„์† ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ๋Š” HDD๋“ฑ์— ๋น„ํ•ด์„œ ์ƒ๋Œ€์ ์œผ๋กœ ๋งค์šฐ ๋Š๋ฆฌ๊ณ  ๋น„์‹ธ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค. ๋Š๋ฆฐ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์บ์‹œ๋ฅผ ์ ์šฉํ•œ๋‹ค๋ฉด ์ฒ˜์Œ ์š”์ฒญํ–ˆ์„ ๋•Œ ์บ์‹œ๊ฐ€ ์œ ํšจํ•œ ์‹œ๊ฐ„์„ cache-control์— ์„ค์ •ํ•ด์„œ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €์—๋Š” ์บ์‹œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด ์žˆ์–ด์„œ ์œ ํšจํ•œ ์‹œ๊ฐ„๋งŒํผ ์‘๋‹ต ..
HTTP ํ—ค๋” ์ •์˜ ํ—ค๋” ํ•„๋“œ๋Š” field-name + “:” + OWS + field-value + OWS๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. (OWS = ๋„์–ด์“ฐ๊ธฐ ํ—ˆ์šฉ) field-name์—๋Š” ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์ด ์—†๋‹ค. ๋…ธ๋ž€์นธ์ด ํ—ค๋”๋ถ€๋ถ„์ด๋‹ค. ์šฉ๋„ HTTP ์ „์†ก์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ถ€๊ฐ€ ์ •๋ณด ex) ๋ฉ”์‹œ์ง€ ๋ฐ”๋”” ๋‚ด์šฉ, ๋ฉ”์‹œ์ง€ ๋ฐ”๋”” ํฌ๊ธฐ, ์••์ถ•, ์ธ์ฆ, ์š”์ฒญ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„์ •๋ณด, ์บ์‹œ๊ด€๋ฆฌ์ •๋ณด ํ‘œ์ค€ํ—ค๋”๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค. ํ•„์š”์‹œ ์ž„์˜์˜ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณผ๊ฑฐ - RFC2616 1. HTTP ํ—ค๋” ํ—ค๋” ๋ถ„๋ฅ˜ General Header = ๋ฉ”์‹œ์ง€ ์ „์ฒด์— ์ ์šฉ๋˜๋Š” ์ •๋ณดex) Connection: close Request Header = ์š”์ฒญ ์ •๋ณด ex) User-Agent: Mozilla/5.0 (Macintosh; ..) Resp..
1. HTTP ์ƒํƒœ ์ฝ”๋“œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ(request)์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ์‘๋‹ต(response)์—์„œ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ 1xx (Informational): ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ์ค‘ 2xx (Successful): ์š”์ฒญ ์ •์ƒ ์ฒ˜๋ฆฌ 3xx (Redirection): ์š”์ฒญ์™„๋ฃŒ ์œ„ํ•ด ์ถ”๊ฐ€ ํ–‰๋™ ํ•„์š” 4xx (Client Error): ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜ 5xx (Server Error): ์„œ๋ฒ„ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์ค‘,์ •์ƒ,์ถ”๊ฐ€ํ–‰๋™,ํด๋ผ์ด์–ธํŠธ,์„œ๋ฒ„ ์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋ฅด๋Š” ์ƒํƒœ์ฝ”๋“œ๊ฐ€ ์ƒ๊ธด๊ฒฝ์šฐ ์•Œ์•„๋ณด์ž. 299 ๊ฐ€ ๋‚˜์™”๋‹ค๋ฉด → 2xx ์ด๋ฏ€๋กœ Successful 599 ๊ฐ€ ๋‚˜์™”๋‹ค๋ฉด → 5xx ์ด๋ฏ€๋กœ Server Error ํด๋ผ์ด์–ธํŠธ๋Š” ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์œผ๋ฉด, ์ƒ์œ„ ์ƒํƒœ ์ฝ”๋“œ๋กœ ํ•ด์„ํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. ex) 299๋ชจ๋ฅด๋‹ˆ..
์ „๋‹ฌ ๋ฐฉ์‹ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹์€ ํฌ๊ฒŒ 2๊ฐ€์ง€์ด๋‹ค. 1. ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก GET ์ฃผ๋กœ ๊ฒ€์ƒ‰์–ด๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ ์ •๋ ฌ ์กฐ๊ฑด์„ ๋„ฃ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. 2. ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก POST, PUT, PATCH ํšŒ์› ๊ฐ€์ž…, ์ฃผ๋ฌธ, ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ๋ฆฌ์†Œ์Šค ๋ณ€๊ฒฝ์— ์‚ฌ์šฉํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†กํ•˜๋Š” ์ƒํ™ฉ์—๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ •์  ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋™์  ๋ฐ์ดํ„ฐ ์กฐํšŒ HTML Form์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก HTTP API๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก 1. ์ •์  ๋ฐ์ดํ„ฐ ์กฐํšŒ - ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฏธ์‚ฌ์šฉ ์ด๋ฏธ์ง€, ์ •์  ํ…์ŠคํŠธ ๋ฌธ์„œ ์ „๋‹ฌ GET ์‚ฌ์šฉ ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ์—†์ด ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์กฐํšŒ ๊ฐ€๋Šฅ ํด๋ผ์ด์–ธํŠธ์—์„œ “๋ณ„” ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋‚ด๋ฉด ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”์—†๋‹ค. URI ๊ฒฝ๋กœ๋งŒ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ถ”๊ฐ€์ ์ธ ๋ฐ..
HTTP API ๋ฉ”์„œ๋“œ ์š”๊ตฌ์‚ฌํ•ญ ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ ํšŒ์› ์กฐํšŒ ํšŒ์› ๋“ฑ๋ก ํšŒ์› ์ˆ˜์ • ํšŒ์› ์‚ญ์ œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. API URL ์„ค๊ณ„ ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ → /read-member-list ํšŒ์› ์กฐํšŒ → /read-member-by-id ํšŒ์› ๋“ฑ๋ก → /create-member ํšŒ์› ์ˆ˜์ • → /update-member ํšŒ์› ์‚ญ์ œ → /delete-member ํ•˜์ง€๋งŒ, ์ด๋Š” ์ข‹์€ ์„ค๊ณ„๊ฐ€ ์•„๋‹ˆ๋‹ค. URI์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ด๋‹ค. ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๋ฆฌ์†Œ์Šค๋ž€? ํšŒ์›์„ ๋“ฑ๋ก,์ˆ˜์ •,์กฐํšŒ ํ•˜๋Š”๊ฒƒ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” “ํšŒ์›” ๊ทธ ์ž์ฒด๊ฐ€ ๋ฆฌ์†Œ์Šค์ด๋‹ค. ๊ณ„์ธต ๊ตฌ์กฐ ์ƒ์œ„๋ฅผ ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ณด๊ณ  ๋ณต์ˆ˜ ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ex) members ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ → /members ํšŒ์› ์กฐ..
1. HTTP protocol HyperText Transfer Protocol ์•ž์—์„œ ๋งํ•œ TCP/IP๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ, ํด๋ผ์ด์–ธํŠธ์˜ ์š”๊ตฌ์— ๋งž๋Š” ์„œ๋ฒ„๊ฐ€ ์ž‘์—…์„ ํ•œ๋‹ค. HTTP๋Š” TCP/IPํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ”„๋กœํ† ์ฝœ. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ HTTP์š”์ฒญ ๋ฐ ์‘๋‹ต์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. HTTP๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ „์†กํ•œ๋‹ค. ์„œ๋ฒ„ ๊ฐ„์— ํ†ต์‹ ํ•  ๋•Œ๋„ TCP๋ฅผ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ๋Œ€๋ถ€๋ถ„ HTTP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 1-1) HTTP ์—ญ์‚ฌ HTTP/0.9 1991๋…„: GET ๋ฉ”์„œ๋“œ๋งŒ ์ง€์›, HTTP ํ—ค๋”X HTTP/1.0 1996๋…„: ๋ฉ”์„œ๋“œ, ํ—ค๋” ์ถ”๊ฐ€ HTTP/1.1 1997๋…„: ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ, ์šฐ๋ฆฌ์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฒ„์ „ RFC2068 (1997) -> RFC2616 (1999) -> RFC7..
1. URI URI?URL?URN? ๊ฐœ๋…์„ ํ™•์‹คํžˆ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” URI์•ˆ์— URL, URN์ด ์กด์žฌํ•œ๋‹ค. URI ์ž์›์ด ์–ด๋””์— ์žˆ๋Š”์ง€ ์ž์› ์ž์ฒด๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. location์ด๋‚˜ name ํ˜น์€ ๋‘˜ ๋‹ค ์ถ”๊ฐ€๋กœ ๋ถ„๋ฅ˜๋  ์ˆ˜ ์žˆ๋‹ค. Uniform - ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ํ†ต์ผ๋œ ๋ฐฉ์‹ Resource - ์ž์›, URI๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ(์ œํ•œ ์—†์Œ) ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ํŒŒ์ผ๋งŒ ๋œปํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๊ตํ†ต์ •๋ณด ๋“ฑ ์šฐ๋ฆฌ๊ฐ€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋ชจ๋“  ๊ฒƒ์ด ๋ฆฌ์†Œ์Šค์ด๋‹ค. Identifier - ๋‹ค๋ฅธ ํ•ญ๋ชฉ๊ณผ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ •๋ณด URL(Location) ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ๋œปํ•œ๋‹ค. URN(Name) ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์„ ์˜๋ฏธํ•œ๋‹ค. URN์˜ ๊ฒฝ์šฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ด๋ฆ„์— ๋งคํ•‘๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฆ„์œผ๋กœ ..
๊ณ„๋ž€์†Œ๋…„
'๐Ÿผ๋ฐฑ์•ค๋“œ/HTTP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก