HTTP

2024. 4. 26. 00:24ยท๐ŸŒ Network/๐Ÿ“œHTTP

๋ชจ๋“  ๊ฒƒ์€ HTTP ๊ธฐ๋ฐ˜ ์œ„์—์„œ ๋™์ž‘ํ•œ๋‹ค.
html ์ด๋ฏธ์ง€ ์˜์ƒ ํŒŒ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•ฑ๊ณผ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ• ๋•Œ์™€ ์„œ๋ฒ„์™€ ์„œ๋ฒ„๋ผ๋ฆฌ ํ†ต์‹ ํ• ๋•Œ๋„ HTTPํ”„๋กœํ† ์ฝœ ์œ„์—์„œ 
๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.
ํŠนํžˆ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” SpringMVC๋‚˜ JSP PHP, ํŒŒ์ด์ฌ ์žฅ๊ณ  ๋ฃจ๋น„์˜จ๋ ˆ์ผ์ฆˆ๊ฐ™์€ ์›น ๊ธฐ์ˆ ์ด๋‚˜ ์›นํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉ
ํ•˜๊ฒŒ ๋จ ์ด๋Ÿฐ ์›น ๊ธฐ์ˆ ๋“ค์ด ๋ชจ๋‘ HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ์Œ.
 
์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ
1. ์ธํ„ฐ๋„ท ํ†ต์‹ 
์ปดํ“จํ„ฐ ๋‘˜์ด ๋ถ™์–ด์žˆ์œผ๋ฉด ๋‹จ์ˆœํžˆ ์ผ€์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค ํ•˜์ง€๋งŒ ํ˜„๋Œ€์—๋Š” ์ปดํ“จํ„ฐ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋ฆฌ๋–จ์–ด์ ธ
์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ†ต์‹ ์˜ ์–ด๋ ค์›€์ด ์กด์žฌํ•œ๋‹ค. ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ๊ฒƒ์ด ์ธํ„ฐ๋„ท ํ†ต์‹  ์ด๋‹ค. ๋ฉ€๋ฆฌ์žˆ๋Š” ์ปดํ“จํ„ฐ์™€์˜
ํ†ต์‹ ์€ ํ•ด์ €์ผ€์ด๋ธ”์ด ๋ ์ˆ˜๋„์žˆ๊ณ  ์ธ๊ณต์œ„์„ฑ์„ ํ†ตํ•ด ๋‚ด๋ ค์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ์ˆ˜๋งŽ์€ ์ค‘๊ฐ„ ๋…ธ๋“œ๋ผ๋Š” ์„œ๋ฒ„๋ฅผ ๊ฑฐ์ณ์„œ ๋ฉ”์‹œ์ง€๊ฐ€
์•ˆ์ „ํ•˜๊ฒŒ ๋„˜์–ด๊ฐ€์•ผํ•œ๋‹ค. ์–ด๋– ํ•œ ๊ทœ์น™์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฑฐ์ณ์„œ ๋„˜์–ด๊ฐ€๋Š”์ง€๋Š” IP๋ฅผ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ๋‹ค.
2. IP(Internet Protocol) (IP์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ์ฐพ์•„๊ฐ€๋Š” ๋ฐฉ์‹์„ IP๋ผ ๋ถ€๋ฅธ๋‹ค.)
๋ณต์žกํ•œ ์ธํ„ฐ๋„ท๋ง์—์„œ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ๋•Œ๋Š” ๊ทœ์น™์ด ํ•„์š”ํ•˜๋‹ค. ๊ทธ๊ฒƒ์ด IP ์ฃผ์†Œ์ด๋‹ค.
IP ์ฆ‰, ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์˜ ์—ญํ• ์€
์ง€์ •ํ•œ IP์ฃผ์†Œ(IP Address)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ํŒจํ‚ท์ด๋ผ๋Š” ํ†ต์‹  ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
IP ํŒจํ‚ท ์ •๋ณด์—๋Š” ๋‚ด ์•„์ดํ”ผ์™€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์„ ์ƒ๋Œ€ ์•„์ดํ”ผ์™€ ์ „์†กํ•  ๋ฐ์ดํ„ฐ ์ฆ‰ ๋ฉ”์‹œ์ง€๋ฅผ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
์ธํ„ฐ๋„ท๋ง์— IPํŒจํ‚ท์„ ์ฃผ๊ฒŒ๋˜๋ฉด ์ด๋Ÿฌํ•œ ํŒจํ‚ท์„ ๋…ธ๋“œ๋ผ๋ฆฌ ๋ฐ›์•„์„œ ์ „๋‹ฌ์ „๋‹ฌ์ „๋‹ฌ์„ ํ†ตํ•ด ์ตœ์ข…์œผ๋กœ ์ „๋‹ฌ์ด ๋˜๊ฒŒ๋œ๋‹ค.
์ด๋Ÿฌํ•œ๊ณผ์ •์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” IPํ†ต์‹  ํ”„๋กœํ† ์ฝœ์˜ ํ†ต์‹ ๊ทœ์•ฝ ๋•๋ถ„์— ๊ฐ€๋Šฅํ•˜๋‹ค.
๋ฐ›์€ ์„œ๋ฒ„๋Š” ์ž˜ ์ „๋‹ฌ์ด ๋˜์—ˆ๋‹ค๊ณ  ๋ณด๋‚ด์ค„ ๋•Œ ๋‹ค์‹œ ๋…ธ๋“œ๋“ค์„ ์™•๋ณตํ•ด์„œ ๋‹ค์‹œ ๋‚˜์—๊ฒŒ ์ „๋‹ฌ์ด ๋œ๋‹ค.
์ธํ„ฐ๋„ท๋ง์ด ์›Œ๋‚™ ๋ณต์žกํ•˜๊ธฐ์— ๋‚ด๊ฐ€ ์ „๋‹ฌํ• ๋•Œ ์ด์šฉํ•œ ๋…ธ๋“œ๋“ค์„ ๋‹ค์‹œ ๋ฐ›์„๋•Œ๋Š” ์ด์šฉ์•ˆํ•˜๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์„ ํ†ตํ•ด
์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฌํ•œ IPํ”„๋กœํ† ์ฝœ์˜ ๋ฐฉ์‹์—๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.
( IP์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ์ฐพ์•„๊ฐ€๊ณ  , IPํŒจํ‚ท์— ๋‹ด์•„์ฃผ๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์˜ ํ•œ๊ณ„ )
 
