Studying๐Ÿ’จ

CodeStates - ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ดํ•ด

hae02y 2023. 5. 23. 23:42
๋ฐ˜์‘ํ˜•

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜?

1. Native-Application : ํŠน์ • ์‹คํ–‰ํ™˜๊ฒฝ์— ์ข…์†๋˜์–ด ๊ฐœ๋ฐœ๋œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜. ๋น ๋ฅด๊ณ  ์ธํ„ฐ๋„ท์—†์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์„ค์น˜๋œ ๊ธฐ๊ธฐ์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ์šฉ์ดํ•˜๊ณ  ์•ˆ์ „ํ•˜์ง€๋งŒ, ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•˜๋ฉฐ, ์—…๋ฐ์ดํŠธ๊ฐ€ ํž˜๋“ค๋‹ค.

2. Web-Application : ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ, ์„ค์น˜๋‚˜ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํ•„์š”์—†๊ณ , ์—…๋ฐ์ดํŠธ๊ฐ€ ํŽธ๋ฆฌํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ด ๊ฐ„ํŽธํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ธํ„ฐ๋„ท์—†์ด ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ์†๋„๊ฐ€ ๋Š๋ฆฌ๋ฉฐ, ๋ณด์•ˆ์ƒ ์œ„ํ—˜์„ฑ์ด ์žˆ๊ณ  ์ ‘๊ทผ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

 

 

TCP/IP Protocol

ํ”„๋กœํ† ์ฝœ์€ ๊ณตํ†ต๋œ ๊ทœ์•ฝ์ด๋‹ค. ์ด์ค‘์— TCP/IP๋Š” 4๊ณ„์ธต๋ชจ๋ธ์ด ์žˆ์œผ๋ฉฐ IPํ”„๋กœํ† ์ฝœ์„ ๊ฒฝ์šฐ ๋น„์—ฐ๊ฒฐ์„ฑ๊ณผ ๋น„์‹ ๋ขฐ์„ฑ์˜ ํ•œ๊ณ„๋กœ ํŒจํ‚ท์„ ๋ฐ›์ง€๋ชปํ•˜๋Š” ์ƒํ™ฉ์—๋„ ๊ทธ๋Œ€๋กœ ์ „์†ก์„ ํ•˜๊ธฐ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ์œ„ํ•ด TCP์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋œ๋‹ค. TCPํ”„๋กœํ† ์ฝœ์€ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  ํ”„๋กœํ† ์ฝœ๋กœ ์‹ ๋ขฐ์„ฑ๊ณผ ์ „์†กํ•˜๋Š” ํŒจํ‚ท์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

 

 

URL / URI

1. URI(Uniform Resource Identifier)์€ ์ธํ„ฐ๋„ท์ƒ์˜ ๋ฆฌ์†Œ์Šค "์ž์› ์ž์ฒด"๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด ์‹œํ€€์Šค์ด๋‹ค.

2. URL(Uniform Resource Locator)๋Š” ๋„คํŠธ์›Œํฌ์ƒ์— ํ†ตํ•ฉ ์ž์›์˜ "์œ„์น˜"๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๊ทœ์•ฝ์ด๋‹ค. 

 

ex)

naver.com > URI

https://www.naver.com > URL, URI

์ฆ‰ ์ง€๊ธˆ ์ดํŽ˜์ด์ง€์˜ ์ฃผ์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•˜์ž๋ฉด ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ตฌ๋ถ„ํ• ์ˆ˜์žˆ๋‹ค. 

 

HTTP !

HTTP ์š”์ฒญ๋ฉ”์„œ๋“œ

๋ฉ”์„œ๋“œ ๊ธฐ๋Šฅ
GET ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ ํ‘œ์‹œ๋ฅผ ์š”์ฒญ, GET์„ ์‚ฌ์šฉํ•˜๋Š” ์š”์ฒญ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ธฐ๋งŒ ํ•œ๋‹ค.
HEAD GET๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ์‘๋‹ต์„ ์š”๊ตฌํ•˜์ง€๋งŒ, ์‘๋‹ต๋ณธ๋ฌธ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
POST ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ œ์ถœํ• ๋•Œ ์“ฐ์ธ๋‹ค.
PUT ๋ชฉ์  ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  ํ˜„์žฌํ‘œ์‹œ๋ฅผ ์š”์ฒญ payload๋กœ ๋ฐ”๊พผ๋‹ค.
DELETE ํŠน์ • ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
CONNECT ๋ชฉ์  ๋ฆฌ์†Œ์Šค๋กœ ์‹๋ณ„๋˜๋Š” ์„œ๋ฒ„๋กœ์˜ ํ„ฐ๋„์„ ๋งบ๋Š”๋‹ค.
OPTIONS ๋ชฉ์  ๋ฆฌ์†Œ์Šค์˜ ํ†ต์‹ ์„ ์„ค์ •ํ•˜๋Š”๋ฐ ์“ฐ์ธ๋‹ค.
TRACE ๋ชฉ์  ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋ฉ”์„ธ์ง€ loop-backํ…Œ์ŠคํŠธ๋ฅผ ํ•œ๋‹ค.
PATH ๋ฆฌ์†Œ์Šค์˜ ๋ถ€๋ถ„๋งŒ์„ ์ˆ˜์ •ํ•˜๋Š”๋ฐ ์“ฐ์ธ๋‹ค.

 

