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

CS/๋„คํŠธ์›Œํฌ

๋„คํŠธ์›Œํฌ ๋ฉด์ ‘ ์งˆ๋ฌธ

๐Ÿ’ก HTTP ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

HTTP(Hyper Text Transfer Protocol)์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋ธ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

HTTP๋Š” ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š” Stateless์˜ ํŠน์ง•๊ณผ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๋Š” Connectionless์˜ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์žฅ์ 
    • ํ†ต์‹ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์ƒํƒœ ์ฒ˜๋ฆฌ๋‚˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์„œ๋ฒ„ ๋””์ž์ธ์ด ๊ฐ„๋‹จํ•˜๋‹ค.
    • ๊ฐ๊ฐ์˜ HTTP ์š”์ฒญ์— ๋…๋ฆฝ์ ์œผ๋กœ ์‘๋‹ต๋งŒ ๋ณด๋‚ด์ฃผ๋ฉด OK
  • ๋‹จ์ 
    • ์ด์ „ ํ†ต์‹ ์˜ ์ •๋ณด๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋งค๋ฒˆ ์ธ์ฆ์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.
    • ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค(cookie)๋‚˜ ์„ธ์…˜(session)์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

๐Ÿ’ก HTTP์™€ HTTPS์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

HTTP๋Š” ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์—, HTTP๋กœ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด ์ œ 3์ž์— ์˜ํ•ด ์กฐํšŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HTTP์— ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ์ด HTTPS์ž…๋‹ˆ๋‹ค.

HTTPS๋Š” SSL์˜ ๊ป์งˆ์„ ๋ฎ์–ด์“ด HTTP๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

โ€ป SSL(Secure Socket Layer) ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœํ•œ ํ†ต์‹  ๊ทœ์•ฝ

HTTP๋Š” ์›๋ž˜ TCP์™€ ์ง์ ‘ ํ†ต์‹ ํ–ˆ์ง€๋งŒ, HTTPS์—์„œ HTTP๋Š” SSL๊ณผ ํ†ต์‹ ํ•˜๊ณ  SSL์ด TCP์™€ ํ†ต์‹ ํ•จ์œผ๋กœ์จ ์•”ํ˜ธํ™”์™€ ์ฆ๋ช…์„œ, ์•ˆ์ „์„ฑ ๋ณดํ˜ธ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์ฟ ํ‚ค๋Š” ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์— ์ €์žฅํ•˜๋Š” ์ž‘์€ ๊ธฐ๋ก ์ •๋ณด ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. HTTP์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ PC์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ํ•„์š”์‹œ ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธ์…˜์€ ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ ๊ฐ™์€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜ค๋Š” ์ผ๋ จ์˜ ์š”๊ตฌ๋ฅผ ํ•˜๋‚˜์˜ ์ƒํƒœ๋กœ ๋ณด๊ณ , ๊ทธ ์ƒํƒœ๋ฅผ ์œ ์ง€์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ๋ฐฉ๋ฌธ์ž๊ฐ€ ์›น ์„œ๋ฒ„์— ์ ‘์†ํ•ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ณด๊ณ  ๊ทธ๊ฒƒ์„ ์„ธ์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  ์ฟ ํ‚ค(Cookie) ์„ธ์…˜(Session)
์ €์žฅ ์œ„์น˜ ํด๋ผ์ด์–ธํŠธ(=์ ‘์†์ž PC) ์›น ์„œ๋ฒ„
์ €์žฅ ํ˜•์‹ text Object
๋งŒ๋ฃŒ ์‹œ์  ์ฟ ํ‚ค ์ €์žฅ์‹œ ์„ค์ •
(๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๋„, ๋งŒ๋ฃŒ์‹œ์ ์ด ์ง€๋‚˜์ง€ ์•Š์œผ๋ฉด ์‚ญ์ œ๋˜์ง€ ์•Š์Œ)
๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ ์‚ญ์ œ
(๊ธฐ๊ฐ„ ์ง€์ • ๊ฐ€๋Šฅ)
์‚ฌ์šฉํ•˜๋Š” ์ž์›(๋ฆฌ์†Œ์Šค) ํด๋ผ์ด์–ธํŠธ ๋ฆฌ์†Œ์Šค ์›น ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค
์šฉ๋Ÿ‰ ์ œํ•œ ์ด 300๊ฐœ
ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ ๋‹น 20๊ฐœ
ํ•˜๋‚˜์˜ ์ฟ ํ‚ค ๋‹น 4KB(=4096byte)
์„œ๋ฒ„๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ํ•œ ์šฉ๋Ÿ‰์ œํ•œ ์—†์Œ
์†๋„ ์„ธ์…˜๋ณด๋‹ค ๋น ๋ฆ„ ์ฟ ํ‚ค๋ณด๋‹ค ๋А๋ฆผ
๋ณด์•ˆ ์„ธ์…˜๋ณด๋‹ค ์•ˆ์ข‹์Œ ์ฟ ํ‚ค๋ณด๋‹ค ์ข‹์Œ