IP ํ”„๋กœํ† ์ฝœ์˜ ํ•œ๊ณ„
1. ๋น„์—ฐ๊ฒฐ์„ฑ
ํŒจํ‚ท์„ ๋ฐ›์„ ๋Œ€์ƒ์ด ์—†๊ฑฐ๋‚˜ ์„œ๋น„์Šค ๋ถˆ๋Šฅ ์ƒํƒœ์—ฌ๋„ ํŒจํ‚ท ์ „์†ก
( ํด๋ผ์ด์–ธํŠธ๋Š” ๋Œ€์ƒ ์„œ๋ฒ„๊ฐ€ ํŒจํ‚ท์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ธ์ง€ ์•„๋‹Œ์ง€ ๋ชจ๋ฅธ๋‹ค.  )
2. ๋น„์‹ ๋ขฐ์„ฑ
์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์‚ฌ๋ผ์ง€๋ฉด?
๋…ธ๋“œ๋„ ๊ฒฐ๊ตญ ์„œ๋ฒ„์ด๋‹ค. ํŒจํ‚ท์„ ๋ณด๋‚ผ๋•Œ ์ค‘๊ฐ„ ๋…ธ๋“œ๊ฐ€ ๊บผ์ ธ๋ฒ„๋ฆฌ๊ฑฐ๋‚˜ ์‚ฌ๋ผ์ง„ ๊ฒฝ์šฐ์—๋Š” ๋‚ด๊ฐ€ ๋ณด๋‚ด๋Š” ํŒจํ‚ท์ด ์œ ์‹ค๋  ์ˆ˜ ์žˆ๋‹ค.
( ์˜ˆ๋ฅผ ๋“ค๋ฉด ๊ด‘์ผ€์ด๋ธ”์ด ๋ง๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ ํŒจํ‚ท์˜ ์œ ์‹ค์ด ๋ฐœ์ƒํ•  ์šฐ๋ ค๊ฐ€ ์กด์žฌํ•œ๋‹ค. )
ํŒจํ‚ท์ด ์ˆœ์„œ๋Œ€๋กœ ์•ˆ์˜ค๋ฉด? ( ํŒจํ‚ท ์—ฌ๋Ÿฌ๊ฐœ ๋ณด๋ƒˆ์„๋•Œ ์ˆœ์„œ? )
ํŒจํ‚ท์˜ ๋“ค์–ด๊ฐ€๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ง€๋ฉด ํ•œ๋ฒˆ์— ๋ณด๋‚ด๊ธฐ๊ฐ€ ๋ถ€๋‹ด์Šค๋Ÿฌ์›Œ์ ธ ํŒจํ‚ท์„ ๋Š์–ด์„œ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ๋ณดํ†ต (1500๋ฐ”์ดํŠธ)
ํŒจํ‚ท๋“ค์€ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ํƒˆ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ • ๋•Œ๋ฌธ์— ๋ณด๋‚ด๋Š” ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์˜๋„๊ฐ€ ์ „ํ˜€ ๋‹ฌ๋ผ์ง.
3. ํ”„๋กœ๊ทธ๋žจ ๊ตฌ๋ถ„
๊ฐ™์€ IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„์—์„œ ํ†ต์‹ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‘˜ ์ด์ƒ์ด๋ฉด?
์˜จ๋ผ์ธ ๊ฒŒ์ž„์„ ํ†ตํ•ด ๊ฐ™์€ IP๊ฐ€ ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ? ๋ฌธ์ œ? ์ด๋Ÿฐ๊ฑธ ๊ตฌ๋ถ„ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€?
 
์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋ฐฉ๋ฒ•์ด TCPํ”„๋กœํ† ์ฝœ์ด๋‹ค.
3. TCP, UDP
์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ 4๊ณ„์ธต
1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ - HTTP, FTP ( ์ ค์œ„ )
2. ์ „์†ก ๊ณ„์ธต - TCP, UDP
3. ์ธํ„ฐ๋„ท ๊ณ„์ธต - IP
4. ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต
์ด๊ณณ์˜ IP๊ณ„์ธต์— TCP๋ฅผ ๊ณ„์ธต์„ ์˜ฌ๋ ค ๋ณด์™„์„ ํ•ด์ค€๋‹ค.
 
ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ -> ์›น ๋ธŒ๋ผ์šฐ์ €, ๋„คํŠธ์›Œํฌ ๊ฒŒ์ž„, ์ฑ„ํŒ… ํ”„๋กœ๊ทธ๋žจ ๋“ฑ๋“ฑ ( SOCKET ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ )
OS -> TCP, UDP, IP(Internet Protocol)
๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค -> LAN๋“œ๋ผ์ด๋ฒ„ LAN์žฅ๋น„ -->> LAN์นด๋“œ 
๊ณ„์ธต์„ ํ†ตํ•ด ์ „๋‹ฌ์ด ๋˜๋Š” ๊ณผ์ •
1. ํ”„๋กœ๊ทธ๋žจ์ด Hello, world ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์— SOCKET๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด OS๊ณ„์ธต์— ์ „๋‹ฌ
2. OS ๊ณ„์ธต์˜ TCP๊ฐ€ HelloWorld๋ผ๋Š” ๋ฉ”์‹œ์ง€์— TCP์ •๋ณด๋ฅผ ์”Œ์šด๋‹ค.
3. TCP ๋ฐ‘์— IP๊ณ„์ธต์— IP์™€ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์”Œ์šด๋‹ค. ์ด๋ ‡๊ฒŒํ•ด์„œ IPํŒจํ‚ท์ด ์ƒ์„ฑ์ด๋œ๋‹ค.
4. IPํŒจํ‚ท์€ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด์„œ LAN์นด๋“œ๋ฅผ ํ†ตํ•ด์„œ ๋‚˜๊ฐˆ๋•Œ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์ด ์”Œ์›Œ์ ธ์„œ ๋‚˜๊ฐ€๊ฒŒ๋œ๋‹ค.
์ฆ‰ , ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด ๋‚ด๊ฐ€ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
 
IP ํŒจํ‚ท ์•ˆ์—๋Š” TCP์˜ ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ
TCP์˜ ์ •๋ณด๋Š” ์ถœ๋ฐœ์ง€ PORT, ๋ชฉ์ ์ง€ PORT, ์ „์†ก ์ œ์–ด, ์ˆœ์„œ, ๊ฒ€์ฆ ์ •๋ณด...๋“ฑ์ด ๋“ค์–ด๊ฐ„๋‹ค.
IP๋งŒ์œผ๋กœ๋Š” ํ•ด๊ฒฐ์ด ์•ˆ๋ผ๋Š” ์ •๋ณด๋“ค์„ ์ž…๋ ฅํ•ด์คŒ์œผ๋กœ์จ IP์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ค€๋‹ค.
 
