[TIL]231212_์ธ์ฆvs์ธ๊ฐ€

ใ…‡ใ…–ใ…ˆใ…ฃยท2023๋…„ 12์›” 12์ผ
1

Today I Learned

๋ชฉ๋ก ๋ณด๊ธฐ
41/93
post-thumbnail

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Today Learn

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1๋ฌธ์ œ
  • ์ฃผํŠน๊ธฐํ”Œ๋Ÿฌ์Šค ๊ฐ•์˜

๐Ÿ’ก ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ

์ธ์ฆ(Authentication) vs ์ธ๊ฐ€(Authorization)

์ธ์ฆ?

  • ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ ค๋Š” ์œ ์ €๊ฐ€ ํšŒ์›์ธ์ง€ ์•„๋‹Œ์ง€ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ
  • ๋ณดํ†ต ์–ด๋–ค ์ธ์ฆ์š”์†Œ๋ฅผ ์ฆ๊ฑฐ๋กœ ์ž์‹ ์„ ์ฆ๋ช…ํ•จ
  • ex) ์˜จ๋ผ์ธ์—์„œ๋Š” ID์™€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ํ–‰์œ„๊ฐ€ ์ธ์ฆ์ด ๋  ์ˆ˜ ์žˆ์Œ
  • ex) ์‹ค์ƒํ™œ์—์„œ๋Š” ๊ณต๊ณต๊ธฐ๊ด€์—์„œ ์‹ ์›ํ™•์ธ ์‹œ ์‹ ๋ถ„์ฆ์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์Œ

์ธ๊ฐ€?

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

๐Ÿ”Ž ์ธ์ฆ์€ ์ธ๊ฐ€๋กœ ์ด์–ด์ง€์ง€๋งŒ ์ธ๊ฐ€๋Š” ์ธ์ฆ์œผ๋กœ ์ด์–ด์ง€์ง€ ์•Š๋Š”๋‹ค!


http ํ”„๋กœํ† ์ฝœ ํ†ต์‹ ์˜ ํŠน์ง•

๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ HTTP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

HTTP์˜ ํŠน์ง•

  1. Client-Server ๊ตฌ์กฐ
  2. ๋ฌด์ƒํƒœ์„ฑ(Stateless)
  3. ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless)
  4. ๋‹จ์ˆœ/ํ™•์žฅ ๊ฐ€๋Šฅ

1. Client-Server ๊ตฌ์กฐ

  • ๊ฐ๊ฐ์˜ Server์™€ Client๋Š” ๋…๋ฆฝ๋˜์–ด ์žˆ์Œ
  • Client๋Š” Server์— ์š”์ฒญ(Request)์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์ด ์˜ฌ ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ
  • Server๋Š” Client์—์„œ ๋ฐ›์€ ์š”์ฒญ(Request)์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด ์‘๋‹ต์„ ํ•˜๋Š” ๊ฒƒ
  • Client-Server ๊ตฌ์กฐ๋Š” Request-Response ๊ตฌ์กฐ์™€ ๊ฐ™์€ ๊ฒƒ
  • Server์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ Client์— ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๊ตฌ์กฐ

2. ๋ฌด์ƒํƒœ์„ฑ(Stateless)

  • Server๋Š” Client์˜ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ์•Š์Œ
  • ๊ฐ ์š”์ฒญ๋งˆ๋‹ค Server์—์„œ ์š”๊ตฌํ•˜๋Š” ๋ชจ๋“  ์ƒํƒœ ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ์š”์ฒญํ•ด์•ผํ•จ
  • ์ƒํƒœ๊ฐ’์€ ๋งค ์š”์ฒญ๋งˆ๋‹ค Client๊ฐ€ ๊ฐ€์ง€๊ณ  ์˜ค๊ธฐ ๋•Œ๋ฌธ์— Server๋Š” Client์˜ ์ƒํƒœ๋ฅผ ๋ณ„๋„๋กœ ๊ธฐ์–ตํ•  ํ•„์š”์—†์ด ์ฃผ๋ฌธ๋ฐ›์€ ๋Œ€๋กœ ์‘๋‹ตํ•ด์คŒ

3. ๋น„์—ฐ๊ฒฐ์„ฑ(Connectionless)

  • Server์™€ Client๋Š” ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์•„์„œ ์„œ๋ฒ„ ์ž…์žฅ์—์„œ๋Š” ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์š”์ฒญ์ž„
  • ๋น„์—ฐ๊ฒฐ์„ฑ์œผ๋กœ ์ธํ•ด ์ตœ์†Œํ•œ์˜ ์„œ๋ฒ„ ์ž์›์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ

4. ๋‹จ์ˆœ/ํ™•์žฅ ๊ฐ€๋Šฅ

  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด TCP์˜ 3-way handshake๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ
  • ์„œ๋ฒ„์—์„œ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด 4-way handshake๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ํ•ด์ œ
  • ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”(stateless) ๋‹จ์ˆœํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— HTTP๊ฐ€ ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Œ

โœ๐Ÿป ํšŒ๊ณ 

์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์„œ ์ž๋ฃŒ ์ฐพ์•„๊ฐ€๋ฉฐ TIL๋กœ ์ ์–ด๋ณด์•˜๋Š”๋ฐ ์—ฌ์ „ํžˆ ์–ด๋ ต๋‹ค..ใ…Žใ…Ž ๊ทธ๋ž˜๋„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ฝ์œผ๋ฉด์„œ ์–ด๋–ค ๋‚ด์šฉ์ธ์ง€, ์˜๋ฏธ์ธ์ง€ ํ•œ๋ฐœ์ž๊ตญ ๋” ๋‹ค๊ฐ€๊ฐ€๊ฒŒ ๋˜์—ˆ๋‹ค.

profile
์›ฐ์”ฝํ‚น_๋‚˜๋Š” ๊ฒฝ์Ÿ๋ ฅ์„ ๊ฐ–์ถ˜ FE๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•  ๊ฒƒ์ด๋‹ค.

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด