๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CS

http ์™€ https

HTTP ๋ž€?

  • http๋Š” Hyper Text Transfer Protocol์˜ ์•ฝ์ž๋กœ ์›น์—์„œ ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ํ˜•ํƒœ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
  • TCP ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๋น„์—ฐ๊ฒฐ์„ฑ, ๋น„์ƒํƒœ์„ฑ ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
    • ์ด๋กœ ์ธํ•ด ๋งŽ์€ ์‹ค์ œ ๋™์‹œ ์ ‘์†์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ๋” ๋งŽ์€ ์œ ์ €์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
    • ๋น„์—ฐ๊ฒฐ์„ฑ, ๋น„์ƒํƒœ์„ฑ ํŠน์ง• ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž์˜ ์ด์ „ ์ƒํƒœ(๋กœ๊ทธ์ธ ์œ ๋ฌด ๋“ฑ)๋ฅผ ์•Œ ์ˆ˜ ์—†์–ด ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด
      ์ฟ ํ‚ค, ์„ธ์…˜, JWT ๋“ฑ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ request message ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„์—๊ฒŒ response message๋ฅผ ๋ฐ›๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
    • request message: startline(method, path, http version), header, body๋กœ ๊ตฌ์„ฑ
    • response message: statusline(status code, status message, http version), header, body๋กœ ๊ตฌ์„ฑ

 

HTTP status code

  • HTTP status code๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ HTTP์˜ ์„œ๋ฒ„์˜ ์‘๋‹ต ์ฝ”๋“œ๋กœ, ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์š”์ฒญ์˜ ์„ฑ๊ด‘๊ณผ ์‹คํŒจ๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
  • 100๋ถ€ํ„ฐ ~ 500๋ฒˆ๋Œ€ ๊นŒ์ง€ ์ด 5๊ฐ€์ง€์˜ ํด๋ž˜์Šค๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์œผ๋ฉฐ ์š”์ฒญ์— ๋Œ€ํ•œ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
  • ์›น ๊ฐœ๋ฐœ ์‹œ ์ƒํ™ฉ์— ๋งž๋Š” ์‘๋‹ต ์ฝ”๋“œ๋ฅผ response์— ๋‹ด์•„์„œ ํด๋ผ์ด์–ธํŠธ์— ๋„˜๊ฒจ์ฃผ๋ฉฐ ์ด๋ฅผ ํ† ๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ๋Š” ์•Œ๋งž์€ ๋Œ€์‘์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

status code

  • 1xx: ์š”์ฒญ์„ ์™„๋ฃŒํ–ˆ๊ณ  ์ž‘์—…์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.
  • 2xx: ์š”์ฒญ์„ ์„ฑ๊ณต ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • 200: ์š”์ฒญ์„ ์„ฑ๊ณต (ex: ์กฐํšŒ ์„ฑ๊ณต)
    • 201: ๋ฐ์ดํ„ฐ ์ƒ์„ฑ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ (ex: ํšŒ์›๊ฐ€์ž… ์„ฑ๊ณต, ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ์„ฑ๊ณต)
  • 3xx: ์š”์ฒญ์— ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • 4xx: ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
    • 400: ๋ฐ์ดํ„ฐ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์„ ๋•Œ
    • 401: ์ธ์ฆ์ด ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์ธ์ฆ์ด ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ–ˆ์„ ๋•Œ
    • 403: ์ธ์ฆ์€ ๋˜์—ˆ์ง€๋งŒ ๊ถŒํ•œ์ด ์—†๋Š” ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ–ˆ์„ ๋•Œ
    • 404: ์กด์žฌํ•˜์ง€ ์•Š๋Š” route์— ์š”์ฒญํ–ˆ์„ ๋•Œ
  • 5xx: ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

HTTPS ๋ž€?

๋ณด์•ˆ ์†Œ์ผ“ ๊ณ„์ธต SSL/TSL์„ ์‚ฌ์šฉํ•œ HTTP๋ฅผ HTTPS๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

HTTP๊ฐ€ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ํ…์ŠคํŠธ ํ˜•ํƒœ ๊ทธ๋Œ€๋กœ ์ฃผ๊ณ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์„ ๊ฒฝ์šฐ ์ด ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•œ๋‹ค๋ฉด ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์›๋ณธ ๊ทธ๋Œ€๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ณด์•ˆ ์†Œ์ผ“ ๊ณ„์ธต SSL/TLS์„ ์‚ฌ์šฉํ•œ HTTPS๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฃผ๊ณ ๋ฐ›๋Š” http message์˜ body ์ •๋ณด๋“ค์ด ์•”ํ˜ธํ™”๋˜์–ด ์ค‘๊ฐ„์— ๋ˆ„๊ตฐ๊ฐ€ ํƒˆ์ทจํ•œ๋‹ค ํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ ์ธ์ฆ๊ธฐ๊ด€(CA)์œผ๋กœ๋ถ€ํ„ฐ ๊ฒ€์ฆ๋œ ์‚ฌ์ดํŠธ๋งŒ https๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•œ ์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•˜์—ฌ ๋ณด์•ˆ์„ฑ์„ ํ™•๋ณดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