TCPํŠน์ง•
์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ(Transmission Control Protocol)
1. ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3 way handshake(๊ฐ€์ƒ ์—ฐ๊ฒฐ)
์ปดํ“จํ„ฐ๊ฐ„์˜ ์—ฐ๊ฒฐ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ›„ ์—ฐ๊ฒฐ์„ ํ•ด์ฃผ๊ณ  ํŒจํ‚ท์„ ๋ณด๋‚ด์ฃผ๋Š” ๋ฐฉ์‹(์—ฐ๊ฒฐ ์ง€ํ–ฅ)
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ• ๋•Œ SYN์ด๋ผ๋Š” ์ ‘์† ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„์˜ ์ปดํ“จํ„ฐ๊ฐ€ ์ผœ์ ธ์žˆ์œผ๋ฉด
SYN(์ ‘์† ์š”์ฒญ) + ACK(์ ‘์† ์ˆ˜๋ฝ)๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค ๋‹ค์‹œ ์™”์„๋•Œ๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” ACK(์š”์ฒญ ์ˆ˜๋ฝ)์„ ๋ณด๋‚ด๋ฉฐ ํ†ต์‹ ์ด
์ด๋ฃจ์–ด์ง„๋‹ค. ( ์ด๋ ‡๊ฒŒ 3๋ฒˆ ์ฃผ๊ณ  ๋ฐ›๊ธฐ๋•Œ๋ฌธ์— 3 way handshake๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ) ์‘๋‹ต์ด ์—†์œผ๋ฉด ์•ˆ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค.
SYN : ์ ‘์† ์š”์ฒญ
ACK : ์š”์ฒญ ์ˆ˜๋ฝ
2. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ
ํŒจํ‚ท์ด ์ค‘๊ฐ„์— ๋ˆ„๋ฝ์ด ๋˜๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ๋ชป๋ฐ›์•˜๋‹ค๋Š”๊ฑธ ์•Œ ์ˆ˜๊ฐ€์žˆ๊ฒŒ๋œ๋‹ค.
3. ์ˆœ์„œ ๋ณด์žฅ
์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•ด์คŒ.
์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ / ํ˜„์žฌ๋Š” ๋Œ€๋ถ€๋ถ„ TCP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋œ ๊ณณ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋ณด๋‚ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญ์„ ํ•˜๊ฒŒ๋จ.
TCP์—๋Š” ์ „์†ก์ •๋ณด ๋ฐ ์ˆœ์„œ์ •๋ณด๋„ ํฌํ•จ์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆœ์„œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ๋จ.
UDP ํŠน์ง•
์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํ”„๋กœํ† ์ฝœ(User Datagram Protocol)
1 ํ•˜์–€ ๋„ํ™”์ง€์— ๋น„์œ (๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†์Œ)
2 ์—ฐ๊ฒฐ์ง€ํ–ฅ - TCP 3 way handshake X
3 ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์ฆ X
4 ์ˆœ์„œ ๋ณด์žฅ X
5 ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์ง€๋งŒ, ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฆ„
์ •๋ฆฌ
IP์™€ ๊ฑฐ์˜ ๊ฐ™๋‹ค. +PORT+์ฒดํฌ์„ฌ ์ •๋„๋งŒ ์ถ”๊ฐ€
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถ”๊ฐ€ ์ž‘์—… ํ•„์š”
์ฒดํฌ์„ฌ : ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ๋งž๋Š”์ง€ ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ ์ •๋„๊ฐ€ ์ถ”๊ฐ€๊ฐ€ ๋˜์–ด์žˆ์Œ.
TCP์˜ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ์„ ํ•˜๋Š” ๊ฒƒ์€ UDP์ด๋‹ค.
4. PORT ( ์˜์–ด ๋œป์€ ๋ฐฐ๊ฐ€ ๋„์ฐฉํ•˜๋Š” ํ•ญ๊ตฌ๋ผ๋Š” ๋œป์ž„ )
ํ•˜๋‚˜์˜ ์•„์ดํ”ผ์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์š”์ฒญ์„ ํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŒจํ‚ท์ด ๋“ค์–ด์˜ค๊ฒŒ๋จ. ์ด๋Ÿฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜
๊ตฌ๋ณ„์ด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์˜จ ๋ฐฉ๋ฒ•์ด๋‹ค. ex) ๊ฒŒ์ž„์šฉ์ธ์ง€, ์Œ์•…์šฉ์ธ์ง€ ๋“ฑ๋“ฑ 
ํ•œ๋ฒˆ์— ๋‘˜ ์ด์ƒ ์—ฐ๊ฒฐํ•ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
๊ฒŒ์ž„๊ณผ ํ™”์ƒํ†ตํ™” ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ๋“ฑ ํ•œ๋ฒˆ์— ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํŒจํ‚ท์˜ ๊ตฌ๋ถ„์„ ์œ„ํ•ด ๋‚˜์˜จ ๋ฐฉ๋ฒ•์ด๋‹ค.
๊ฐ™์€ ์•„์ดํ”ผ ๋‚ด์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š”๊ฒƒ์€ ํฌํŠธ๋ฒˆํ˜ธ์ด๋‹ค.
TCP/IP ์ฆ‰, IP์•ˆ์— TCP์•ˆ์— ํด๋ผ์ด์–ธํŠธ์˜ PORT๋˜ํ•œ ๊ฐ™์ด ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ƒ๋Œ€๋ฐฉ์€ PORT๋ฅผ ๋ณด๊ณ  
์ž์‹ ์˜ PORT๋˜ํ•œ ๊ฐ™์ด ๋ณด๋‚ด์ฃผ๋ฉด์„œ ํ†ต์‹ ์ด ๋œ๋‹ค. PORT๋Š” ๊ฒŒ์ž„ ํ™”์ƒํ†ตํ™” ๋ฐ ์›น ๋ธŒ๋ผ์šฐ์ € ๋“ฑ๋“ฑ์ด ๋‹ค ๋‹ค๋ฅด๋‹ค.
PORT๋Š” 0 ~ 65535 ๊นŒ์ง€ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 0 ~ 1023์€ ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ๋ผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
HTTP : 80 ํฌํŠธ์ด๋‹ค.
HTTPS : 443 ํฌํŠธ์ด๋‹ค.
5. DNS(Domain Name System) ๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ // ์„œ๋ฒ„์ž„ ์ด๊ฑฐ
๊ธฐ์กด์—๋Š” IP๋ฅผ ํ†ตํ•ด ํ†ต์‹ ์„ ํ•ด๋ดค๋Š”๋ฐ ์ด ์•„์ดํ”ผ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ๋˜ ์•„์ดํ”ผ๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ.
์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ณ€๊ฒฝ๋œ ์•„์ดํ”ผ๋ฅผ ์•Œ ๋ฐฉ๋ฒ•์ด ์—†์–ด์ง„๋‹ค. ํ•ญ์ƒ ๋ณด๋‚ด๋˜ ๊ณณ์—๋งŒ ๋ณด๋‚ด๋ฉฐ ๊ธฐ์–ต์„ ํ–ˆ๊ธฐ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊น€.
์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” DNS๊ฐ€ ๋‚˜์™”์Œ.( ์ค‘๊ฐ„์˜ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ ๊ฐ™์€ ์„œ๋ฒ„๋ฅผ ์ œ๊ณต์„ ํ•ด์ค€๋‹ค.)
DNS์„œ๋ฒ„์— ๋„๋ฉ”์ธ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Œ. ๋„๋ฉ”์ธ์€ google.com๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋“ฑ๋ก์ด ๊ฐ€๋Šฅํ•˜๋‹ค!
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋„๋ฉ”์ธ์„ ํ†ตํ•ด ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์ง. ๋„๋ฉ”์ธ ์„œ๋ฒ„ ์ฆ‰ DNS์„œ๋ฒ„์— ๋„๋ฉ”์ธ ๋ช…์„ ํ†ตํ•ด ํ•ด๋‹น ๋„๋ฉ”์ธ์˜
IP์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•˜๊ฒŒ๋จ. DNS์„œ๋ฒ„๊ฐ€ IP์ฃผ์†Œ๋ฅผ ์‘๋‹ต์„ ํ•ด์คŒ. ๊ทธ๋ฆฌ๊ณ  ๊ทธ IP์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์ ‘์†์„ ํ•˜๊ฒŒ ๋œ๋‹ค.
IP๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๋ฉด DNS์„œ๋ฒ„์˜ IP์ฃผ์†Œ๋ฅผ ๋ฐ”๊พธ๊ณ  ๋ณธ์ธ์˜ IP์ฃผ์†Œ๋ฅผ ๋ฐ”๊พธ๊ฒŒ ๋จ. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋จ.
(๋ณ€๊ฒฝ ๋ฐ ๊ธฐ์–ต์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ ) ๋งˆ์น˜ ์ „ํ™”๋ฒˆํ˜ธ ๋ถ€ ๋งˆ๋ƒฅ ํ•ด๊ฒฐ
 
URI์™€ ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„
URI(Uniform Resource Identifier) ( ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ํ†ตํ•ฉ๋œ ๋ฐฉ๋ฒ•? ์ด๋Ÿฐ ๋œป์ž„ )
URI ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•œ๋‹ค. ํฐ๋ฒ”์œ„ ์•ˆ์— URL , URN์ด ๋“ค์–ด๊ฐ€์žˆ๋‹ค.
URL(Resource Locator) , URN(Resource Name) ์ด๋ฆ„
Uniform : ๋ฆฌ์†Œ์Šค ์‹๋ณ„ํ•˜๋Š” ํ†ต์ผ๋œ ๋ฐฉ์‹
Resource : ์ž์›, URI๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ(์ œํ•œ ์—†์Œ)
Identifier : ๋‹ค๋ฅธ ํ•ญ๋ชฉ๊ณผ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ •๋ณด
 
URL - Locator : ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ง€์ •
URN - Name : ๋ฆฌ์†Œ์Šค์— ์ด๋ฆ„์„ ๋ถ€์—ฌ
์œ„์น˜๋Š” ๋ณ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ฆ„์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
 
์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ ํ๋ฆ„
[userinfo@] : URL์— ์‚ฌ์šฉ์ž์ •๋ณด๋ฅผ ํฌํ•จํ•ด์„œ ์ธ์ฆ / ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
host : ํ˜ธ์ŠคํŠธ๋ช… / ๋„๋ฉ”์ธ ๋ช…์ด๋‚˜ IP์ฃผ์†Œ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•จ.
port : ํฌํŠธ๋Š” ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ http๋Š” 80 https๋Š” 443 ( ํฌํŠธ๋Š” ์–ด์ฐจํ”ผ ๋‹จ์ˆœํžˆ ๊ตฌ๋ถ„์„ ์œ„ํ•œ UDP์˜ ๊ธฐ๋Šฅ์ž„ )
path : ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ(path), ๊ณ„์ธต์  ๊ตฌ์กฐ
 
