جوجو | jojo
جوجو، وبسروری در ابعاد جوجه برای کارهای کوچک
داستان نوشتن جوجو
وبسروری که تنظیمات مودم TP-link TD-8811 توی اتاقم رو serve میکنه اسمش micro_httpd بود. از سر بیکاری اسم وبسرورش رو سرچ کردم و به این مخزن رسیدم. کدش برام جالب بود و به سرم زد که برای مرور کردن و یادگرفتن چیزهای جدید از مهندسی کامپیوتر یک وبسرور ساده دیگه شبیه micro_httpd خودم از صفر بنویسم و چیزهایی که یاد میگیرم رو در قالب یک سری محتوای ویدیویی یا متنی منتشر کنم. همین! من هر روز حدود ۱.۵ ساعت برای این موضوع وقت میزارم و امیدوارم هر وقت به نتیجه خوبی رسیدم شروع کنم به تولید محتوا و اشتراکگذاری آنچه که یادم گرفتم.
ساخت یک وبسرور ساده با PHP
در این مخزن سعی میکنم مرحله به مرحله پیش برم و یک وبسرور ساده طبق قواعد Hypertext Transfer Protocol -- HTTP/1.1 بسازم. در این مسیر با مفاهیم TCP/IP و سیستمعامل بیشتر آشنا خواهم شد و سعی میکنم هرآنچه که در این مسیر یاد میگیرم رو به نحو خاصی با دیگران به اشتراک بگزارم. از اونجایی که من در حالحاضر با زبان PHP بیشتر کار میکنم ترجیح دادم ابتدا با PHP 8.0 این کار رو انجام بدم و بعد در C بازنویسی کنم. از طریق بخش Issue ها میتونید کارهایی در حال پیادهسازی یا مطالعهشون هستم رو مشاهده کنید.
اهداف پیشرو
V1
- Serve basic files (images, html, css, js, ...)
- Handle requests in blocking-mode
V2
- Handle requests in concurrent-mode
مطالب بخشهای زیر دائما در حال بهروزشدن میباشد.
کلیات دانشی که در ساخت یک وبسرور خیلی ساده باید بلد باشیم:
- شبکه
- سیستمعامل
- برنامهنویسی در لایه سوکت
- مطالعه RFC های مربوط به پروتکل HTTP (شناخت پروتکل)