๐Ÿ’ป CS/๋„คํŠธ์›Œํฌ

    [CS] ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ feat. ์ฟ ํ‚ค์™€ ์„ธ์…˜

    [CS] ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ feat. ์ฟ ํ‚ค์™€ ์„ธ์…˜

    ์ธ์ฆ(Authentication) ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ ๋Œ€ํ‘œ์  ์˜ˆ์‹œ : ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ์ธ๊ฐ€(Authorization) ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ ˆ์ฐจ ์ธ์ฆ(๋กœ๊ทธ์ธ) ํ›„ ๋ฐ์ดํ„ฐ ์š”์ฒญ์— ๋Œ€ํ•œ ํ—ˆ๊ฐ€ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ํ†ตํ•œ ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ๊ณผ์ • 1. ํด๋ผ์ด์–ธํŠธ : ๋กœ๊ทธ์ธ โ†’ ์„œ๋ฒ„ : ํšŒ์›์ •๋ณด ๋Œ€์กฐ ๋ฐ ์ธ์ฆ(Authentication) 2. ์„œ๋ฒ„ : ํšŒ์›์ •๋ณด๋ฅผ ์„ธ์…˜ ์ €์žฅ์†Œ์— ์ƒ์„ฑ ๋ฐ ์„ธ์…˜ ID ๋ฐœ๊ธ‰ 3. ์„œ๋ฒ„ โ†’ ํด๋ผ์ด์–ธํŠธ : http response header ์ฟ ํ‚ค์— ์„ธ์…˜ ID๋ฅผ ํฌํ•จํ•ด์„œ ์ „์†ก 4. ํด๋ผ์ด์–ธํŠธ : ์„ธ์…˜ ID๋ฅผ ์ฟ ํ‚ค ์ €์žฅ์†Œ์— ๋ณด๊ด€ ๋ฐ ์ดํ›„ http request ์‹œ ์ฟ ํ‚ค์— ์„ธ์…˜ ID๋ฅผ ํ•จ๊ป˜ ์ „์†ก 5. ์„œ๋ฒ„ : ์ฟ ํ‚ค์™€ ํ•จ๊ป˜ ์˜จ ์„ธ์…˜ ID์— ํ•ด๋‹นํ•˜๋Š” ํšŒ์› ์ •๋ณด๋ฅผ ์„ธ..

    [CS] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)

    [CS] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)

    ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  HTTP์˜ ๋น„์—ฐ๊ฒฐ์„ฑ(connectionless), ๋น„์ƒํƒœ์„ฑ(stateless) ํŠน์ง• ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ(request)ํ–ˆ์„ ๋•Œ ๊ทธ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต(response)์„ ๋ณด๋‚ธ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๊ณ , ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ƒํƒœ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ฟ ํ‚ค์™€ ์„ธ์…˜์ด ์—†๋‹ค๋ฉด ๋กœ๊ทธ์ธ์„ ํ•ด๋„ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์† ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค(Cookie) ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์ชฝ์—์„œ key-value ํ˜•ํƒœ๋กœ ๋กœ์ปฌ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ผ์ • ์œ ํšจ์‹œ๊ฐ„ ๋‚ด์—๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ๊ณ„์† ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ response์˜ header์— set-cookie์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ , ์œ ์ €๊ฐ€ ๋”ฐ๋กœ ์ž‘์—…์„ ํ•˜์ง€ ์•Š์•„๋„ ์š”์ฒญ(request) ์‹œ ์•Œ..

    [CS] ์›น์˜ ๋™์ž‘ ์›๋ฆฌ

    [CS] ์›น์˜ ๋™์ž‘ ์›๋ฆฌ

    ์›น ํŽ˜์ด์ง€ ์ ‘์† ๊ณผ์ • 1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— URL ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. 2. ๋ธŒ๋ผ์šฐ์ €๋Š” *DNS๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. *DNS(Domain Name System) : ๋งˆ์น˜ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์ฒ˜๋Ÿผ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์›น ์ด๋ฆ„์„ IP ์ฃผ์†Œ๋กœ ๋งค์น˜์‹œ์ผœ์ฃผ๋Š” ์‹œ์Šคํ…œ 3. Client์—์„œ HTTP request ๋ฉ”์‹œ์ง€ โ†’ TCP/IP ํŒจํ‚ท ์ƒ์„ฑ โ†’ Server๋กœ ์ „์†ก 4. Server์—์„œ HTTP request์— ๋Œ€ํ•œ HTTP response ๋ฉ”์‹œ์ง€ โ†’ TCP/IP ํŒจํ‚ท ์ƒ์„ฑ โ†’ Client๋กœ ์ „์†ก 5. ๋„์ฐฉํ•œ HTTP response๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ์ถœ๋ ฅ(๋ Œ๋”๋ง)๋ฉ๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ 1-2. ์œ ์ €๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•˜๋ฉด HTTP request message๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 3-4. IP์ฃผ์†Œ๋ฅผ ์•Œ..

    [CS] HTTP - status code(์ƒํƒœ ์ฝ”๋“œ)

    Status code(์ƒํƒœ ์ฝ”๋“œ) ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ์„œ๋ฒ„์˜ ์‘๋‹ต ์ฝ”๋“œ๋กœ, ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์š”์ฒญ์˜ ์„ฑ๊ณต/์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 100๋ฒˆ๋Œ€๋ถ€ํ„ฐ 500๋ฒˆ๋Œ€๊นŒ์ง€ ์ด 5๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ๊ตฌ๋ถ„๋˜์–ด HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ(request)์— ๋Œ€ํ•œ ์„œ๋ฒ„์˜ ์‘๋‹ต(response)์˜ ๊ฐ„๋žตํ•œ ์„ค๋ช…์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํ™ฉ์— ๋งž๋Š” ์ƒํƒœ ์ฝ”๋“œ๋ฅผ response์— ๋‹ด์•„์„œ ํด๋ผ์ด์–ธํŠธ์— ๋„˜๊ฒจ์ฃผ์–ด์•ผ ์•Œ๋งž์€ ๋Œ€์‘์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 100๋ฒˆ๋Œ€ โ†’ ์ •๋ณด : ์š”์ฒญ์„ ๋ฐ›์•˜์œผ๋ฉฐ ์ž‘์—…์„ ๊ณ„์†ํ•˜๊ฒ ๋‹ค. 200๋ฒˆ๋Œ€ โ†’ ์„ฑ๊ณต : ์š”์ฒญํ•œ ๋™์ž‘์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜์‹ ํ•˜์—ฌ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜์˜€๋‹ค. 300๋ฒˆ๋Œ€ โ†’ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ : ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. 400๋ฒˆ๋Œ€ โ†’ ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜..

    [CS] HTTP request method : GET, POST / PUT, PATCH

    [CS] HTTP request method : GET, POST / PUT, PATCH

    GET ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์ •๋ณด๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ(๋ฆฌ์†Œ์Šค ์กฐํšŒ) ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํŠน์ •ํ•˜๊ธฐ ์œ„ํ•ด URL ๋’ค์— Query String์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ •๋ณด๋ฅผ ์กฐํšŒ ํ•œ ๋ฒˆ ์„œ๋ฒ„์— GET ์š”์ฒญ์„ ํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด๋‘”๋‹ค.(์ดํ›„ ๋™์ผํ•œ ์š”์ฒญ์€ ์ €์žฅ๋œ ๊ฐ’์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)URL ๋’ค์˜ Query String๊นŒ์ง€ ํฌํ•จํ•ด์„œ ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹œ๊ฐ€ ๊ฐ€๋Šฅ POST ์„œ๋ฒ„์—๊ฒŒ ์ •๋ณด(๋ฐ์ดํ„ฐ) ์ฒ˜๋ฆฌ(์ฃผ๋กœ ์ƒ์„ฑ)๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๊ผญ ์ƒ์„ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋ณ€๊ฒฝ ๋˜๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๋ฅผ Body ๋ถ€๋ถ„์— ํฌํ•จํ•˜์—ฌ ํ†ต์‹  ๋ธŒ๋ผ์šฐ์ € ํžˆ์Šคํ† ๋ฆฌ์— ๋‚จ์ง€ ์•Š๊ณ  ์บ์‹œ๋„ ๋ถˆ๊ฐ€๋Šฅ PUT ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ฒด, ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ..