728x90
Computer Science/๐Ÿ“ก Network

Computer Science/๐Ÿ“ก Network

    [๋„คํŠธ์›Œํฌ] HTTP ์ฃผ์š” ๋ฉ”์„œ๋“œ - GET, POST, PUT, PATCH, DELETE

    HTTP ๋ฉ”์„œ๋“œ HTTP ๋ฉ”์„œ๋“œ๋ž€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์ด๋ฃจ์–ด์ง€๋Š” ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response) ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. HTTP ๋ฉ”์„œ๋“œ์˜ ์ข…๋ฅ˜๋Š” ์ด 9๊ฐ€์ง€์ธ๋ฐ, ์ด์ค‘ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ 5๊ฐ€์ง€์™€ ๊ธฐํƒ€ ๋ฉ”์„œ๋“œ 4๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ์ฃผ์š” ๋ฉ”์„œ๋“œ GET: ๋ฆฌ์†Œ์Šค ์กฐํšŒ POST: ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ฃผ๋กœ ๋“ฑ๋ก์— ์‚ฌ์šฉ PUT: ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ฒดํ•˜๋ฉฐ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ PATCH: ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ DELETE: ๋ฆฌ์†Œ์Šค ์‚ญ์ œ ๊ธฐํƒ€ ๋ฉ”์„œ๋“œ HEAD: GET๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋ฉ”์‹œ์ง€(body) ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ  ์ƒํƒœ ์ค„๊ณผ ํ—ค๋”๋งŒ ๋ฐ˜ํ™˜ OPTIONS: ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ†ต์‹  ๊ฐ€๋Šฅ ์˜ต์…˜์„ ์„ค๋ช… (์ฃผ๋กœ CORS์—์„œ ์‚ฌ์šฉ) CONNECT: ๋Œ€์ƒ ์ž์›์œผ๋กœ ์‹๋ณ„๋˜๋Š” ์„œ๋ฒ„์— ๋Œ€ํ•œ ํ„ฐ๋„์„ ์„ค์ • TRACE: ๋Œ€..

    [๋„คํŠธ์›Œํฌ] DNS(๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ) ๊ตฌ์„ฑ์š”์†Œ, ๋™์ž‘๋ฐฉ์‹

    DNS(Domain Name System) ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์‹ค์ œ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ ์‚ฌ์šฉ์ž๋กœ ํ•˜์—ฌ๊ธˆ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํ†ตํ•ด ์‹ค์ œ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์‚ฌ์šฉํ•˜๋Š” IP๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ DNS๋Š” ์ƒ์œ„ ๊ธฐ๊ด€๊ณผ ํ•˜์œ„ ๊ธฐ๊ด€๊ณผ ๊ฐ™์€ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ์ƒ์œ„ ๊ธฐ๊ด€์—์„œ ์ธ์ฆ๋œ ๊ธฐ๊ด€์—๊ฒŒ ๋„๋ฉ”์ธ ์ƒ์„ฑ ๋ฐ IP ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ 3๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ ๋„๋ฉ”์ธ ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค(Domain Name Space) DNS๊ฐ€ ์ €์žฅ/๊ด€๋ฆฌํ•˜๋Š” ๊ณ„์ธต์  ๊ตฌ์กฐ ์ตœ์ƒ์œ„์— ๋ฃจํŠธ DNS ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ทธ ํ•˜์œ„๋กœ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์—ฐ์†ํ•ด์„œ ์ด์–ด์ง„ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ง ๋„ค์ž„ ์„œ๋ฒ„(Name Server, =DNS์„œ๋ฒ„): ๊ถŒํ•œ ์žˆ๋Š” DNS ์„œ๋ฒ„ ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์‹ค์ œ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์‹œ ์‚ฌ์šฉ๋˜..

    [๋„คํŠธ์›Œํฌ] SOP(Same Origin Policy)์™€ CORS(Cross-Origin Resource Sharing), CORS ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

    SOP(Same Origin Policy) ๊ฐ™์€ ์ถœ์ฒ˜์˜ HTTP ์š”์ฒญ๋งŒ์„ ํ—ˆ๋ฝํ•˜๋Š” ์ •์ฑ… ์ž์›์„ ์š”์ฒญํ•œ ์ถœ์ฒ˜์™€ ํ•ด๋‹น ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ์„œ๋ฒ„์˜ ์ถœ์ฒ˜๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ํ•ด๋‹น ์ž์›์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œ -> CORS ์ •์ฑ…์„ ์ง€์ผฐ์„ ์‹œ์—๋งŒ ์˜ˆ์™ธ์ ์œผ๋กœ ํ—ˆ์šฉ SOP ์ •์ฑ…์ด ์—†์„ ์‹œ ๋…ธ์ถœ๋œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ†ตํ•ด CSRF(Cross-Site Request Forgery)๋‚˜ XSS(Cross-Site Scripting)์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณต๊ฒฉ์ž์˜ ์‚ฌ์šฉ์ž ์ •๋ณด ํƒˆ์ทจ ์œ„ํ—˜์ด ์žˆ์Œ โ€ป ์ถœ์ฒ˜(Origin)๋ž€? ์œ„์™€ ๊ฐ™์€ URL ๊ตฌ์กฐ์—์„œ Protocol + Host + Port์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ๋œปํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” Protocol, Host, Port๊ฐ€ ๋ชจ๋‘ ๊ฐ™๋‹ค๋ฉด ๊ฐ™์€ ์ถœ์ฒ˜, ์…‹ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅด๋‹ค๋ฉด ๋‹ค๋ฅธ ์ถœ์ฒ˜๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค. CORS(Cr..

    [๋„คํŠธ์›Œํฌ] ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ(+JWT), ์„œ๋ฒ„(์„ธ์…˜)๊ธฐ๋ฐ˜ ์ธ์ฆ

    ํ† ํฐ(Token) ๊ธฐ๋ฐ˜ ์ธ์ฆ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์† ์‹œ ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ธ์ฆ์˜ ์˜๋ฏธ๋กœ 'ํ† ํฐ'์„ ๋ถ€์—ฌ -> ์ธ์ฆ(Authentication) ํด๋ผ์ด์–ธํŠธ๋Š” ๋˜ ๋‹ค์‹œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๋ฐœ๊ธ‰๋ฐ›์€ ํ† ํฐ์„ ์š”์ฒญ ํ—ค๋”์— ์‹ฌ์–ด ์ „์†ก ์„œ๋ฒ„๋Š” ํ—ค๋” ๋‚ด ํ† ํฐ์„ ์—ด์–ด ์ž์‹ ์ด ์ œ๊ณตํ•œ ํ† ํฐ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ์ธ์ฆ ๊ณผ์ • ์ฒ˜๋ฆฌ -> ์ธ๊ฐ€(Authorization) ๐Ÿ’ก์šฉ์–ด ์ •๋ฆฌ - ์ธ์ฆ(Authentication): ์ž์‹ ์ด ๋ˆ„๊ตฌ์ธ์ง€ ์ฆ๋ช…ํ•˜๊ณ  ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ • (๋กœ๊ทธ์ธ) - ์ธ๊ฐ€(Authorization): ์ธ์ฆ ์ž‘์—… ์ดํ›„์— ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ž์› ์ ‘๊ทผ ํ™•์ธ ๋ฐ ํ—ˆ๊ฐ€ ์ ˆ์ฐจ (๊ถŒํ•œ ํ™•์ธ) ์žฅ์  ํ† ํฐ ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— stateless(๋ฌด์ƒํƒœ)ํ•˜๋ฉฐ, ์„œ๋ฒ„ ํ™•์žฅ์— ์šฉ์ด (์„œ๋ฒ„ ๋ถ€๋‹ด X) ํ† ํฐ์€ ํ•œ..

    [๋„คํŠธ์›Œํฌ] SSL/TLS ํ•ธ๋“œ์‰์ดํฌ - TLS 1.3

    SSL๊ณผ TLS TLS(Transport Layer Security)๋Š” SSL(Secure Socket Layer)์˜ ์ƒ์œ„ ๋ฒ„์ „ ํ‘œํ˜„์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. SSL์€ SSL 1.0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.3๊นŒ์ง€ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๋ฉด์„œ SSL์˜ ๋ช…์นญ์ด TLS๋กœ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์ด๋‹ค. ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” TLS 3.0์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋ช…ํ•˜๋ฉฐ ๋ช…์นญ์€ TLS๋กœ ํ†ต์ผํ•œ๋‹ค. TLS๋Š” ์ „์†ก๊ณ„์ธต์—์„œ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTPS ํ†ต์‹  ์‹œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•  ๋•Œ TLS๋ฅผ ํ†ตํ•ด ์ œ3์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋„์ฒญํ•˜๊ฑฐ๋‚˜ ์œ„์กฐ, ๋ณ€์กฐํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค. TLS๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ ๋ฐ ์—ญํ• ์„ ๊ฐ€์ง„๋‹ค. ์•”ํ˜ธํ™”: ์ œ3์ž์™€ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊น€ ์ธ์ฆ: ํ†ต์‹ ์˜ ๋Œ€์ƒ์ด ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š”..

    [๋„คํŠธ์›Œํฌ] HTTP/1.X, HTTP2, HTTP3 ๋ฒ„์ „ ์ฐจ์ด, ํŠน์ง•

    โ€ป HTTP ๊ฐœ์š”: https://zu-techlog.tistory.com/60 [๋„คํŠธ์›Œํฌ] HTTP์™€ HTTPS ํ”„๋กœํ† ์ฝœ HTTP (Hyper Text Transfer Protocol) ์›น ์ƒ์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์š”์ฒญ(request)๊ณผ ์‘๋‹ต(response)์œผ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ TCP์™€ UDP ์‚ฌ์šฉ, 80๋ฒˆ ํฌํŠธ ์‚ฌ์šฉ ๋น„์—ฐ๊ฒฐ(Connectionless) ํด๋ผ์ด์–ธํŠธ๊ฐ€ zu-techlog.tistory.com HTTP ๋ฒ„์ „ - HTTP/1.X, HTTP2, HTTP3 HTTP/1.0 ํ•œ ์—ฐ๊ฒฐ๋‹น ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ ์‹œ ๋งค๋ฒˆ ์—ฐ๊ฒฐ๊ณผ ํ•ด์ œ์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ–ˆ๊ธฐ์— RTT๊ฐ€ ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค๋Š” ๋ฌธ์ œ RTT: ํŒจํ‚ท์ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ์ถœ๋ฐœ์ง€๋กœ ๋Œ์•„์˜ค๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ..

    [๋„คํŠธ์›Œํฌ] TCP/IP ํ๋ฆ„์ œ์–ด์™€ ํ˜ผ์žก์ œ์–ด

    ํ๋ฆ„์ œ์–ด ์†ก์‹ ์ธก๊ณผ ์ˆ˜์‹ ์ธก์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ• ์†ก์‹ ์ธก์˜ ์ „์†ก๋Ÿ‰์ด ์ˆ˜์‹ ์ธก์˜ ์ฒ˜๋ฆฌ๋Ÿ‰๋ณด๋‹ค ํด ๊ฒฝ์šฐ ์ˆ˜์‹ ์ธก์˜ ํ๊ฐ€ ์šฉ๋Ÿ‰์„ ๋„˜์–ด ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†์‹ค์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†ก์‹ ์ธก์˜ ํŒจํ‚ท ์ „์†ก๋Ÿ‰์„ ์ œ์–ดํ•จ ์ˆ˜์‹ ์ธก์ด ์†ก์‹ ์ธก์—๊ฒŒ ํ˜„์žฌ ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ํ”ผ๋“œ๋ฐฑํ•˜๋Š” ํ˜•ํƒœ 1. Stop and Wait ๋งค๋ฒˆ ์ „์†กํ•œ ํŒจํ‚ท์— ๋Œ€ํ•ด ํ™•์ธ ์‘๋‹ต(ACK)์„ ๋ฐ›์•„์•ผ๋งŒ ๊ทธ ๋‹ค์Œ ํŒจํ‚ท์„ ์ „์†ก ๊ตฌ์กฐ ์ƒ ๋น„ํšจ์œจ์  2. Sliding Window ์ˆ˜์‹ ์ธก์—์„œ ์„ค์ •ํ•œ ์œˆ๋„์šฐ ํฌ๊ธฐ๋งŒํผ ์†ก์‹ ์ธก์—์„œ ํ™•์ธ ์‘๋‹ต ์—†์ด ํŒจํ‚ท์„ ์ „์†กํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋™์ ์œผ๋กœ ์กฐ์ ˆ ์†ก์‹ ์ธก์€ ๋จผ์ € ์œˆ๋„์šฐ์— ํฌํ•จ๋˜๋Š” ๋ชจ๋“  ํŒจํ‚ท์„ ์ „์†กํ•˜๊ณ , ์ˆ˜์‹ ์ธก์œผ๋กœ๋ถ€ํ„ฐ ํ™•์ธ ์‘๋‹ต(ACK)๊ฐ€ ์˜ค๋ฉด ์œˆ๋„์šฐ๋ฅผ ์˜†์œผ๋กœ ์˜ฎ๊ฒจ๊ฐ€๋ฉฐ ๋‹ค์Œ ํŒจํ‚ท๋“ค์„ ์ „์†ก ๋™์ž‘ ๋ฐฉ์‹ ์†ก์‹ ์ธก์—์„œ ..

    [๋„คํŠธ์›Œํฌ] HTTP ์ƒํƒœ/์‘๋‹ต ์ฝ”๋“œ ์ •๋ฆฌ

    HTTP Status Code HTTP ์ƒํƒœ ์ฝ”๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ(request)์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๋Š”์ง€ ๊ทธ ์ƒํƒœ๋ฅผ ์‘๋‹ต(response)์„ ํ†ตํ•ด ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด ํ™œ์šฉ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์‘๋‹ต์€ 5๊ฐœ์˜ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋‰˜์–ด์ง€๋ฉฐ, ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ํ‘œ์‹œํ•˜๋Š” 3์ž๋ฆฌ ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์•ž์ž๋ฆฌ ์ˆ˜๊ฐ€ ๋ฐ”๋กœ ์‘๋‹ต์˜ ์ข…๋ฅ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ƒํƒœ ๊ทธ๋ฃน ์—ญํ•  1XX Informational Response ์กฐ๊ฑด๋ถ€ ์‘๋‹ต ํ˜„์žฌ ์š”์ฒญ๊นŒ์ง€ ์ฒ˜๋ฆฌํ–ˆ๋‹ค๋Š” ์ „์†ก ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€์˜ ์ž„์‹œ์  ์‘๋‹ต 2XX Success ์„ฑ๊ณต ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ 3XX Redirection ๊ฒฝ๋กœ ์žฌ์ง€์ • ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ์ถ”๊ฐ€์ ์ธ ์กฐ์ทจ ํ•„์š” 4XX Client Error ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜ ์š”์ฒญ ๋‚ด์šฉ์ด ์ž˜๋ชป๋˜๋Š” ๋“ฑ ํด๋ผ์ด์–ธํŠธ๋กœ ์ธํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ 5X..

728x90