์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์˜ ์ฐจ์ด (+์บ์‹œ(Cache))


๐Ÿ’ก  www.naver.com์— ์ ‘์†ํ•  ๋•Œ ์ƒ๊ธฐ๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. (์›น ๋™์ž‘ ๋ฐฉ์‹ ์ดํ•ด)

 

https://mangkyu.tistory.com/91

 

  1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— URL(www.naver.com)์„ ์ž…๋ ฅ
  2. DNS ์„œ๋ฒ„์— ๋„๋ฉ”์ธ ๋„ค์ž„์œผ๋กœ ์„œ๋ฒ„์˜ ์ง„์งœ ์ฃผ์†Œ๋ฅผ ์ฐพ์Œ
  3. IP ์ฃผ์†Œ๋กœ ์›น ์„œ๋ฒ„์— TCP 3 handshake๋กœ ์—ฐ๊ฒฐ ์ˆ˜๋ฆฝ
  4. ํด๋ผ์ด์–ธํŠธ๋Š” ์›น ์„œ๋ฒ„๋กœ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ„
  5. ์›น ์„œ๋ฒ„๋Š” HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ„
  6. ๋„์ฐฉํ•œ HTTP ์‘๋‹ต ๋ฉ”์„ธ์ง€๋Š” ์›น ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜๋˜๊ณ , ์›น ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ์ถœ๋ ฅ

๐Ÿ’ก  ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œ์ผœ์ฃผ๋Š” ์‹œ์Šคํ…œ

ํฌ๊ฒŒ L4 ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์™€, L7๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ์žˆ์Œ

L4 ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” 4๊ณ„์ธต(Transport ๊ณ„์ธต) ์ดํ•˜์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๋กœ๋“œ๋ฅผ ๋ถ„์‚ฐํ•ด์คŒ

ํŠนํžˆ MAC ์ฃผ์†Œ, IP์ฃผ์†Œ, ํฌํŠธ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•จ

L7 ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” 7๊ณ„์ธต(์‘์šฉ๊ณ„์ธต)์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๋กœ๋“œ ๋ถ„์‚ฐํ•ด์คŒ

ํŒจํ‚ท ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ณ  ๋ถ„์‚ฐํ•ด์„œ DDOS๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์Œ(ํ•„ํ„ฐ๋ง ํ•˜๊ธฐ๋•Œ๋ฌธ์—)


๐Ÿ’ก TCP์™€ UDP์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

TCP๋Š” ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ 3-way handshaking ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋†’์€ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€๋งŒ, ์†๋„๊ฐ€ ๋น„๊ต์  ๋А๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

UDP๋Š” ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ 3-way handshaking์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‹ ๋ขฐ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

