JWT

JSON WEB TOKEN JWT๋ž€? ํ† ํฐ ์ž์ฒด์— ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ ๋ฌด๊ฒ์ง€ ์•Š๊ณ  ๊ฐ„ํŽธํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ ์šฉ ๊ฐ€๋Šฅ Base64 URL Safe Encoding์„ ์ด์šฉํ•ด์„œ URL, Cooke, Header ๋“ฑ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์ค‘์•™์˜ ์ธ์ฆ ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์—†์–ด์„œ ์‹œ์Šคํ…œ ์ˆ˜ํ‰ ํ™•์žฅ์— ์œ ๋ฆฌํ•จ → ๊ธฐ์กด์— ์ธ์ฆ ์ •๋ณด๋ฅผ ์„ธ์…˜์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์€ ํ•ด๋‹น ์„œ๋ฒ„์—์„œ๋งŒ ํ•ด๋‹น ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋”ฐ๋กœ ์„ธ์…˜ ์„œ๋ฒ„๋ฅผ ๋‘ฌ์•ผํ–ˆ์ง€๋งŒ, ํ† ํฐ์€ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ธ์…˜ ์„œ๋ฒ„๊ฐ€ ํ•„์š” ์—†์–ด์ง. JWT๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ 3๊ฐœ์˜ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ aaaaaa.bbbbbb.cccccc // ์•ž์—์„œ๋ถ€ํ„ฐ .์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Œ // ํ—ค๋”(header).๋‚ด์šฉ(payload).์„œ๋ช…(signature) ํ—ค๋”(Header) S..

BackEnd 2021. 6. 26. 19:01
HTTP ๋ฉ”์„œ๋“œ

๊น€์˜ํ•œ๋‹˜์˜ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. GET ๋ฆฌ์†Œ์Šค ์กฐํšŒ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋Š” query(์ฟผ๋ฆฌ ํŒŒ๋งˆ๋ฆฌํ„ฐ, ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง)์„ ํ†ตํ•ด์„œ ์ „๋‹ฌ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ณณ์ด ๋งŽ์•„์„œ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ GET /boards?title=hello HTTP/1.1 Host: localhost:8080 POST ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์„œ๋ฒ„๋Š” ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ ์ฃผ๋กœ ์‹ ๊ทœ ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ ๋“ฑ์— ์‚ฌ์šฉ ์ŠคํŽ™ ์ƒ์˜ POST POST ๋ฉ”์„œ๋“œ๋Š” ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ฆฌ์†Œ์Šค์˜ ๊ณ ์œ ํ•œ ์˜๋ฏธ ์ฒด๊ณ„์— ๋”ฐ๋ผ ์š”์ฒญ์— ํฌํ•จ๋œ ํ‘œํ˜„์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ..

BackEnd 2021. 5. 28. 23:03
HTTP ์ƒํƒœ์ฝ”๋“œ

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

BackEnd 2021. 5. 22. 19:04