URL์— ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅ์„ ํ•˜๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” DNS์„œ๋ฒ„๋ฅผ ์กฐํšŒ ํ›„ IP์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์˜จ๋‹ค. port๋ฅผ ์ƒ๋žต ํ•˜๋ฉด
http๋Š” 80 , https๋Š” 443์œผ๋กœ port๊ฐ€ ์ž…๋ ฅ์ด ๋œ๋‹ค. ip์ฃผ์†Œ์™€ ํฌํŠธ์ •๋ณด๋ฅผ ์ฐพ์•„๋‚ธ๋‹ค.
HTTP์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 
์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ์†Œ์ผ“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด OS์— TCP/IP๊ณ„์ธต์— ์ „๋‹ฌ์„ ํ•œ๋‹ค. 
(์ด ๊ณผ์ •์€ ์—ฐ๊ฒฐ์„ ์‹œํ‚ค๋Š” ๊ณผ์ •์ด๋‹ค. TCP 3way handshake์˜ ๊ฐ€์ƒ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ํ™•์ธ ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.)
TCP/IP ๋กœ ๊ตฌ๊ธ€ ์„œ๋ฒ„ ์—ฐ๊ฒฐ(IP, PORT) ํ›„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
TCP/IP ํŒจํ‚ท ์ƒ์„ฑ, HTTP ๋ฉ”์‹œ์ง€ ํฌํ•จ LAN์„ ํ†ตํ•ด ์ธํ„ฐ๋„ท -> ์„œ๋ฒ„๋กœ ๊ฐ„๋‹ค.
์ธํ„ฐ๋„ท๋ง์— ๋˜์ง€๋ฉด ์ˆ˜๋งŽ์€ ๋…ธ๋“œ๋ฅผํ†ตํ•ด ์ „๋‹ฌ์ด ๋˜๊ฒŒ ๋œ๋‹ค.
์š”์ฒญ์ด ๊ฐ€๋ฉด TCP/IPํŒจํ‚ท์„ ๊นŒ๊ณ  HTTP๋ฉ”์‹œ์ง€๋ฅผ ๋ฝ‘๊ฒŒ๋œ๋‹ค. HTTP๋ฉ”์‹œ์ง€๋ฅผ ํ•ด์„์„ ํ•œ ํ›„ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„
HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋ณด๋‚ด์ค€๋‹ค.
Content-Type: text/html;charset=UTF-8 ==> ์‘๋‹ตํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์ปจํ…ŒํŠธํƒ€์ž…์„ ์•Œ๋ ค์ฃผ๋Š”๊ฒƒ์ด๋‹ค.
์‘๋‹ตํ•˜๋Š” ํ˜•ํƒœ๋Š” text/htmlํ˜•์‹์ด๊ตฌ๋‚˜. ์–ธ์–ด๋Š” UTF-8๋กœ ์…‹์ด ๋˜์–ด์žˆ๊ตฌ๋‚˜. ๋ฅผ ์•Œ๋ ค์ค€๋‹ค.
Content-Length : 3423 ==> ์‹ค์ œ ์ปจํ…ŒํŠธํƒ€์ž…์˜ html ๊ธธ์ด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฌธ์žฅ์ด๋‹ค.
 
๊ตฌ๊ธ€์„œ๋ฒ„๋งˆ์ € ๋˜‘๊ฐ™์€ ์‘๋‹ต ํŒจํ‚ท์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์œ„์— TCP/IPํŒจํ‚ท์„ ์”Œ์›Œ์„œ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ˜„์žฌ๋Š”
๋ชจ๋“  ์›น์ด ํ†ต์‹ ์„ ํ•œ๋‹ค.
 
์‘๋‹ต์ด์˜จ html ๋ฐ์ดํ„ฐ๋ฅผ ๊นŒ๋ด์„œ html๋ Œ๋”๋ง์„ ํ•œ ํ›„ ๊ฒฐ๊ณผ์„ ๋ณด๊ฒŒ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ „์ฒด์ ์ธ ๋™์ž‘์ด ์žˆ๋‹ค.
 
http(ํ”„๋กœํ† ์ฝœ์ž„)๋Š” tcp/ip๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
์ฆ‰, TCP๊ธฐ๋ฐ˜์œผ๋กœ HTTPํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ์ด ๋œ๋‹ค. HTTP๋Š” TCP/IP์Šคํƒ์— ์˜์กดํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
๋”ฐ๋ผ์„œ HTTP๋Š” TCP์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์ •์˜๋œ ํ”„๋กœํ† ์ฝœ ์ž์ฒด๊ฐ€ ๋‹ค๋ฆ„์œผ๋กœ ๊ฐ™๊ฒŒ ๋ณด๋ฉด ์•ˆ๋œ๋‹ค.
ํ•˜์ง€๋งŒ HTTP๊ฐ€ TCP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์—, HTTP๋Š” TCP์˜ ์—ฌ๋Ÿฌ ํŠน์„ฑ
(์—ฐ๊ฒฐ ์ง€ํ–ฅ์„ฑ, ์‹ ๋ขฐ์„ฑ, ํ๋ฆ„ ์ œ์–ด ๋“ฑ) ์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค.
HTTP๋Š” TCP/IP ์œ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต์€ TCP/IP๋ฅผ ํ†ตํ•ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
 
HTTP์˜ ์ค‘์š”ํ•œ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋กœ๋Š” Stateless(๋ฌด์ƒํƒœ) ํ”„๋กœํ† ์ฝœ์„ ์ง€ํ–ฅํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.
์ด Stateless๋ฅผ ์•Œ๊ธฐ ์ „์— ๋ฐ˜๋Œ€๋˜๋Š” Stateful(์ƒํƒœ์œ ์ง€)๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.
Stateful : ์ƒํƒœ์œ ์ง€ ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹

Stateful์€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹์ด๋‹ค.
Stateful(์ƒํƒœ์œ ์ง€) ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์—ฐ๊ฒฐ์ด ์œ ์ง€๊ฐ€ ๋œ๋‹ค. ์˜ˆ์‹œ๋กœ ๋“ค๋ฉด
์›น์‚ฌ์ดํŠธ์˜ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ๊ฐ™์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ–ˆ์„ ๊ฒฝ์šฐ์—๋„ ๋กœ๊ทธ์ธ์ด ์œ ์ง€๊ฐ€๋œ๋‹ค.
์ด๊ฑด ๊ณ„์† ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ฆ‰, ์ƒํƒœ์œ ์ง€๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ƒํƒœ์œ ์ง€๊ฐ€ ๋˜์•ผ์ง€
๋ฌผ๊ฑด์„ ๊ตฌ๋งคํ–ˆ์„ ๋•Œ ํ•ด๋‹น ๋กœ๊ทธ์ธ๋œ ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ๊ฒฐ์ œ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ฆ‰ ์„œ๋ฒ„์—์„œ ํšŒ์›์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€์†์ ์ธ ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.
Stateless : ๋ฌด์ƒํƒœ ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹
Stateless๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํ† ์ฝœ ๋ฐฉ์‹์ด๋‹ค.
์ฆ‰, ์—ฐ๊ฒฐ์„ ์ง€์†์ ์œผ๋กœ ํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ฃผ๊ณ  ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
๋ฐ˜๋ฉด์— Stateless(๋ฌด์ƒํƒœ)์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํšŒ์›์ด ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฆ‰, ๋กœ๊ทธ์ธ ๊ฐ™์€
์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ์˜ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด ์ €์žฅ์„ ํ•ด๋†“๋Š”๋‹ค๋˜์ง€ ๋ฐฉ์‹์„ ์ด์šฉํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฆ‰๊ฐ์ ์œผ๋กœ
ํ•„์š”ํ• ๋•Œ ์ž๊ธฐ ์ •๋ณด๋ฅผ ๊ฐ™์ด ๋„˜๊น€์œผ๋กœ์จ ์„œ๋ฒ„๋Š” ๋ฐ›๊ณ  ์š”์ฒญ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์‘๋‹ตํ•˜๊ณ  ์—ฐ๊ฒฐ์„ ๋Š์œผ๋ฉด 
ํ•ด๋‹น ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ์š”์ฒญ์—๋„ ๋น ๋ฅด๊ฒŒ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ธฐ๋•Œ๋ฌธ์— ์œ ์—ฐํ•˜๊ฒŒ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ์š”์ฒญ์„
๋ณด๋‚ด๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ์ •๋ฆฌํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์ด ์ด๋Ÿฐ๋ง์ด๋‹ค.
์ด๋ ‡๊ฒŒ Stateless(๋ฌด์ƒํƒœ)์˜ ์žฅ์ ์€ ๊ฐ‘์ž๊ธฐ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์ฆ๊ฐ€ํ•ด๋„ ์„œ๋ฒ„๋ฅผ ๋Œ€๊ฑฐ
ํˆฌ์ž…์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์‘๋‹ต์„œ๋ฒ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋‹ค๋ฅธ ์„œ๋ฒ„์—์„œ๋„ ๋˜‘๊ฐ™์ด ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์„œ ์„œ๋ฒ„์˜
์ฆ์„ค์ด ์‰ฝ๊ณ  ์Šค์ผ€์ผ ์•„์›ƒ์ด๋ผ๊ณ  ์ˆ˜ํ‰ ํ™•์žฅ์— ๋งค์šฐ ์œ ๋ฆฌํ•œ ์กฐ๊ฑด์ด ๋œ๋‹ค.
 
