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