TCP๋Š” ์‹ ๋ขฐ์„ฑ์ด ์ค‘์š”ํ•œ ํŒŒ์ผ ๊ตํ™˜๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์“ฐ์ด๊ณ  UDP๋Š” ์‹ค์‹œ๊ฐ„์„ฑ์ด ์ค‘์š”ํ•œ ์ŠคํŠธ๋ฆฌ๋ฐ์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ ์ข…๋ฅ˜ TCP UDP
์—ฐ๊ฒฐ ๋ฐฉ์‹ ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค
ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ ๊ฐ€์ƒ ํšŒ์„  ๋ฐฉ์‹ ๋ฐ์ดํ„ฐ๊ทธ๋žจ ๋ฐฉ์‹
์ „์†ก ์ˆœ์„œ ์ „์†ก ์ˆœ์„œ ๋ณด์žฅ ์ „์†ก ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ์Œ
์ˆ˜์‹  ์—ฌ๋ถ€ ํ™•์ธ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•จ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์Œ
ํ†ต์‹  ๋ฐฉ์‹ 1:1 ํ†ต์‹  1:1 OR 1:N OR N:N ํ†ต์‹ 
์‹ ๋ขฐ์„ฑ ๋†’๋‹ค. ๋‚ฎ๋‹ค.
์†๋„ ๋А๋ฆฌ๋‹ค. ๋น ๋ฅด๋‹ค.

๐Ÿ’ก 3 way-handshaking ์–˜๊ธฐ ํ•ด์ฃผ์…จ๋Š”๋ฐ, TCP ํ†ต์‹ ์€ ์ข…๋ฃŒ์‹œ์—๋„ 3 way-handshaking์„ ์‚ฌ์šฉํ•˜๋‚˜์š”?

๋”๋ณด๊ธฐ

TCP๋Š” 3 way-handshaking ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ , 4 way-handshaking ๊ณผ์ •์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

TCP์™€ UDP์˜ ํŠน์ง• ๋ฐ ์ฐจ์ด์  ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ(3-way handshaking, 4-way handshaking)


๐Ÿ’ก  3 way-handshake์™€ 4 way-handshake๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

3 way-handshake๋ž€ TCP ๋„คํŠธ์›Œํฌ์—์„œ ํ†ต์‹  ํ•˜๋Š” ์žฅ์น˜๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋Š” ์ด 3๋ฒˆ์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

4 way-handshake๋ž€ TCP ๋„คํŠธ์›Œํฌ์—์„œ ํ†ต์‹  ํ•˜๋Š” ์žฅ์น˜์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋Š” ์ด 4๋ฒˆ์— ๊ฑธ์ณ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค.

 

 


๐Ÿ’ก OSI 7 layer์™€ ๊ฐ ๊ณ„์ธต์— ๋Œ€ํ•ด ์•„๋Š”๋Œ€๋กœ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

 

OSI7๊ณ„์ธต? ๋„คํŠธ์›Œํ‚น์— ๋Œ€ํ•œ ํ‘œ์ค€์„ 7๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆˆ๊ฒƒ

 

PDONTSPA๋ผ๊ณ  ์™ธ์šฐ์ž!

 

  • 7 ๊ณ„์ธต(์‘์šฉ ๊ณ„์ธต) : ์‚ฌ์šฉ์ž์—๊ฒŒ ํ†ต์‹ ์„ ์œ„ํ•œ ์„œ๋น„์Šค ์ œ๊ณต. ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• 
  • 6 ๊ณ„์ธต(ํ‘œํ˜„ ๊ณ„์ธต) : ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹(Format)์„ ์ •์˜ํ•˜๋Š” ๊ณ„์ธต (์ฝ”๋“œ ๊ฐ„์˜ ๋ฒˆ์—ญ์„ ๋‹ด๋‹น)
  • 5 ๊ณ„์ธต(์„ธ์…˜ ๊ณ„์ธต) : ์ปดํ“จํ„ฐ๋ผ๋ฆฌ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜์„ ๋งŒ๋“œ๋Š” ๊ณ„์ธต
  • 4 ๊ณ„์ธต(์ „์†ก ๊ณ„์ธต) : ์ตœ์ข… ์ˆ˜์‹  ํ”„๋กœ์„ธ์Šค๋กœ ๋ฐ์ดํ„ฐ์˜ ์ „์†ก์„ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต (๋‹จ์œ„ :Segment) (ex. TCP, UDP)
  • 3 ๊ณ„์ธต(๋„คํŠธ์›Œํฌ ๊ณ„์ธต) : ํŒจํ‚ท์„ ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ธธ๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ณ„์ธต (๋‹จ์œ„ :Packet) (ex. Router)
  • 2 ๊ณ„์ธต(๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต) : ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์ „์†ก๊ณผ ์—๋Ÿฌ ๊ฒ€์ถœ, ํ๋ฆ„ ์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต (๋‹จ์œ„ :frame) (ex. ์ด๋”๋„ท)
  • 1 ๊ณ„์ธต(๋ฌผ๋ฆฌ ๊ณ„์ธต) : ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ธฐ ์‹ ํ˜ธ๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋Š” ๊ณ„์ธต (๋‹จ์œ„ :bit) (์žฅ๋น„: ์ผ€์ด๋ธ”,๋ฆฌํ”ผํ„ฐ,ํ—ˆ๋ธŒ)