ํ•˜์ง€๋งŒ Stateless์—๋„ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.
๋ชจ๋“  ๊ฒƒ์„ ๋ฌด์ƒํƒœ๋กœ ์„ค๊ณ„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
๋‹จ์ˆœํ•œ ์†Œ๊ฐœํŽ˜์ด์ง€์ผ๊ฒฝ์šฐ์—๋Š” ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ์— ๋ฌด์ƒํƒœ๋กœ ์„ค๊ณ„ํ•˜๊ธฐ๊ฐ€ ์‰ฌ์›€
์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผํ•˜๋Š”๊ฒฝ์šฐ => ๋กœ๊ทธ์ธ ์„œ๋ฒ„์—์„œ ์œ ์ง€๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค์™€ ์„œ๋ฒ„์˜ ์„ธ์…˜์„ ์ž˜ ์กฐํ•ฉํ•ด์„œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
์ด๋Ÿฐ์‹์œผ๋กœ ์–ด์ฉ”์ˆ˜์—†์ด ์ƒํƒœ์œ ์ง€๊ฐ€ ํ•„์š”ํ•ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒํƒœ์œ ์ง€๋Š” ์ตœ์†Œํ•œ์œผ๋กœ ์‚ฌ์šฉ์„ ํ•ด์ค˜์•ผํ•œ๋‹ค.
(๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์–ด์ฉ”์ˆ˜์—†์ด ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.)
Stateless์—๋Š” ๋‹จ์ ์ด ํ•˜๋‚˜ ๋” ์กด์žฌํ•œ๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ๋ณด๋‚ธ๋‹ค๋Š” ์ ์ด๋‹ค.
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ๋•Œ ์•ž์—์„œ ๋ดค๋“ฏ์ด Stateless๋Š” ๋ณด๋‚ด๊ณ  ์—ฐ๊ฒฐ์„ ๋Š๋Š” ๋ฐฉ์‹์ด๋ผ ์•ž์—์„œ ๋‚ด๊ฐ€ ์„ ํƒํ•œ
์ •๋ณด๋“ค์„ ์„œ๋ฒ„์—์„œ ์ €์žฅ์„ ํ•ด์ฃผ์ง€์•Š์Œ์œผ๋กœ ์ง€์†์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ๋ณด๋‚ด๊ธฐ๋•Œ๋ฌธ์— ์ค‘๋ณต๋˜๋Š”
๋ฐ์ดํ„ฐ๋˜ํ•œ ๋งŽ์ด ์กด์žฌํ•˜๊ฒŒ ๋œ๋‹ค.( ์Œ ์ด๋ถ€๋ถ„์€ ์„ค๋ช…์ด ์ข€ ์–ด๋ ค์šด๊ฑฐ๊ฐ™๊ตฐ.. )
 
๋น„์—ฐ๊ฒฐ์„ฑ
TCP/IP ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•ด์ค€๋‹ค. TCP/IP ์†Œ์ผ“์„ ์—ฐ๊ฒฐ ํ•œ ํ›„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„
ํ•˜๋ฉด ์‘๋‹ต์ด ์˜จ๋‹ค.( ์ด ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์คฌ์Œ์—๋„ ๊ณ„์† ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ๋‹ค. ) ์ด๋Ÿฐ๊ฒŒ ์ง€์†์ด ๋˜๋ฉด ์„œ๋ฒ„์—
์ž์›๋‚ญ๋น„๊ฐ€ ๋งค์šฐ ์‹ฌํ•ด์ง„๋‹ค. ์ด๋Ÿฐ๊ฑธ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋น„์—ฐ๊ฒฐ์„ฑ์ด๋ž€ ๊ฐœ๋…์ด ์žˆ๋‹ค.
๋น„์—ฐ๊ฒฐ์„ฑ์€ ์š”์ฒญ์„ ํ•˜๊ณ  ์‘๋‹ต์ด ์˜ค๋ฉด ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฐ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์œ ์ง€ํ•˜๋Š” ์ž์›์„ ์ตœ์†Œํ™”๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์„œ๋ฒ„๊ฐ€ ์œ ์ง€ํ•ด์•ผํ•  ์ž์›์€ ์š”์ฒญ์ด ์˜ค๋ฉด ๊ทธ๊ฒƒ๋งŒ ์‘๋‹ต์„ ๋ณด๋‚ด์ค˜ ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฌ๊ธฐ๋•Œ๋ฌธ์— ๋งค์šฐ ์ข‹์€ ์žฅ์ ์ด์žˆ๋‹ค.
 
HTTP๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋ชจ๋ธ์ด๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ์ดˆ ๋‹จ์œ„์˜ ์ดํ•˜์˜ ๋น ๋ฅธ ์†๋„๋กœ ์‘๋‹ต
1์‹œ๊ฐ„ ๋™์•ˆ ์ˆ˜์ฒœ๋ช…์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์‹ค์ œ ์„œ๋ฒ„์—์„œ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ์š”์ฒญ์€ ์ˆ˜์‹ญ๊ฐœ ์ดํ•˜๋กœ ๋งค์šฐ ์ž‘์Œ.
์˜ˆ) ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ณ„์† ์—ฐ์†ํ•ด์„œ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€๋Š” ์•Š๋Š”๋‹ค.
์„œ๋ฒ„ ์ž์›์„ ๋งค์šฐ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
 
๋น„์—ฐ๊ฒฐ์„ฑ์˜ ๋‹จ์ 
TCP/IP์—ฐ๊ฒฐ์„ ์ƒˆ๋กœ ๋งบ์–ด์•ผ ํ•จ - 3 way Handshake ์‹œ๊ฐ„ ์ถ”๊ฐ€๊ฐ€ ๋œ๋‹ค.
์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ์‚ฌ์ดํŠธ๋ฅผ ์š”์ฒญํ•˜๋ฉด HTML๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, css, ์ถ”๊ฐ€ ์ด๋ฏธ์ง€ ๋“ฑ๋“ฑ ์ˆ˜ ๋งŽ์€ ์ž์›์ด ํ•จ๊ป˜ ๋‹ค์šด๋œ๋‹ค.
์ด ์ž์›๋“ค์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐ›์„๋•Œ๋งˆ๋‹ค ์—ฐ๊ฒฐํ•˜๊ณ  ๋Š๊ธฐ์—๋Š” ์‹œ๊ฐ„๋„ ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ  ๋น„ํšจ์œจ์ ์ธ๊ฑฐ ๊ฐ™๋‹ค.
ํ˜„์žฌ์˜ HTTP๋Š” ์ง€์† ์—ฐ๊ฒฐ(Persistent Connections)๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ
HTTP/2, HTTP3์—์„œ๋Š” ํ›จ์”ฌ ์ตœ์ ํ™”๊ฐ€ ๋˜์–ด์žˆ์Œ.
 