SSL/TLS

  • TLS๋Š” SSL์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๋‹จ์–ด๋ฅผ ๋™์ผํ•œ ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • SSL์€ ์›น ์„œ๋ฒ„์™€ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ„์˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ๋งŒ๋“  ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
  • ๋Œ€์นญํ‚ค ๋ฐฉ์‹๊ณผ ๊ณต๊ฐœํ‚ค(๋น„๋Œ€์นญํ‚ค) ๋ฐฉ์‹์„ ํ˜ผํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ๋Œ€์นญํ‚ค: ์–‘์ชฝ์—์„œ ์•”ํ˜ธํ™”๋ฅผ ๊ฐ™์€ ํ‚ค๋กœ ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
      • ๋Œ€์นญํ‚ค: ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™” ์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 
      • ๋Œ€์นญํ‚ค ํ•˜๋‚˜๋กœ ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์นญํ‚ค๋ฅผ ํƒˆ์ทจ๋‹นํ•  ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
    • ๊ณต๊ฐœํ‚ค(๋น„๋Œ€์นญํ‚ค): ์–‘์ชฝ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค๋กœ ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
      • ๊ณต๊ฐœํ‚ค: ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
      • ๊ฐœ์ธํ‚ค: ๋ฐ์ดํ„ฐ ๋ณตํ˜ธํ™” ์‹œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
      • ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ๊ฐœ์ธํ‚ค๋กœ๋งŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์ด ์ข‹์€๋ฐ๋„ ํ˜ผํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ?
      • ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹๋งŒ์ด ๋Œ€์นญํ‚ค ๋ฐฉ์‹๋ณด๋‹ค ์•”ํ˜ธํ™” ์—ฐ์‚ฐ์ด ๋งŽ์ด ์†Œ๋น„๋˜์–ด ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์—  ๊ณต๊ฐœํ‚ค๋ฅผ ํ™œ์šฉํ•œ ๋Œ€์นญํ‚ค๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

SSL ์ธ์ฆ์„œ / CA

SSL ์ธ์ฆ์„œ

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์†ํ•œ ์„œ๋ฒ„๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ž„์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • SSL ํ†ต์‹ ์— ์‚ฌ์šฉํ•  ๊ณต๊ฐœํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

CA(Certificate Authority) 

  • ์ธ์ฆ์„œ ์—ญํ• ์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์†ํ•œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜๋„ํ•œ ์„œ๋ฒ„๊ฐ€ ๋งž๋Š”์ง€๋ฅผ ๋ณด์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ ๋ขฐ์„ฑ์ด ์—„๊ฒฉํ•˜๊ฒŒ ๊ณต์ธ๋œ ๊ธฐ์—…๋“ค๋งŒ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•„๋ž˜์˜ ์„ค๋ช…์„ ์œ„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์„œ๋ฒ„๋Š” ์‚ฌ์ดํŠธ ์ •๋ณด์™€ ์ž์‹ ์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ์ธ์ฆ๊ธฐ๊ด€์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ๊ธฐ๊ด€์—์„œ๋Š” ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆ ํ›„ ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ์„œ๋ช…ํ•œ ์‚ฌ์ดํŠธ ์ธ์ฆ์„œ๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  3. ์ธ์ฆ๊ธฐ๊ด€์€ ํด๋ผ์ด์–ธํŠธ์— ์ธ์ •๊ธฐ๊ด€ ๊ณต๊ฐœํ‚ค๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณต๊ฐœํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์ž๋™์œผ๋กœ ๋‚ด์žฅ๋ฉ๋‹ˆ๋‹ค.
  4. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์† ์š”์ฒญ์„ ์‹œ๋„ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์‚ฌ์ดํŠธ ์ธ์ฆ์„œ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  5. ํด๋ผ์ด์–ธํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋˜์–ด์žˆ๋Š” ์ธ์ฆ๊ธฐ๊ด€ ๊ณต๊ฐœํ‚ค๋กœ ์‚ฌ์ดํŠธ ์ธ์ฆ์„œ๋ฅผ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ๊ฒ€์ฆํ•˜๊ณ  ์„œ๋ฒ„ ๊ณต๊ฐœํ‚ค๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
  6. ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์‹ ์˜ ๋Œ€์นญํ‚ค๋ฅผ  ์„œ๋ฒ„ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์•”ํ˜ธํ™”ํ•œ ๋Œ€์นญํ‚ค๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  7. ์„œ๋ฒ„๋Š” ์ „๋‹ฌ๋ฐ›์€ ๋Œ€์นญํ‚ค๋ฅผ ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ์ „๋‹ฌ๋ฐ›์€ ๋Œ€์นญํ‚ค๋ฅผ ์•Œ์•„๋ƒ…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ณต๊ฐœํ‚ค๋ฅผ ํ™œ์šฉํ•œ ๋Œ€์นญํ‚ค๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ํ†ต์‹ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

'CS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Process ๋ž€?  (0) 2022.07.04
๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ  (0) 2022.06.18