๐Ÿ’ก IP์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

IP(Internet Protocol) : ์ธํ„ฐ๋„ท ๋ง์„ ํ†ตํ•ด ํŒจํ‚ท์„ ์ „๋‹ฌํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

 

IP ํŠน์ง•

๋น„์‹ ๋ขฐ์„ฑ : IP๋Š” ํ”„๋กœํ† ์ฝœ์ผ ๋ฟ์ด๊ณ  ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„์— ๊ด€์—ฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‚ธ ํŒจํ‚ท์ด ์ œ๋Œ€๋กœ ๊ฐ”๋Š”์ง€ ๋ณด์žฅํ•˜์ง€ ์•Š์Œ

๋น„์—ฐ๊ฒฐ์„ฑ : ํŒจํ‚ท์ด ๋ฐ›์„ ๋Œ€์ƒ์ด ์—ฐ๊ฒฐ ์ƒํƒœ์ž„์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์ „์†กํ•จ

 

IP Address : ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๋ณด๋‚ผ ๋ชฉ์ ์ง€

์นœ๊ตฌ์—๊ฒŒ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค๊ณ  ํ–ˆ์„๋•Œ, ์นœ๊ตฌ IP Address๋กœ ๋ฐ”๋กœ ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์ค‘๊ฐ„ ๋ผ์šฐํ„ฐ๋ฅผ ๊ฑฐ์นœ๋‹ค.

๋ผ์šฐํ„ฐ์—์„œ ๊ฐ€์•ผํ•  ๋ฐฉํ–ฅ์„ ์•Œ๋ ค์ฃผ๊ณ  ๋ฐ˜๋ณต๋˜์–ด ๋„์ฐฉํ•˜๊ฒŒ ๋œ๋‹ค.


๐Ÿ’ก HTTP Method์™€ ๊ฐ๊ฐ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

HTTP ๋ฉ”์†Œ๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์‚ฌ์šฉ์ž ์š”์ฒญ์˜ ๋ชฉ์ ์„ ์•Œ๋ฆฌ๋Š” '์ˆ˜๋‹จ'์ž…๋‹ˆ๋‹ค.

์ข…๋ฅ˜ ๊ธฐ๋Šฅ
GET ๋ฐ์ดํ„ฐ ์กฐํšŒ
POST ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ(๋ณดํ†ต ๋ฐ์ดํ„ฐ ๋“ฑ๋ก ์‚ฌ์šฉ)
PUT ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ (ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ)
PATCH ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ๋ณ€๊ฒฝ
DELETE ๋ฐ์ดํ„ฐ ์‚ญ์ œ

๐Ÿ’ก GET๊ณผ POST์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

GET์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ—ค๋”์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

URL์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜๋ฏ€๋กœ ๋ณด์•ˆ์ ์œผ๋กœ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