์ง€์†์—ฐ๊ฒฐ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์—ฐ๊ฒฐ ํ›„ HTML์š”์ฒญ ์‘๋‹ต ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์š”์ฒญ ์‘๋‹ต ์ด๋ฏธ์ง€ ์š”์ฒญ ์‘๋‹ต ํ›„ ์ข…๋ฃŒ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์„ ์ด์šฉ.
์š”์ฒญํ•˜๊ณ  ๋‹ค ๋ฐ›๊ณ  ๋’ค์— ์ข…๋ฃŒ๊ฐ€ ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
 
HTTP ๋ฉ”์‹œ์ง€
HTTP๋Š” (HyperText Transfer Protocol)
๋ฌธ์„œ๊ฐ„์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” html์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๊ณผ๊ฑฐ์—๋Š” ์ด๋žฌ์ง€๋งŒ ํ˜„์žฌ์—๋Š” ๋ชจ๋“  ๊ณณ์˜ HTTP๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค
์ฆ‰, ๊ณผ๊ฑฐ์—๋Š” HTTP๋ฉ”์‹œ์ง€์— ๋‹ด๋Š”๊ฒŒ ํ•œ์ •๋˜์—ˆ์—ˆ๋Š”๋ฐ ํ˜„์žฌ์—๋Š” ๋งŽ์€ ๊ฒƒ์„ ๋‹ด์•„ ๋ณด๋‚ด๊ฒŒ๋œ๋‹ค.
HTML, TEXT, image, ์Œ์„ฑ, ์˜์ƒ, ํŒŒ์ผ ๋“ฑ๋“ฑ json, xml, (api) ๋“ฑ๋“ฑ, ๊ฑฐ์˜ ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅ
์„œ๋ฒ„๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ๋„ ๋Œ€๋ถ€๋ถ„ HTTP ์‚ฌ์šฉํ•œ๋‹ค.
 
HTTP์˜ ํŠน์ง•์€ ์ฒซ๋ฒˆ์งธ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ์Œ.
Request Response ๊ตฌ์กฐ
ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์‘๋‹ต์„ ๋Œ€๊ธฐ
์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‘๋‹ต
( ์ด๋Ÿฐ์‹์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ๋‚˜๋ˆ”์œผ๋กœ์จ ์„œ๋กœ์˜ ์—ญํ• ์„ ์ œ๋Œ€๋กœ ๋ช…์‹œ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. )
 
HTTP์—๋Š”( ์š”์ฒญ๊ณผ ์‘๋‹ต ๋ฉ”์‹œ์ง€ )
start-line(์‹œ์ž‘ ๋ผ์ธ), header ํ—ค๋”, empty line ๊ณต๋ฐฑ ๋ผ์ธ(CRLF), message body(๋ฉ”์‹œ์ง€ ๋ฐ”๋””) ์˜์—ญ์ด ์กด์žฌํ•œ๋‹ค.
HTTP(์š”์ฒญ ๋ฉ”์‹œ์ง€)
1. ์‹œ์ž‘ ๋ผ์ธ(์š”์ฒญ ๋ฉ”์‹œ์ง€)
start-line(์‹œ์ž‘ ๋ผ์ธ)์€ ํฌ๊ฒŒ request-line, status-line์œผ๋กœ ๋˜์–ด์žˆ์Œ. ( ์š”์ฒญ ๋ฉ”์‹œ์ง€๋Š” request-line์ด๋ผํ•จ )
* request-line - method(get,post๋“ฑ๋“ฑ) / request-target(์š”์ฒญํ•˜๋Š” ๋Œ€์ƒ) / HTTP ๋ฒ„์ „์ด ์กด์žฌํ•œ๋‹ค.
HTTP ๋ฉ”์„œ๋“œ
์ข…๋ฅ˜ : GET, POST, PUT, DELETE
์„œ๋ฒ„๊ฐ€ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋™์ž‘ ์ง€์ •
์š”์ฒญ ๋Œ€์ƒ
absolute-path๋ผ๊ณ  ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ์‹œ์ž‘์„ํ•˜๊ฒŒ๋จ. ex) GET/search?q=hello&hi=ko HTTP/1.1
์ ˆ๋Œ€๊ฒฝ๋กœ = "/"๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ๋กœ
๋ฒ„์ „์ •๋ณด์—๋Š” HTTP ๋ฒ„์ „์ด ๋“ค์–ด๊ฐ€๊ฒŒ๋œ๋‹ค.
 
HTTP(์‘๋‹ต ๋ฉ”์‹œ์ง€)
์‹œ์ž‘ ๋ผ์ธ
start-line์— request-line, status-line์ค‘ status-line์ด ์‘๋‹ต ๋ฉ”์‹œ์ง€๋•Œ ์‚ฌ์šฉ์„ ํ•˜๊ฒŒ๋œ๋‹ค.
status-line์—๋Š” = HTTP-version / status-code / reason-pharse CRLF
HTTP ๋ฒ„์ „
HTTP ์ƒํƒœ ์ฝ”๋“œ : ์š”์ฒญ ์„ฑ๊ณต, ์‹คํŒจ๋ฅผ ๋‚˜ํƒ€๋ƒ„
200 : ์„ฑ๊ณต
400 : ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์˜ค๋ฅ˜
500 : ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜
OK => ์ด์œ  ๋ฌธ๊ตฌ : ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์งง์€ ์ƒํƒœ ์ฝ”๋“œ ์„ค๋ช… ๊ธ€(์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์งง์€ ๊ธ€)

HTTP ํ—ค๋”( ์š”์ฒญ๊ณผ ์‘๋‹ต ) ๋‘๊ฐœ์˜ ํ—ค๋”๊ฐ€ ์ƒ๊ธด๊ฒŒ ๋‹ค๋ฆ„.
header-field =>> field-name ":" OWS field-value OWS (OWS:๋„์–ด์“ฐ๊ธฐ ํ—ˆ์šฉ)
์š”์ฒญ ํ—ค๋”
GET/search?q=hello&hi=ko HTTP/1.1
Host: www.google.com  ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘์„ฑ์„ ํ•จ.
์‘๋‹ต ํ—ค๋”
Content-Type: text/html; charset=UTF-8
Content-Length: 3423 ๋“ฑ๋“ฑ
HTTP ํ—ค๋” ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š”
HTTP ์ „์†ก์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ถ€๊ฐ€์ •๋ณด๋ฅผ ๋‹ค ๋‹ด๊ณ ์žˆ๋‹ค.
์˜ˆ) ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ์ •๋ณด, ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ํฌ๊ธฐ, ์••์ถ•, ์ธ์ฆ, ์š”์ฒญ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €) ์ •๋ณด, ์„œ๋ฒ„ ์•ฑ ์ •๋ณด,
์บ์‹œ ๊ด€๋ฆฌ ์ •๋ณด ๋“ฑ๋“ฑ... ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๊ฐ€ html๋กœ ๋˜์–ด์žˆ๋Š”๊ฐ€ ์•„๋‹Œ๊ฐ€ ์•Œ๋ ค์ฃผ๋Š” ๋ถ€๊ฐ€์ •๋ณด์ž„.
ํ‘œ์ค€ ํ—ค๋”๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Œ, ํ•„์š”์‹œ ์ž„์˜์˜ ํ—ค๋” ์ถ”๊ฐ€ ๊ฐ€๋Šฅ, helloworld: hihi ์ด๋Ÿฐ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•จ.
 