HTTP์˜ ๋ฌด์ƒํƒœ์„ฑ์ด๋ž€?

HTTP์˜ ๋ฌด์ƒํƒœ์„ฑ(Stateless)๋Š” ์ƒํƒœ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. HTTP๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ์„ ์ฃผ๊ณ ๋ฐ›์„๋•Œ HHTP๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๋Š”๊ฒƒ์ด๋‹ค. HTTP๋Š” ํ†ต์‹ ๊ทœ์•ฝ์ผ๋ฟ, ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋งŒ์•ฝ ์ƒํƒœ์˜ ์ €์žฅ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ์ฟ ํ‚ค, ์„ธ์…˜, API ๋“ฑ์œผ๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

 

 

HTTP ์ƒํƒœ์ฝ”๋“œ

์ƒํƒœ์ฝ”๋“œ๋Š” ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ์˜ ์ˆซ์ž์— ๋”ฐ๋ผ 100~ 500๋ฒˆ๋Œ€ ๊นŒ์ง€ 5๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

  • 1XX : Informational(์ •๋ณด ์ œ๊ณต)
    • ์ž„์‹œ ์‘๋‹ต์œผ๋กœ ํ˜„์žฌ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๊นŒ์ง€๋Š” ์ฒ˜๋ฆฌ๋˜์—ˆ์œผ๋ฉฐ, ๊ณ„์† ์ง„ํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.
  • 2XX : Success(์„ฑ๊ณต)
    • ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์„œ๋ฒ„์— ์ •์ƒ์ ์œผ๋กœ ์ „๋‹ฌ๋˜์—ˆ์œผ๋ฉฐ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
  • 3XX : Redirection(๋ฆฌ๋‹ค์ด๋ ‰์…˜)
    • ์™„์ „ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€ ๋™์ž‘์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์„œ๋ฒ„์˜ ์ฃผ์†Œ ๋˜๋Š” ์š”์ฒญํ•œ URI์˜ ์›น๋ฌธ์„œ๊ฐ€ ์ด๋™๋˜์—ˆ์œผ๋‹ˆ ๊ทธ ์ฃผ์†Œ๋กœ ์žฌ์‹œ๋„ ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.
  • 4XX : Client Error(ํด๋ผ์ด์–ธํŠธ ์—๋Ÿฌ)
    • ์—†๋Š” ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญ ํ•˜๋Š” ๋“ฑ์˜ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ๋ฉ”์„ธ์ง€ ๋‚ด์šฉ์ด ์ž˜๋ชป๋œ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • 5XX : Server Error(์„œ๋ฒ„ ์—๋Ÿฌ)
    • ์„œ๋ฒ„์˜ ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์„œ๋ฒ„์˜ ๋ถ€ํ•˜, DB์—๋Ÿฌ ๋“ฑ์˜ ์„œ๋ฒ„์—์„œ Exception์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ƒํƒœ ์ฝ”๋“œ

2XX : success

์ƒํƒœ์ฝ”๋“œ ํ…์ŠคํŠธ ํ•œ๊ตญ์–ด ์˜๋ฏธ
200 Ok ์„ฑ๊ณต - ์„œ๋ฒ„๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์˜€์Œ์„ ์˜๋ฏธ
201 Created ์ƒ์„ฑ - ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜์–ด ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋จ.
- ์‘๋‹ตํ—ค๋” Location์— ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค์˜ ์ ˆ๋Œ€ URI๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.
202 Accepted ํ—ˆ์šฉ - ์š”์ฒญ์€ ์ ‘์ˆ˜ํ•˜์˜€์ง€๋งŒ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Œ
- ์‘๋‹ตํ—ค๋”์˜ Location์„ ์ฐธ๊ณ ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

 

3XX : Redirection