POST๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋””์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์™„์ „ํžˆ ์•ˆ์ „ํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ URL์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ GET ๋ณด๋‹ค๋Š” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌ ๋ฐฉ์‹ GET ๋ฐฉ์‹ POST ๋ฐฉ์‹
URL์— ๋ฐ์ดํ„ฐ ๋…ธ์ถœ ์—ฌ๋ถ€ O X
URL ์˜ˆ์‹œ http://localhost:8080/boardList?name=์ œ๋ชฉ&contents=๋‚ด์šฉ http://localhost:8080/addBoard
๋ฐ์ดํ„ฐ์˜ ์œ„์น˜ Header(ํ—ค๋”) Body(๋ฐ”๋””)
์บ์‹ฑ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ O X
๋ฉฑ๋“ฑ์„ฑ ์—ฌ๋ถ€ O X

GET๊ณผ POST์˜ ์ฐจ์ด์ 


๐Ÿ’ก ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ๊ณผ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์–˜๊ธฐํ•ด์ฃผ์„ธ์š”.

์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ Statefulํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ ,

ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ์ƒํƒœ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ Statelessํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

๐Ÿ’ก ๊ทธ๋ ‡๋‹ค๋ฉด Statefulํ•œ ์„ธ์…˜ ๊ธฐ๋ฐ˜์˜ ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์–ด๋– ํ•œ ๋‹จ์ ์ด ์žˆ์„๊นŒ์š”?

๋”๋ณด๊ธฐ

1. ์„œ๋ฒ„์— ์„ธ์…˜์„ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜๋ฅผ ์ค„ ์ˆ˜ ์žˆ์–ด ํ™•์žฅ์„ฑ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค. 

2. ํ•ด์ปค๊ฐ€ ํ›”์นœ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•ด ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์ธ์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (์„ธ์…˜ ํ•˜์ด์žฌํ‚น ๊ณต๊ฒฉ)

 

๐Ÿ’ก ๊ทธ๋ ‡๋‹ค๋ฉด ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ๊ณผ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ๊ฐ๊ฐ ์–ด๋А ๊ฒฝ์šฐ์— ์ ํ•ฉํ•œ๊ฐ€์š”?

๋”๋ณด๊ธฐ

๋‹จ์ผ ๋„๋ฉ”์ธ์ด๋ผ๋ฉด ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์™œ? - ์„ธ์…˜์„ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ฟ ํ‚ค๋Š” ๋‹จ์ผ ๋„๋ฉ”์ธ ๋ฐ ์„œ๋ธŒ ๋„๋ฉ”์ธ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. (CORS ๋ฌธ์ œ) 


๐Ÿ’ก JWT ํ† ํฐ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

JWT๋Š” JSON ํฌ๋งท์„ ์ด์šฉํ•˜๋Š” Claim ๊ธฐ๋ฐ˜์˜ ์›น ํ† ํฐ์ด๋ฉฐ, ํ† ํฐ ์ž์ฒด๋ฅผ ์ •๋ณด๋กœ ์‚ฌ์šฉํ•˜๋Š” Self-Contained ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

JWT๋Š” ํ—ค๋”(Header).๋‚ด์šฉ(Payload).์„œ๋ช…(Signature)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๊ฐ ํŒŒํŠธ๋ฅผ ์ (.)์œผ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

 

ํ—ค๋”(Header) : ํ† ํฐ์˜ ํƒ€์ž…๊ณผ ํ•ด์‹œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(๋ฐฉ์‹์ง€์ •)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

๋‚ด์šฉ(Payload) : ํ† ํฐ์— ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ด๊ณ ์ž ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค. ๋‚ด์šฉ์—๋Š” Claim์ด ๋‹ด๊ฒจ์žˆ๊ณ , JSON(Key/Value)ํ˜•ํƒœ์˜ ํ•œ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์„œ๋ช…(Signature) : ํ† ํฐ์„ ์ธ์ฝ”๋”ฉํ•˜๊ฑฐ๋‚˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ ํ•œ ์•”ํ˜ธํ™” ์ฝ”๋“œ์ด๋‹ค. ํ—ค๋”์™€ ๋‚ด์šฉ์˜ ๊ฐ’์„ ์ธ์ฝ”๋”ฉํ•œ๋‹ค.