HTTP ๋ฉ”์‹œ์ง€ ๋ฐ”๋””
์‹ค์ œ ์ „์†กํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด๋‹ค.
HTML๋ฌธ์„œ, ์ด๋ฏธ์ง€, ์˜์ƒ, JSON ๋“ฑ๋“ฑ byte๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์••์ถ•ํ•ด์„œ ๋ณด๋‚ด๋ฉด ์••์ถ•๋œ ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
 
HTTP ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜
GET : ๋ฆฌ์†Œ์Šค ์กฐํšŒ
POST : ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ฃผ๋กœ ๋“ฑ๋ก์— ์‚ฌ์šฉ( ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์„œ ๋ญ˜ ํ• ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ )
PUT : ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ฒด, ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ ( ๋ง๊ทธ๋Œ€๋กœ ๋ฎ์–ด๋ฒ„๋ฆฐ๋‹ค๋Š” ์˜๋ฏธ? )
PATCH : ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ ( ํŠน์ • ํ•„๋“œ ๋ช‡๊ฐœ๋ฅผ ๋ฐ”๊ฟ€๋•Œ ์‚ฌ์šฉ update )
DELETE : ๋ฆฌ์†Œ์Šค ์‚ญ์ œ
// ๊ทธ ์™ธ
HEAD : GET๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋ฉ”์‹œ์ง€ ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ , ์ƒํƒœ ์ค„๊ณผ ํ—ค๋”๋งŒ ๋ฐ˜ํ™˜
 
GET
๋ฆฌ์†Œ์Šค ์กฐํšŒ , ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋Š” query(์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ, ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง)์„ ํ†ตํ•ด์„œ ์ „๋‹ฌ
๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ณณ์ด ๋งŽ์•„์„œ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ.
POST
์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ / ์„œ๋ฒ„๋Š” ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ
๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
์ฃผ๋กœ ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๋กœ ์‹ ๊ทœ ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ
PUT
๋ฆฌ์†Œ์Šค๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒด
๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ€์ฒด
๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ
์‰ฝ๊ฒŒ ์ด์•ผ๊ธฐํ•ด์„œ ๋ฎ์–ด๋ฒ„๋ฆผ
์ค‘์š”! ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค ์œ„์น˜๋ฅผ ์•Œ๊ณ  URI ์ง€์ •
PATCH
๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ
DELETE
๋ฆฌ์†Œ์Šค ์ œ๊ฑฐ
 
HTTP ๋ฉ”์„œ๋“œ์˜ ์†์„ฑ
์•ˆ์ „(Safe Methods)
ํ˜ธ์ถœํ•ด๋„ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋ฉฑ๋“ฑ(Idempotent Methods)
ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜๋“  ๋‘ ๋ฒˆ ํ˜ธ์ถœํ•˜๋“  100๋ฒˆ ํ˜ธ์ถœํ•˜๋“  ๊ฒฐ๊ณผ๊ฐ€ ๋˜‘๊ฐ™๋‹ค ๋ผ๋Š” ์˜๋ฏธ์ž„ ๋ฉฑ๋“ฑ์€
์บ์‹œ๊ฐ€๋Šฅ(Cacheable Methods)
GET, HEAD, POST, PATCH ์บ์‹œ๊ฐ€๋Šฅ
์‹ค์ œ๋กœ๋Š” GET, HEAD์ •๋„๋งŒ ์บ์‹œ๋กœ ์‚ฌ์šฉ
POST, PATCH๋Š” ๋ณธ๋ฌธ ๋‚ด์šฉ๊นŒ์ง€ ์บ์‹œ ํ‚ค๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ตฌํ˜„์ด ์‰ฝ์ง€ ์•Š์Œ.
์บ์‹œ : ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ›์•„์˜จ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€
 
HTTP ๋ฉ”์„œ๋“œ ํ™œ์šฉ
ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก
1. ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก
GET
์ฃผ๋กœ ์ •๋ ฌ ํ•„ํ„ฐ(๊ฒ€์ƒ‰์–ด)
2. ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก
POST, PUT, PATCH
ํšŒ์›๊ฐ€์ž…, ์ƒํ’ˆ ์ฃผ๋ฌธ, ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก, ๋ฆฌ์†Œ์Šค ๋ณ€๊ฒฝ ๋“ฑ๋“ฑ
 
HTTP ํ—ค๋”
header-field = field-name ":" OWS field-value OWS (OWS: ๋„์–ด์“ฐ๊ธฐ ํ—ˆ์šฉ)
field-name์€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ฌธ ์—†์Œ
GET /search?q=hello&hl=ko HTTP/1.1
Host:www.google.com1
HTTPํ—ค๋”์˜ ์šฉ๋„๋Š” (( ์ค‘๋ณต ))
HTTP ์ „์†ก์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ถ€๊ฐ€์ •๋ณด
์˜ˆ) ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ๋‚ด์šฉ, ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ํฌ๊ธฐ, ์••์ถ•, ์ธ์ฆ, ์š”์ฒญ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ์ •๋ณด, ์บ์‹œ ๊ด€๋ฆฌ ์ •๋ณด..๋“ฑ๋“ฑ
ํ‘œ์ค€ํ—ค๋”๊ฐ€ ๋งค์šฐ ๋งŽ์Œ
ํ•„์š”์‹œ ์ž„์˜์˜ ํ—ค๋” ์ถ”๊ฐ€ ๊ฐ€๋Šฅ!

HTTP ํ—ค๋” ๊ณผ๊ฑฐ์—๋Š” ํ—ค๋”๋ฅผ ๋ถ„๋ฅ˜ํ–ˆ์Œ.
๋ฆฌ์†Œ์Šค์™€ ํ–‰์œ„๋ฅผ ๋ถ„๋ฆฌ ํ•ด์•ผํ•จ.(์ด๊ฒƒ์€ http ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ€๋Šฅ )
 
HTTP ์ƒํƒœ ์ฝ”๋“œ
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์ฒ˜๋ฆฌ ์ƒํƒœ๋ฅผ ์‘๋‹ต์—์„œ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ
1xx (informational) : ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์–ด ์ฒ˜๋ฆฌ์ค‘
2xx (Successful) : ์š”์ฒญ ์ •์ƒ ์ฒ˜๋ฆฌ
3xx (Redirection) : ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ํ–‰๋™์ด ํ•„์š”
4xx (Client Error) : ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜, ์ž˜๋ชป๋œ ๋ฌธ๋ฒ•๋“ฑ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Œ
5xx (Server Error) : ์„œ๋ฒ„ ์˜ค๋ฅ˜, ์„œ๋ฒ„๊ฐ€ ์ •์ƒ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•จ.
 
ํ‘œํ˜„
Content-Type : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ํ˜•์„
Content-Encoding : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ์••์ถ• ๋ฐฉ์‹
Content-Language : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ์ž์—ฐ ์–ธ์–ด
Content-Length : ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด
ํ‘œํ˜„ ํ—ค๋”๋Š” ์ „์†ก, ์‘๋‹ต ๋‘˜๋‹ค ์‚ฌ์šฉ
 
Content-Type( ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹ ์„ค๋ช… )
๋ฏธ๋””์–ด ํƒ€์ž…, ๋ฌธ์ž ์ธ์ฝ”๋”ฉ
์˜ˆ) text/html; charset=utf-8 , application/json , image/png(์ด๋ฏธ์ง€ ๊ด€๋ จ ์ปจํ…ํŠธํƒ€์ž…)
Content-Encoding( ํ‘œํ˜„ ๋ฐ์ดํ„ฐ ์ธ์ฝ”๋”ฉ ) ์••์ถ•์šฉ
ํ‘œํ˜„ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ณณ์—์„œ ์••์ถ• ํ›„ ์ธ์ฝ”๋”ฉ ํ—ค๋” ์ถ”๊ฐ€
๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์ชฝ์—์„œ ์ธ์ฝ”๋”ฉ ํ—ค๋”์˜ ์ •๋ณด๋กœ ์••์ถ• ํ•ด์ œ
Content-Language(ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ์ž์—ฐ ์–ธ์–ด)
์˜ˆ) ko, en, en-US
๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์•ˆ์— ํ‘œํ˜„ ๋ณธ๋ฌธ์•ˆ์— ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ์–ธ์–ด
Content-Length(ํ‘œํ˜„ ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด)
๋ฐ”์ดํŠธ ๋‹จ์œ„
 
