در این مقاله قصد داریم شمارا با وب سرور و اینکه چگونه کار میکنند و چرا برای ما اهمیت دارند، آشنا کنیم.
مفهوم web server میتواند به نرمافزار، سختافزار یا همکاری این دو باهم برمیگردد.
مفهوم وب سرور در سختافزار
در قسمت سختافزاری، وب سرور کامپیوتری است که نرمافزارها و محتویات وبسایتها در آن جای میگیرد. برای مثال عکسها، فایلهای html، استایل دهی css ها، فایلهای جاوا اسکریپت و …در وب سرور جای می گیرند.
بهطور پایه، وب سرور برای میزبانی وبسایتها استفاده میشده، اما درگیر وب سرورهایی نظیر FTP، ایمیل و …نیز وجود دارند.
وب سرور در این قسمت به اینترنت متصل شده و دادههای فیزیکیای که مابین دیگر وسایلی که به اینترنت وصل هستند را پشتیبانی میکند.
در قسمت نرمافزاری، وب سرور بخشهای مختلفی را شامل میشود که چگونگی دسترسی کاربران به فایلهای میزبانیشده را نشان میدهد.
HTTP یک وب سرور است که لینکها را درک میکند و میتواند از طریق نام دامنههایی که ذخیره میکند مورد دسترسی قرار گیرد و محتویات وبسایتهای میزبانیشده را به وسایل کاربران تحویل میدهد.
در پایهترین حالت، وقتیکه یک مرورگر فایلی را نیاز دارد که روی یک web server میزبانیشده است، مرورگر از طریق HTTP پَروَنجا را درخواست میکند. وقتیکه درخواست به سختافزار صحیح یا همان وب سرور میرسد، نرمافزار یا HTTP درخواست را قبول کرده، مدرک مورد درخواست را پیدا میکند و بازهم از طریق همان HTTP به مرورگر میفرستد.
برای انتشار یک وبسایت، شما به web server داینامیک یا استاتیک نیاز دارید.
اما ببینیم وب سرورهای استاتیک یا داینامیک چه هستند؟
وب سرور های استاتیک
شامل یک سختافزار به همراه HTTP (نرمافزار) هست. ما ازاینجهت به آن استاتیک میگوییم که سرور، فایلهای میزبانیشده را به مرورگر شما میفرستد.
وب سرور های داینامیک
شامل وب سرور استاتیک و نرمافزار اضافی میشود، اغلب یک اپلیکیشن و یک دیتابیس. ما ازاینجهت به آن داینامیک میگوییم که سرور، فایلهای میزبانیشده را قبل از فرستادن آنها از طریق سرور HTTP آپدیت میکند.
مثال
بهعنوانمثال، وقتی شما آخرین صفحه از وبسایت خود را در مرورگر تماشا میکنید، سرور درخواست دهنده میتواند یک قالب از HTML با دادههای آن را پر کند. سایتهایی نظیر ویکیپدیا و MDN، هزاران وب پیج دارند. غالباً، این سایتها از تعداد کمی قالب HTML، روی دیتابیسی عظیم، خیلی بیشتر از هزاران پوشه HTML استاتیک، تشکیلشدهاند. این تنظیمات باعث میشوند نگهداری و تحویل محتویات آسانتر شود.
شیرجهای عمیقتر
برای درک بهتری از این عنوان، ابتدا گفتههای بالا را دوباره مرور میکنیم.
گفتیم که برای واکشی صفحات وب، مرورگر شما درخواستی به web server میفرستد که در میان دادههای ذخیرهشدهی خود به دنبال پَروَنجا درخواستی میگردد. هنگام پیدا کردن پَروَنجا، سرور آن را خوانده، آن را پردازش کرده (درصورتیکه لازم باشد) و آن را به مرورگر میفرستد. بیایید نگاهی به این مراحل با جزئیات بیشتری بیندازیم.
میزبانی فایلها
اولازهمه، وب سرور باید فایلهای وبسایتها را ذخیره کرده، آنها را در پوشههای HTML و داراییهای مربوطه نظیر تصاویر، فونتها، استایل شیت های CSS و فایلهای جاوا اسکریپت و …نامگذاری کند.
به لحاظ تکنیکی، شما میتوانید تمام اینها را روی کامپیوتر خود نگهداری کنید، اما به دلایل زیر، بهتر است که وب سرور آنها مورد ذخیره خود داشته باشد:
- وب سرور اختصاصی اغلب در دسترس است.
- بهاستثنای خرابی و مشکلات سیستم، وب سرور همیشه به اینترنت متصل است.
- وب سرور میتواند همان آدرس IP را درآنواحد داشته باشد.
- وب سرور اغلب بهوسیلهی شخص سومی، نگهداری میشود.
به همین دلیل، پیدا کردن یک میزبان خوب، قدم اصلی ساخت وبسایت شماست.
پیشنهادهای مختلف شرکتهای مختلف را محک بزنید، شرکتی را انتخاب کنید که مناسب شما و متناسب با بودجه شماست.
وقتی میزبان وب خود را یافتید و مراحل آن را انجام دادید، نوبت به آپلود فایلهایتان روی web server میرسد.
برقراری ارتباط از طریق HTTP
در مرحلهی بعدی، وب سرور برای HTTP یا HYPERTEXT TRANSFER PROTOCOL پشتیبانی مهیا میکند. همانگونه که از اسمش مشخص است، HTTP مشخص میکند که لینکهای حاوی اسناد، چگونه بین دو کامپیوتر ردوبدل شود.
HTTP قوانینی را وضع میکند که یک سرور و یک کلاینت چگونه با یکدیگر ارتباط برقرار کنند.
- معمولاً فقط کلاینتها از طریق HTTP، فقط به سرورها درخواست ارسال میکنند. یک سرور میتواند قبل از قبل از اینکه عملیات درخواست صورت پذیرد، طی مکانیزیمی به نام فشار سرور، دادهها را در حافظه کَشِ کلاینت، انباشته کند.
- وقتی درخواست از طریق HTTP صورت پذیرد، کلاینت میبایست لینک فایلها درخواست شده را آماده کند.
- وب سرور باید به تکتک درخواستهای HTTP، با کمترین میزان اشتباه پاسخ بگوید.
روی وب سرور ، HTTP مسئول پردازش و جوابگویی به درخواستها هست.
- بهمحض دریافت درخواست، HTTP اول چک میکند که لینک درخواست شده با پَروَنجا موجود تطابق دارد یا خیر.
- اگر مطابقت داشته باشد، سرور فایلها را به مرورگر میفرستد، اگرنه، اپلیکیشن سرور، فایلهای موردنظر را میسازد.
- اگر هیچ پروسهای نمیتواند انجام گیرد، web server پیغام ارور را به مرورگر برمیگرداند که معمولاً پیغام 404 not found هست. ارور 404، ازجمله ارور های معروفی است که طراحان وبسایت زحمت و زمانی را برای طراحی به آن اختصاص میدهند.
در آخر شمارا با محتویات داینامیک و استاتیک آشنا میکنیم:
محتویات استاتیک
صراحتاً بگوییم، یک سرور میتواند هم محتویات استاتیک و هم داینامیک را پذیرش کند. وبسایتهای استاتیک در نصب بسیار راحت بوده، پس ما هم به شما پیشنهاد میکنیم اولین سروری که برای وبسایت خود استفاده میکنید استاتیک باشد.
محتویات داینامیک
به این معناست که سرور محتویات را پردازش کرده و آن را بر فراز پایگاه داده تولید میکند. این رویکرد انعطافپذیری بیشتری را ایجاد کرده، اما پشته تکنیکی پیچیدهتر بوده و ساخت وبسایت را چالشبرانگیزتر میکند.
بسیاری از تکنولوژیهای سرورهای کاربردی وجود دارد که برای پیشنهاد مناسب نیستند. بسیاری از سرورهای کاربردی برای دستهبندیهای خاصی از وبسایتها مثل وبلاگها، ویکیپدیا یا تجارت الکترونیک اختصاص دادهشدهاند. بقیه به حالت عمومی وجود دارند.
اگر انتخاب شما ساخت وبسایت داینامیک هستید، وقت خود را به انتخاب تکنولوژی مناسب خود اختصاص دهید، در غیر این صورت باید برنامهنویسی یاد بگیرید (که این خود مبحثی بسیار هیجانانگیز است).