728x90
Computer Science/๐Ÿ“ก Network

Computer Science/๐Ÿ“ก Network

    [๋„คํŠธ์›Œํฌ] REST, REST API, RESTful ์•Œ์•„๋ณด๊ธฐ

    REST ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ ๋ฐ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ ์›น์˜ ๊ธฐ์กด ๊ธฐ์ˆ ๊ณผ HTTP ํ”„๋กœํ† ์ฝœ์„ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ Client์™€ Server ์‚ฌ์ด์˜ ํ†ต์‹  ๋ฐฉ์‹ HTTP URI๋ฅผ ํ†ตํ•ด ์ž์›์„ ๋ช…์‹œํ•˜๊ณ , HTTP Method(GET, POST, PUT, DELETE)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ CRUD๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ REST ๊ตฌ์„ฑ ์š”์†Œ ์ž์›(Resource) URI๋กœ ํ‘œ์‹œ ๋ชจ๋“  ์ž์›์— ๋Œ€ํ•œ ๊ณ ์œ  ID(URI)๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ด ์ž์›์€ Server์— ์กด์žฌ Client๋Š” URI๋ฅผ ์ด์šฉํ•ด์„œ ์ž์›์„ ์ง€์ •ํ•˜๊ณ  ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)์— ๋Œ€ํ•œ ์กฐ์ž‘์„ Server์— ์š”์ฒญ ํ–‰์œ„(Verb) HTTP ํ”„๋กœํ† ์ฝœ์˜ Method ์‚ฌ์šฉ ํ‘œํ˜„..

    [๋„คํŠธ์›Œํฌ] ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session) ํŠน์ง•, ์ฐจ์ด

    HTTP ํ”„๋กœํ† ์ฝœ์€ ๋น„์—ฐ๊ฒฐ ์ง€ํ–ฅ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์‘๋‹ต์„ ๋ณด๋‚ด์ฃผ๋ฉด ๋ฐ”๋กœ ์—ฐ๊ฒฐ์„ ๋Š๋Š”๋‹ค. ๋˜, ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ˆœ๊ฐ„ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹ ์ด ์ข…๋ฃŒ๋˜๋ฉฐ ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด์™€ ๊ฐ™์€ ํŠน์„ฑ์œผ๋กœ HTTP ํ”„๋กœํ† ์ฝœ์€ ๋ชจ๋“  ์š”์ฒญ ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๊ฐ€ ์—†์–ด ํ˜„์žฌ ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „์— ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž์ธ์ง€ ํ™•์ธํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ฆ‰, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กญ๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๋Š” ๋งค ์š”์ฒญ๋งˆ๋‹ค ์ธ์ฆ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, HTTP ํ”„๋กœํ† ์ฝœ์—์„œ ์ด์ „ ์š”์ฒญ๊ณผ ํ˜„์žฌ ์š”์ฒญ์ด ๊ฐ™์€ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ธ์ง€ ์•Œ๊ฒŒ๋˜๋Š” ์ƒํƒœ ์œ ์ง€๋ฅผ ์œ„ํ•ด ์ฟ ํ‚ค(Cookie)์™€ ์„ธ์…˜(Session)์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฟ ํ‚ค์™€ ์„ธ์…˜์— ๋Œ€ํ•œ ํŠน์ง•๊ณผ ์ฐจ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ฟ ํ‚ค(Cookie) ๊ฐœ๋… ํด๋ผ์ด์–ธํŠธ ๋กœ์ปฌ ์Šค..

    [๋„คํŠธ์›Œํฌ] GET ๋ฉ”์„œ๋“œ์™€ POST ๋ฉ”์„œ๋“œ ํŠน์ง•, ์ฐจ์ด

    GET๊ณผ POST๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๊ฐ๊ฐ GET๊ณผ POST ๋ฉ”์„œ๋“œ์˜ ํŠน์ง• ๋ฐ ์ฐจ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. GET ๋ฉ”์„œ๋“œ ๊ฐœ๋… ์ •๋ณด ์กฐํšŒ๋ฅผ ์œ„ํ•œ ๋ฉ”์„œ๋“œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ (Select) ์‚ฌ์šฉ ๋ฐฉ๋ฒ• URL ๋์— '?'๋ฅผ ํฌํ•จํ•ด key=value ํ˜•์‹์˜ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง(Query String)๋ฅผ ๋ถ™ํ˜€ ์„œ๋ฒ„์— ์ „์†ก ์š”์ฒญ ์ •๋ณด์ธ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง(Query String)์ด ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ '&'๋กœ ๊ตฌ๋ถ„ ex) www.example.com?name1=value1&name2=value2 ํŠน์ง• URL์— ์ฟผ๋ฆฌ์ŠคํŠธ๋ง(๋ฐ์ดํ„ฐ)๋ฅผ ๋ถ™ํ˜€ ์ „์†ก ๋ฐ์ดํ„ฐ๋ฅผ ํ—ค๋”(Header)์— ํฌํ•จํ•˜์—ฌ ์ „์†ก HTTP ํŒจํ‚ท์˜ body๋Š” ๋น„์–ด์žˆ๋Š” ์ƒํƒœ๋กœ ์ „์†ก bo..

    [๋„คํŠธ์›Œํฌ] HTTP์™€ HTTPS ํ”„๋กœํ† ์ฝœ

    HTTP (Hyper Text Transfer Protocol) ์›น ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์š”์ฒญ(request)๊ณผ ์‘๋‹ต(response)์œผ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ TCP์™€ UDP ์‚ฌ์šฉ, 80๋ฒˆ ํฌํŠธ ์‚ฌ์šฉ ๋น„์—ฐ๊ฒฐ(Connectionless) ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๊ฐ€ ์ ์ ˆํ•œ ์‘๋‹ต์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด๋ฉด ์—ฐ๊ฒฐ์ด ๋ฐ”๋กœ ๋Š๊น€ ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์›์ด ์ ๊ฒŒ ๋“ ๋‹ค๋Š” ์žฅ์  ๋™์ผํ•œ ํด๋ผ์ด์–ธํŠธ์˜ ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•ด ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๊ณผ ํ•ด์ œ์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผํ•ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๋‹จ์  ๋ฌด์ƒํƒœ(Stateless) ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ˆœ๊ฐ„ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹ ์€ ๋Š๊ธฐ๋ฉฐ ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์Œ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์—†์–ด ๋งค๋ฒˆ ์ธ์ฆ ๊ณผ์ • ํ•„์š” ๋‹จ๋ฐฉํ–ฅ์„ฑ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ํ•œ ๊ฐœ์— ๋Œ€ํ•ด ํ•œ..

    [๋„คํŠธ์›Œํฌ] TCP์˜ 3-way handshake์™€ 4-way handshake

    3-way handshake TCP ํ†ต์‹ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ • ์–‘ ์ธก ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด์žˆ์Œ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์ „์— ์„ธ์…˜์„ ์ˆ˜๋ฆฝํ•จ ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ˆ˜์‹  ์ธก์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•จ 3-way hanshaking ๊ณผ์ • * Host A(=ํด๋ผ์ด์–ธํŠธ), Host B(=์„œ๋ฒ„) ํ†ต์‹  Host A๋Š” Host B์—๊ฒŒ ์ ‘์†์„ ์š”์ฒญํ•˜๋Š” SYN ํŒจํ‚ท ์ „์†ก ์†ก์‹ ์ž๊ฐ€ ์ตœ์ดˆ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ Sequence Number๋Š” ์ž„์˜์˜ ์ˆซ์ž๋กœ ์ง€์ •ํ•˜๊ณ , SYN ํ”Œ๋ž˜๊ทธ ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•œ ์„ธ๊ทธ๋จผํŠธ ์ „์†ก ํฌํŠธ ์ƒํƒœ Host A: CLOSED / Host B: LISTEN ์ ‘์† ์š”์ฒญ์„ ๋ฐ›์€ Host B๋Š” Host A์—๊ฒŒ ํ•ด๋‹น ์š”์ฒญ์„ ..

    [๋„คํŠธ์›Œํฌ] TCP์™€ UDP ํŠน์ง•, ํ—ค๋” ๋ถ„์„, ๋น„๊ต

    TCP์™€ UDP๋Š” OSI ํ‘œ์ค€๋ชจ๋ธ๊ณผ TCP/IP ๋ชจ๋ธ์˜ ์ „์†ก๊ณ„์ธต(Transports Layer)์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ๋‹ค์‹œ๋งํ•ด, ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. TCP์™€ UDP ๊ฐ๊ฐ์˜ ๊ฐœ๋… ๋ฐ ํŠน์ง•์— ๋”ํ•ด ๋‘ ํ”„๋กœํ† ์ฝœ์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ ์„ ์•Œ์•„๋ณด์ž. TCP ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”์„ธ์ง€ ํ˜•ํƒœ(์„ธ๊ทธ๋จผํŠธ ๋‹จ์œ„)๋กœ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด IP์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ TCP/IP์—์„œ IP๊ฐ€ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด, TCP๋Š” ํŒจํ‚ท์„ ์ถ”์  ๋ฐ ๊ด€๋ฆฌํ•จ ์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ ์š”์ฒญ ์‹œ ์„œ๋ฒ„๊ฐ€ ์ด๋ฅผ ์ˆ˜๋ฝํ•ด์•ผ 1๋Œ€1 ํ†ต์‹  ๊ฐ€๋Šฅ (๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹) 3-way handshaking์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •, 4-way handshaking์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ํ•ด์ œ ํ๋ฆ„ ์ œ์–ด์™€ ํ˜ผ์žก ์ œ์–ด ์ œ๊ณต ํ๋ฆ„ ์ œ์–ด: ๋ฐ์ดํ„ฐ..

    [๋„คํŠธ์›Œํฌ] OSI 7๊ณ„์ธต ๋ชจ๋ธ๊ณผ TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ

    OSI 7๊ณ„์ธต OSI 7๊ณ„์ธต์€ ๊ตญ์ œํ‘œ์ค€ํ™”๊ธฐ๊ตฌ(ISO)์—์„œ ๊ฐœ๋ฐœํ•œ ๋ชจ๋ธ๋กœ, ๋„คํŠธ์›Œํฌ์—์„œ ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ 7๋‹จ๊ณ„๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ด๋‹ค. ๊ณ„์ธต๋ณ„ ๊ธฐ๋Šฅ๊ณผ ํ†ต์‹  ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๊ณ , ํŠน์ • ๊ณ„์ธต์— ์ด์ƒ์ด ์ƒ๊ธด๋‹ค๋ฉด ํ•ด๋‹น ๊ณ„์ธต๋งŒ ์ˆ˜์ •ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๊ณ„์ธต๋ณ„ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1. ๋ฌผ๋ฆฌ ๊ณ„์ธต (Physical Layer) ์ฃผ๋กœ ์ „๊ธฐ์ , ๊ธฐ๊ณ„์ , ๊ธฐ๋Šฅ์ ์ธ ํŠน์„ฑ์„ ์ด์šฉํ•ด ํ†ต์‹  ์ผ€์ด๋ธ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ•  ์ „์†ก ๋‹จ์œ„๋Š” ๋น„ํŠธ(bit), 1๊ณผ 0์œผ๋กœ๋งŒ ํ‘œํ˜„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋งŒ ํ• ๋ฟ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ค ์—๋Ÿฌ๊ฐ€ ์žˆ๋Š”์ง€ ๋“ฑ์€ ์ „ํ˜€ ๊ณ ๋ คํ•˜์ง€ ์•Š์Œ ์˜ˆ) ํ†ต์‹  ์ผ€์ด๋ธ”, ๋ฆฌํ”ผํ„ฐ, ํ—ˆ๋ธŒ 2. ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต (Data Link Layer) ๋ฌผ๋ฆฌ ๊ณ„์ธต์„ ํ†ตํ•ด ์†ก์ˆ˜์‹ ๋˜๋Š” ์ •๋ณด์˜ ์˜ค๋ฅ˜์™€ ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜์—ฌ..

728x90