ํ˜‘์ƒ ํ—ค๋”(์ฝ˜ํ…์ธ  ๋„ค๊ณ ์‹œ์—์ด์…˜)
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธ๋Š” ํ‘œํ˜„ ์š”์ฒญ
Accept : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฏธ๋””์–ด ํƒ€์ž… ์ „๋‹ฌ
Accept-Charset : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฌธ์ž ์ธ์ฝ”๋”ฉ
Accept-Encoding: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์••์ถ• ์ธ์ฝ”๋”ฉ
Accept-Language: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์ž์—ฐ ์–ธ์–ด
ํ˜‘์ƒ ํ—ค๋”๋Š” ์š”์ฒญ์‹œ์—๋งŒ ์‚ฌ์šฉ!
 
์ „์†ก ๋ฐฉ์‹ ์„ค๋ช…
๋‹จ์ˆœ ์ „์†ก
ํ•œ๋ฒˆ์— ์š”์ฒญํ•˜๊ณ  ํ•œ๋ฒˆ์— ๋ฐ›๋Š” ๋ฐฉ์‹
์••์ถ• ์ „์†ก
์„œ๋ฒ„์—์„œ ์••์ถ•ํ•ด์„œ ๋ณด๋‚ด์คŒ ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“ค์–ด์„œ ์ข‹์Œ.
Content-Encoding: gzip ์ด๋Ÿฐ๊ฑธ ์ถ”๊ฐ€ํ•ด์ค˜์•ผํ•จ.
๋ถ„ํ•  ์ „์†ก
Transfer-Encoding : chunked ์ชผ๊ฐœ์„œ ๋ณด๋‚ด๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ž„.
๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ๋ณด๋ƒ„ / ๋ถ„ํ• ํ•ด์„œ ์ „์†กํ•˜๋ฉด ์˜ค๋Š”๋Œ€๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ.
์ด๊ฑธ ์‚ฌ์šฉํ• ๋•Œ๋Š” ContentLength๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋Œ. ๊ธธ์ด๋ฅผ ๋ถ„ํ• ํ•ด์„œ ๋ณด๋‚ด๊ธฐ๋•Œ๋ฌธ์— ๋ชจ๋ฆ„
ex) 5 Hello 5 Wolrd
๋ฒ”์œ„ ์ „์†ก
๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ.
 
์ผ๋ฐ˜ ์ •๋ณด
From ( ์œ ์ € ์—์ด์ „ํŠธ์˜ ์ด๋ฉ”์ผ ์ •๋ณด )
์ผ๋ฐ˜์ ์œผ๋กœ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ
๊ฒ€์ƒ‰ ์—”์ง„ ๊ฐ™์€ ๊ณณ์—์„œ, ์ฃผ๋กœ ์‚ฌ์šฉ
์š”์ฒญ์—์„œ ์‚ฌ์šฉ
 
Referrer(์ด์ „ ์›น ํŽ˜์ด์ง€ ์ฃผ์†Œ)
ํ˜„์žฌ ์š”์ฒญ๋œ ํŽ˜์ด์ง€์˜ ์ด์ „ ์›น ํŽ˜์ด์ง€ ์ฃผ์†Œ
A -> B๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ B๋ฅผ ์š”์ฒญํ•  ๋•Œ Referrer: A ๋ฅผ ํฌํ•จํ•ด์„œ ์š”์ฒญ
Referrer๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์œ ์ž… ๊ฒฝ๋กœ ๋ถ„์„ ๊ฐ€๋Šฅ
์š”์ฒญ์—์„œ ์‚ฌ์šฉ
 
User-Agent(์œ ์ € ์—์ด์ „ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •๋ณด)
ํด๋ผ์ด์–ธํŠธ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •๋ณด(์›น ๋ธŒ๋ผ์šฐ์ € ์ •๋ณด, ๋“ฑ๋“ฑ)
ํ†ต๊ณ„ ์ •๋ณด
์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํŒŒ์•… ๊ฐ€๋Šฅ
์š”์ฒญ์—์„œ ์‚ฌ์šฉ
 
Server(์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” Origin์„œ๋ฒ„์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ •๋ณด)
์‹ค์ œ http์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ๋งŽ์€ ์„œ๋ฒ„๋ฅผ ๊ฑฐ์ณ์„œ ๊ฐ€๊ฒŒ๋จ( ๋…ธ๋“œ )
๋งˆ์ง€๋ง‰์— ์‹ค์ œ ๋‚˜์˜ ์š”์ฒญ์„ ๋ฐ›๋Š” ๋์—์žˆ๋Š” http์‘๋‹ต์„ ํ•ด์ฃผ๋Š” ์ง„์งœ ์„œ๋ฒ„๋ฅผ Origin์„œ๋ฒ„๋ผํ•จ.
(๋‚˜์˜ ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ๋งˆ์ง€๋ง‰ ์„œ๋ฒ„)
์‘๋‹ต์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.
 
Date( ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ•œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ )
์‘๋‹ต์—์„œ ์‚ฌ์šฉ
 
Host ํ—ค๋” ( ์š”์ฒญํ•œ ํ˜ธ์ŠคํŠธ ์ •๋ณด(๋„๋ฉ”์ธ))
์š”์ฒญ์—์„œ ์‚ฌ์šฉ
ํ•„์ˆ˜
ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋•Œ
ํ•˜๋‚˜์˜ IP์ฃผ์†Œ์— ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์ด ์ ์šฉ๋˜์–ด ์žˆ์„ ๋•Œ
์ด๋•Œ ๊ตฌ๋ถ„์„ ํ•ด์คŒ
 
์ธ์ฆ ๊ด€๋ จ ํ—ค๋”
(ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ „๋‹ฌ)
Authorizaion: Basic xxxxxxxxxxxxx
 
์ฟ ํ‚ค
Set-Cookie: ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ฟ ํ‚ค ์ „๋‹ฌ(์‘๋‹ต)
Cookie: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•˜๊ณ , HTTP ์š”์ฒญ์‹œ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ
 
 
 
 

'๐ŸŒ Network > ๐Ÿ“œHTTP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[HTTP] ์›น ํƒ„์ƒ ๋ฐฐ๊ฒฝ  (1) 2024.12.18
[HTTP] HTTP๋ž€?  (1) 2024.12.18
[HTTP] WebSocket  (3) 2024.12.08
[HTTP] CSR & SSR ์ด๋ž€?  (1) 2024.11.14
(HTTP) Stateless, Stateful  (3) 2024.04.26
'๐ŸŒ Network/๐Ÿ“œHTTP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [HTTP] HTTP๋ž€?
  • [HTTP] WebSocket
  • [HTTP] CSR & SSR ์ด๋ž€?
  • (HTTP) Stateless, Stateful
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (156) N
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (26)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
      • ๐Ÿ› ๏ธBackend (53) N
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (22) N
        • ๐ŸŒณSpring (11)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • Data Structure (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (65)
      • ์ •๋ณด (1)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํด๋ž˜์Šค
    ์Šคํ”„๋ง
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…
    ์„ธ๊ณ„ํ™”
    spring
    ํŒŒ์ด์ฌ
    ์ž๋ฐ”
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    ์ž…์ถœ๋ ฅ
    Java
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ๋ฐฉํ†ต๋Œ€
    Python
    Spring Framework
    ๋ฐฉ์†ก๋Œ€
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ํด๋ผ์šฐ๋“œ
    ๋‹คํ˜•์„ฑ
    ์ปดํŒŒ์ผ๋Ÿฌ
    ์œ ๋น„์ฟผํ„ฐ์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
HTTP
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”