๐ป CS/๋คํธ์ํฌ
[CS] ์ธ์ฆ ๋ฐ ์ธ๊ฐ feat. ์ฟ ํค์ ์ธ์
์ธ์ฆ(Authentication) ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ํ์ธํ๋ ์ ์ฐจ ๋ํ์ ์์ : ํ์๊ฐ์ , ๋ก๊ทธ์ธ ์ธ๊ฐ(Authorization) ์ฌ์ฉ์๊ฐ ์์ฒญํ๋ ๊ฒ์ ๋ํด ๊ถํ์ด ์๋์ง ํ์ธํ๋ ์ ์ฐจ ์ธ์ฆ(๋ก๊ทธ์ธ) ํ ๋ฐ์ดํฐ ์์ฒญ์ ๋ํ ํ๊ฐ ์ฟ ํค์ ์ธ์ ์ ํตํ ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๊ณผ์ 1. ํด๋ผ์ด์ธํธ : ๋ก๊ทธ์ธ → ์๋ฒ : ํ์์ ๋ณด ๋์กฐ ๋ฐ ์ธ์ฆ(Authentication) 2. ์๋ฒ : ํ์์ ๋ณด๋ฅผ ์ธ์ ์ ์ฅ์์ ์์ฑ ๋ฐ ์ธ์ ID ๋ฐ๊ธ 3. ์๋ฒ → ํด๋ผ์ด์ธํธ : http response header ์ฟ ํค์ ์ธ์ ID๋ฅผ ํฌํจํด์ ์ ์ก 4. ํด๋ผ์ด์ธํธ : ์ธ์ ID๋ฅผ ์ฟ ํค ์ ์ฅ์์ ๋ณด๊ด ๋ฐ ์ดํ http request ์ ์ฟ ํค์ ์ธ์ ID๋ฅผ ํจ๊ป ์ ์ก 5. ์๋ฒ : ์ฟ ํค์ ํจ๊ป ์จ ์ธ์ ID์ ํด๋นํ๋ ํ์ ์ ๋ณด๋ฅผ ์ธ..
[CS] ์ฟ ํค(Cookie)์ ์ธ์ (Session)
์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํ๋ ์ด์ HTTP์ ๋น์ฐ๊ฒฐ์ฑ(connectionless), ๋น์ํ์ฑ(stateless) ํน์ง ๋๋ฌธ์ ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ(request)ํ์ ๋ ๊ทธ ์์ฒญ์ ๋ง๋ ์๋ต(response)์ ๋ณด๋ธ ํ ์ฐ๊ฒฐ์ ๋๊ณ , ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ๋ํ ์ํ ์ ๋ณด๋ฅผ ์ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ ์ฟ ํค์ ์ธ์ ์ด ์๋ค๋ฉด ๋ก๊ทธ์ธ์ ํด๋ ํ์ด์ง๋ฅผ ์ด๋ํ ๋๋ง๋ค ๊ณ์ ๋ก๊ทธ์ธ์ ํด์ผํฉ๋๋ค. ์ฟ ํค(Cookie) ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ชฝ์์ key-value ํํ๋ก ๋ก์ปฌ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ํ์ผ์ ๋๋ค. ์ผ์ ์ ํจ์๊ฐ ๋ด์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋์ด๋ ๊ณ์ ์ ์ง๋ฉ๋๋ค. ์๋ฒ์์ response์ header์ set-cookie์์ฑ์ ์ฌ์ฉํด์ ํด๋ผ์ด์ธํธ์ ์ฟ ํค๋ฅผ ๋ง๋ค๊ณ , ์ ์ ๊ฐ ๋ฐ๋ก ์์ ์ ํ์ง ์์๋ ์์ฒญ(request) ์ ์..
[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
GET ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ ๋ณด๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋(๋ฆฌ์์ค ์กฐํ) ํ์ํ ์ ๋ณด๋ฅผ ํน์ ํ๊ธฐ ์ํด URL ๋ค์ Query String์ ์ถ๊ฐํ์ฌ ์ ๋ณด๋ฅผ ์กฐํ ํ ๋ฒ ์๋ฒ์ GET ์์ฒญ์ ํ ์ ์ด ์๋ค๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํด๋๋ค.(์ดํ ๋์ผํ ์์ฒญ์ ์ ์ฅ๋ ๊ฐ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.)URL ๋ค์ Query String๊น์ง ํฌํจํด์ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ์บ์๊ฐ ๊ฐ๋ฅ POST ์๋ฒ์๊ฒ ์ ๋ณด(๋ฐ์ดํฐ) ์ฒ๋ฆฌ(์ฃผ๋ก ์์ฑ)๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋ ๊ผญ ์์ฑ๋ฟ๋ง ์๋๋ผ, ๋ณ๊ฒฝ ๋๋ ํน์ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ๋ ํฉ๋๋ค. ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ Body ๋ถ๋ถ์ ํฌํจํ์ฌ ํต์ ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ์ง ์๊ณ ์บ์๋ ๋ถ๊ฐ๋ฅ PUT ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฉ์๋ ๋ฆฌ์์ค๋ฅผ ๋์ฒด, ํด๋น ๋ฆฌ์์ค๊ฐ ์์ผ..