์ƒํƒœ์ฝ”๋“œ ํ…์ŠคํŠธ ํ•œ๊ตญ์–ด ์˜๋ฏธ
301 Moved Permanently ์˜๊ตฌ ์ด๋™ - ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‹ค๋ฅธ URI๋กœ ์ด๋™ํ•˜์˜€๋‹ค.
- ์ด๋™ํ•  ๊ณณ์˜ ์ƒˆ๋กœ์šด URI๋Š” ์‘๋‹ตํ—ค๋” Rocation์— ๊ธฐ๋กํ•œ๋‹ค.
303 See Other ๋‹ค๋ฅธ ์œ„์น˜ ๋ณด๊ธฐ - ๋‹ค๋ฅธ์œ„์น˜๋กœ ์š”์ฒญํ•˜์„ธ์š”.
- ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ต ํ—ค๋” Location์— ํ‘œ์‹œ๋œ URI์—์„œ Get์œผ๋กœ ์ทจ๋“ํ• ์ˆ˜ ์žˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ํผ ์š”์ฒญ์„ Post๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œํ‚ฌ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์‘๋‹ต์ฝ”๋“œ์ด๋‹ค.
307 Temporary Redirect ์ž„์‹œ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ - ์ž„์‹œ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์š”์ฒญ์ด ํ•„์š”ํ•จ.
- ์š”์ฒญํ•œ URI๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ์ฑ„ ์‘๋‹ตํ—ค๋” Location์— ํ‘œ์‹œ๋œ ๋‹ค๋ฅธ URI๋กœ ์š”์ฒญ์„ ์žฌ์†ก์‹ ํ•ด์•ผํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค์Œ ์š”์ฒญ์‹œ ์›๋ž˜ ์œ„์น˜๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

4XX : Client Error

์ƒํƒœ์ฝ”๋“œ ํ…์ŠคํŠธ ํ•œ๊ตญ์–ด ์˜๋ฏธ
400 Bad Request ์ž˜๋ชป๋œ ์š”์ฒญ - ์š”์ฒญ์˜ ๊ตฌ๋ฌธ์ด ์ž˜๋ชป๋จ.
401 Unauthorized ๊ถŒํ•œ ์—†์Œ - ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์—‘์„ธ์Šค ๊ถŒํ•œ์ด ์—†๋‹ค.
- ์‘๋‹ต ํ—ค๋”์— Authenticate์— ํ•„์š”ํ•œ ์ธ์ฆ๋ฐฉ์‹์„ ์ง€์ •ํ•œ๋‹ค.
403 Forbidden ๊ธˆ์ง€๋จ - ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ๊ธˆ์ง€ ๋˜์—ˆ๋‹ค.
- 401์ธ์ฆ ์ฒ˜๋ฆฌ ์ด์™ธ์˜ ์‚ฌ์œ ๋กœ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ๊ธˆ์ง€๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
404 Not Found ์ฐพ์„์ˆ˜ ์—†์Œ - ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜์—†๋‹ค.
- ๋ฆฌ์†Œ์Šค์˜ ์กด์žฌ ์ž์ฒด๋ฅผ ์ˆจ๊ธฐ๊ณ  ์‹ถ์€๊ฒฝ์šฐ ์‚ฌ์šฉ๊ฐ€๋Šฅ

 

5XX : Server Error

์ƒํƒœ์ฝ”๋“œ ํ…์ŠคํŠธ ํ•œ๊ตญ์–ด ์˜๋ฏธ
500 Internal Server ๋‚ด๋ถ€ ์„œ๋ฒ„ ์˜ค๋ฅ˜ - ์„œ๋ฒ„์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ.
501 Not Implemented ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ - ์š”์ฒญํ•œ URI์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์„œ๋ฒ„๊ฐ€ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์ง€ ์•Š์Œ
502 Bad Gateway ๋ถˆ๋Ÿ‰ ๊ฒŒ์ดํŠธ์›จ์ด - ๊ฒŒ์ดํŠธ์›จ์ด ๋˜๋Š” ํ”„๋ก์‹œ ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ฒ„๊ฐ€ ๋’ท๋‹จ์˜ ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ์ž˜๋ชป๋œ ์‘๋‹ต์„ ๋ฐ›์Œ.

 

CORS

Cross-Origin Resource Sharing ์€ ์ถœ์ฒ˜๊ฐ€ ๋‹ค๋ฅธ ์ž์›์„ ๊ณต์œ ํ•œ๋‹ค๋Š” ๋œป์œผ๋กœ, ์œ„ ๊ทธ๋ฆผ์—์„œ Protocol + Host + Port ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ๊ฐ™์œผ๋ฉด ๋™์ผ ์ถœ์ฒ˜(Origin) ๋ผ๊ณ ํ•œ๋‹ค.

 

 

more...

[ref. WellKnown Port]

[ref. how to browser work?]

[ref. MIME Type]

[ref.HTTP status Code]

 

 

 

 

๋ฐ˜์‘ํ˜•