Skip to content

woojin-choe/SystemProgramming-ProxyServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงฉ SystemProgramming-ProxyServer-KW

C ๊ธฐ๋ฐ˜ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค์™€ ์„ธ๋งˆํฌ์–ด๋ฅผ ํ™œ์šฉํ•ด ๊ตฌํ˜„ํ•œ HTTP Proxy Server์ž…๋‹ˆ๋‹ค.
์‹ค์ œ ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ์„ ์ค‘๊ณ„ํ•˜๋ฉฐ, ์บ์‹œ ์‹œ์Šคํ…œ๊ณผ ๋กœ๊ทธ ๊ธฐ๋ก, ์‹œ๊ทธ๋„ ๋ฐ ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๊นŒ์ง€ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๐Ÿ”Œ ์†Œ์ผ“ ํ†ต์‹  ๊ธฐ๋ฐ˜ Proxy Server

    • ํด๋ผ์ด์–ธํŠธ์˜ HTTP ์š”์ฒญ ์ˆ˜์‹  ๋ฐ ์›น ์„œ๋ฒ„๋กœ ์ „์†ก
    • ์„œ๋ฒ„ ์‘๋‹ต์„ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌ
  • ๐Ÿ“ ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ๋ฐ SHA1 ํ•ด์‹ฑ

    • URL์„ SHA1์œผ๋กœ ํ•ด์‹ฑํ•˜์—ฌ ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
    • HIT ์‹œ ์บ์‹œ ํŒŒ์ผ ์ „์†ก, MISS ์‹œ ์›น ์š”์ฒญ ํ›„ ์บ์‹œ ์ €์žฅ
  • ๐Ÿ“ ๋กœ๊ทธ ์‹œ์Šคํ…œ

    • ์š”์ฒญ URL, ์‹œ๊ฐ, ์บ์‹œ HIT/MISS ์—ฌ๋ถ€ ๋“ฑ์„ ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋ก
    • ํ˜•์‹: [Miss]www.example.com-[2025/05/01, 13:40:10]
  • ๐Ÿ‘ฅ ๋‹ค์ค‘ ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ (fork())

    • ํด๋ผ์ด์–ธํŠธ๋งˆ๋‹ค ์ž์‹ ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ ๋ฐ ์š”์ฒญ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ
    • SIGCHLD ์‹œ๊ทธ๋„๋กœ ์ข€๋น„ ํ”„๋กœ์„ธ์Šค ๋ฐฉ์ง€
  • โฑ๏ธ ์‹œ๊ทธ๋„ ๋ฐ ํƒ€์ž„์•„์›ƒ ์ฒ˜๋ฆฌ

    • alarm() + SIGALRM์„ ํ™œ์šฉํ•œ 10์ดˆ ํƒ€์ž„์•„์›ƒ ๊ธฐ๋Šฅ
  • ๐Ÿ›ก๏ธ ์„ธ๋งˆํฌ์–ด๋ฅผ ์ด์šฉํ•œ ๋™๊ธฐํ™”

    • ์บ์‹œ ๋ฐ ๋กœ๊ทธ ์ ‘๊ทผ ์‹œ ์ž„๊ณ„ ๊ตฌ์—ญ ๋ณดํ˜ธ

๐Ÿ–ฅ๏ธ ์‹คํ–‰ ํ™˜๊ฒฝ

  • OS: Ubuntu 20.04 LTS (64-bit)
  • Language: C
  • Tools: GCC, Makefile, SHA1, vi/vim

๐Ÿ“‚ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์˜ˆ์‹œ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published