JWT(Json Web Token) ๋ž€ ๋ฌด์—‡์ผ๊นŒ? (์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ธ์ฆ / ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ)


๐Ÿ’ก Connection Timeout๊ณผ Read Timeout์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

์„œ๋ฒ„ ์ž์ฒด์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์‚ฌ์œ ๋กœ ์ ‘๊ทผ์„ ์‹คํŒจํ–ˆ์„ ์‹œ ์ ์šฉ๋˜๋Š” ๊ฒƒ์ด Connection Timeout์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์ ‘๊ทผ์„ ์‹œ๋„ํ•˜๋Š” ์‹œ๊ฐ„ ์ œํ•œ์ด Connection Timeout ๋˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†์„ ์„ฑ๊ณต ํ–ˆ์œผ๋‚˜ ์„œ๋ฒ„๊ฐ€ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๊ธธ์–ด ์ œ๋Œ€๋กœ ์‘๋‹ต์„ ๋ชป ์ค€ ์ƒํƒœ์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ด Read Timeout์ž…๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ์ƒํ™ฉ์„ ์˜ค๋ฅ˜๋กœ ์ธ์ง€ํ•˜๊ณ , ์„œ๋ฒ„๋Š” ๊ณ„์† ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์–ด ์„ฑ๊ณต์œผ๋กœ ์ธ์ง€ํ•ด 

์–‘ ์‚ฌ์ด๋“œ๊ฐ„ ์‹ฑํฌ๊ฐ€ ๋งž์ง€ ์•Š์•„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋†’์Šต๋‹ˆ๋‹ค.


๐Ÿ’ก ๊ณต์ธ(public) IP์™€ ์‚ฌ์„ค(private) IP์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

  • ๊ณต์ธ IP๋Š” ISP(์ธํ„ฐ๋„ท ์„œ๋น„์Šค ๊ณต๊ธ‰์ž)๊ฐ€ ์ œ๊ณตํ•˜๋Š” IP ์ฃผ์†Œ์ด๋ฉฐ, ์™ธ๋ถ€์— ๊ณต๊ฐœ๋˜์–ด ์žˆ๋Š” IP์ฃผ์†Œ ์ž…๋‹ˆ๋‹ค.
  • ์‚ฌ์„ค IP๋Š” ์ผ๋ฐ˜ ๊ฐ€์ •์ด๋‚˜ ํšŒ์‚ฌ ๋‚ด ๋“ฑ์— ํ• ๋‹น๋œ ๋„คํŠธ์›Œํฌ IP ์ฃผ์†Œ์ด๋ฉฐ, IPv4์˜ ์ฃผ์†Œ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ์„œ๋ธŒ๋„ทํŒ…๋œ IP์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์šฐํ„ฐ(๊ณต์œ ๊ธฐ)์— ์˜ํ•ด ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์ƒ์˜ PC๋‚˜ ์žฅ์น˜์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์„ค IP ์ฃผ์†Œ๋งŒ์œผ๋กœ๋Š” ์ธํ„ฐ๋„ท์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ณ , ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด 1๊ฐœ์˜ ๊ณต์ธ IP๋ฅผ ํ• ๋‹นํ•˜๊ณ , ๋ผ์šฐํ„ฐ์— ์—ฐ๊ฒฐ๋œ ๊ฐœ์ธ PC๋Š” ์‚ฌ์„ค IP๋ฅผ ๊ฐ๊ฐ ํ• ๋‹น ๋ฐ›์•„ ์ธํ„ฐ๋„ท์— ์ ‘์† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://dev-coco.tistory.com/161 [์Šฌ๊ธฐ๋กœ์šด ๊ฐœ๋ฐœ์ƒํ™œ:ํ‹ฐ์Šคํ† ๋ฆฌ]