وب سرور(Web Server) چیست؟
تعریف و تاریخچه وب سرور
یک وب سرور (که به آن سرور HTTP نیز گفته میشود ) به سروری اطلاق میشود که محتوای وب را در اینترنت ارائه میدهد. به عنوان بخشی از یک شبکه کامپیوتری، اسناد را به کلاینتها – مانند یک مرورگر وب – منتقل میکند.
این اصطلاح میتواند به دو چیز اشاره داشته باشد: خود نرمافزار وب سرور (برنامه واقعی) یا رایانهای که نرمافزار وب سرور را اجرا میکند . مورد دوم همچنین میزبان (host) نامیده میشود (یک میزبان ممکن است چندین برنامه سرور را اجرا کند). در زیر، ما به نرمافزار وب سرور/نرمافزار (یا برنامه ) سرور HTTP یا میزبان اشاره خواهیم کرد ، زمانی که یکی از معانی به صراحت مد نظر باشد.
توسعه سرورهای HTTP ارتباط نزدیکی با فیزیکدان و دانشمند کامپیوتر بریتانیایی، تیم برنرز-لی، دارد. در سال ۱۹۸۹، او پیشنهاد سادهسازی تبادل اطلاعات در CERN (سازمان اروپایی تحقیقات هستهای) با استفاده از یک سیستم ابرمتن را داد. او به همراه رابرت کایلیائو، در سال ۱۹۹۰ طرح پروژهای را ارائه دادند که در نهایت اولین سرور وب، “CERN httpd”، اولین مرورگر وب و چندین فناوری اصلی وب (مانند HTML و HTTP) را تولید کرد. بنابراین، برنرز-لی بنیانگذار وب جهانگستر (World Wide Web) محسوب میشود.
نحوه عملکرد فناوری وب سرور(Web Server)
نرمافزار یک سرور HTTP در درجه اول برای ارائه دادهها برای رندر کردن محتوای وب وجود دارد. این برنامه با یک کلاینت وب – معمولاً یک مرورگر یا یک خزنده موتور جستجو – ارتباط برقرار میکند .
وقتی از یک وبسایت بازدید میکنید، آدرس آن را در مرورگر خود وارد میکنید. مرورگر درخواستی را به وب سرور ارسال میکند که به عنوان مثال، یک صفحه HTML پاسخ میدهد. این میتواند یک سند استاتیک ذخیره شده روی میزبان یا به صورت پویا تولید شده باشد – به این معنی که وب سرور قبل از پاسخ دادن، کدی را (به زبانهای PHP، جاوا و غیره) اجرا میکند. مرورگر پاسخ را تفسیر میکند و اغلب درخواستهای اضافی برای مواردی مانند تصاویر یا فایلهای CSS را ایجاد میکند.
انتقال دادهها از پروتکل HTTP (یا شکل رمزگذاریشده آن، HTTPS) استفاده میکند که بر اساس پروتکلهای شبکه IP و TCP (که کمتر رایج است، UDP) ساخته شده است. یک وب سرور میتواند محتوا را به طور همزمان به بسیاری از مرورگرها تحویل دهد. اینکه چه تعداد درخواست میتواند مدیریت شود و چقدر سریع، به سختافزار و بار میزبان بستگی دارد. پیچیدگی نیز مهم است: محتوای پویا از منابع بیشتری نسبت به محتوای استاتیک استفاده میکند.
انتخاب سیستم میزبان مناسب – چه مجازی، اختصاصی یا ابری – به جلوگیری از اضافه بار کمک میکند. با این حال، حتی با یک سرور مناسب، ممکن است به دلیل مشکلات سختافزاری یا قطعی برق در مرکز داده، قطعی رخ دهد. اگرچه این اتفاق نادر است، اما خرابی منجر به آفلاین شدن وبسایت میشود، به خصوص اگر روی یک دستگاه واحد و بدون شبکه تحویل محتوا (CDN) میزبانی شود – که برای وبسایتهای کوچکتر معمول است.
توابع اضافی وب سرور(Web Server)
اگرچه تحویل محتوا وظیفه اصلی یک وب سرور است، بسیاری از برنامههای سرور HTTP ویژگیهای اضافی ارائه میدهند:
عملکرد اضافی وب سرور | توضیحات |
---|---|
امنیت | رمزگذاری ارتباط بین سرور و کلاینت از طریق HTTPS |
احراز هویت کاربر | احراز هویت HTTP برای بخشهای محدود یک برنامه وب |
تغییر مسیر | هدایت درخواستهای سند با استفاده از موتور بازنویسی |
ذخیره سازی | ذخیره اسناد پویا به طور موقت برای پاسخهای سریعتر و کاهش بار سرور |
مدیریت کوکیها | ارسال و پردازش کوکیهای HTTP |
یک میزبان میتواند نه تنها نرمافزار وب سرور، بلکه انواع دیگری از برنامههای سرور را نیز اجرا کند – برای مثال، یک سرور FTP برای آپلود فایل یا یک سرور پایگاه داده برای محتوای پویا. (در بیشتر موارد، یک ارائهدهنده خدمات اینترنتی حرفهای از سختافزار جداگانهای برای این موارد استفاده میکند.) به طور کلی، انواع مختلفی از سرورها برای اهداف مختلف استفاده میشوند – علاوه بر موارد ذکر شده، سرورهای ایمیل، سرورهای بازی و سرورهای پروکسی نیز به طور گسترده مورد استفاده قرار میگیرند.
سرور وب در مقابل میزبانی وب
سرورهای وب چه نقشی در میزبانی وب دارند؟ و اصلاً میزبانی وب چیست ؟ اساساً، سرورهای وب بخش اساسی میزبانی وب هستند. اما بسیاری از مردم این دو اصطلاح را با هم اشتباه میگیرند. تفاوت آنها در اینجا آمده است:
میزبانی وب به معنای ذخیره و ارائه محتوای وب است. فایلهای یک وبسایت در فضای وب (فضای ذخیرهسازی آنلاین برای وبسایتها) ذخیره میشوند. فضای وب مانند یک هارد دیسک است و برای دسترسی آنلاین به محتوای وبسایت باید به یک وب سرور متصل شود.
یک میزبان (کامپیوتر وب سرور) و فضای وب متصل به آن توسط یک ارائه دهنده میزبانی وب (یا به طور خلاصه “میزبان”) ارائه میشود. بسیاری از ارائه دهندگان خدمات اینترنتی – مانند IONOS – میزبانی وب نیز ارائه میدهند. اگر یک سرور خودمدیریت شده را انتخاب کنید، باید خودتان نرمافزار وب سرور را نصب کنید.
نرمافزار وب سرور محبوب (رایگان)
بسیاری از برنامهها به شما امکان میدهند وب سرور خود را اداره کنید – اغلب به صورت رایگان. نرمافزار سرور HTTP باید با سیستم عامل میزبان سازگار باشد . اکثر برنامههای وب سرور بر روی یونیکس یا لینوکس ساخته شدهاند، اگرچه بسیاری از آنها روی ویندوز نیز اجرا میشوند. استثنای اصلی Microsoft IIS است که فقط روی ویندوز اجرا میشود.
برخی از پرکاربردترین برنامههای وب سرور عبارتند از:
سرور HTTP آپاچی
سرور HTTP آپاچی رایگان و به صورت متنباز توسعه داده شده است . طراحی ماژولار آن تقریباً روی هر سیستم عاملی کار میکند و پرکاربردترین سرور HTTP در سطح جهان است. از محتوای پویا به خوبی پشتیبانی میکند و میتواند زبانهای اسکریپتنویسی مانند PHP را ادغام کند یا برنامههای دیگر را از طریق CGI اجرا کند.
ادغام نرمافزارهایی مانند PHP و MySQL (که برای محتوای پویا مورد نیاز هستند) در یک وب سرور آپاچی میتواند پیچیده باشد. با این حال، این فرآیند با بستههای نرمافزاری مانند XAMPP بسیار آسانتر میشود . این بستهها با گنجاندن آپاچی به همراه ابزارهای پایگاه داده لازم و زبانهای اسکریپتنویسی مختلف، راهاندازی را به طور قابل توجهی ساده میکنند .
آپاچی تامکت
این یک نرمافزار وب سرور رایگان و متنباز از اکوسیستم جاوا است. هر کسی که به دنبال تولید محتوای وب سمت سرور با استفاده از جاوا است، Apache Tomcat را به عنوان یک کانتینر وب مناسب خواهد یافت. همچنین میتواند از طریق یک رابط AJP در یک وب سرور دیگر – مانند Apache HTTP Server یا Microsoft IIS – ادغام شود.
انجینکس
NGINX همچنین رایگان است و چیزی بیش از یک وب سرور است. این وب سرور شامل ویژگیهایی مانند پروکسی معکوس است که بار سرور HTTP را کاهش داده و سرعت را بهبود میبخشد. محبوبیت آن در سالهای اخیر به طور پیوسته افزایش یافته است.
مایکروسافت آیآیاس
خدمات اطلاعات اینترنتی مایکروسافت (IIS) یک مجموعه نرمافزاری سرور است که شامل یک جزء وب سرور میشود. در گذشته، IIS یک ویژگی داخلی سیستمهای ویندوز سرور بود، اما امروزه میتوان آن را به صورت دستی بر روی برخی از سیستمعاملهای ویندوز در صورت نیاز نصب کرد. جای تعجب نیست که IIS مایکروسافت فقط در سرورهای ویندوز قابل استفاده است.
وب سرور لایت اسپید
این یک نرمافزار سرور HTTP برای لینوکس و یونیکس است که یک نسخه متنباز، یک نسخه استاندارد رایگان و یک نسخه سازمانی ارائه میدهد. وب سرور LiteSpeed به ویژه به دلیل انتقال داده پرسرعت خود شناخته شده است – عملکردی که همانطور که انتظار میرود، در نسخه سازمانی پولی بالاترین است.
برنامههای سرور HTTP معمولاً از راه دور و از طریق یک کامپیوتر دیگر مدیریت میشوند. راحتترین راه برای انجام این کار، استفاده از نرمافزار مدیریت از راه دور است . با Plesk – یکی از شناختهشدهترین ابزارهای مدیریت از راه دور – میتوانید یک برنامه وب سرور را هم از طریق دستگاههای لینوکس/یونیکس و هم از طریق دستگاههای ویندوز مدیریت کنید. این یعنی، برای مثال، میتوانید یک سرور لینوکس را از طریق یک کامپیوتر خانگی ویندوزی کنترل کنید و برعکس.
بیشتر بخوانید:
- وب ۳ (Web ۳,۰) چیست و چرا اهمیت دارد؟
- نحوه غیرفعال کردن جستجوی وب ویندوز و افزایش سرعت رایانه
- نحوه مسدود کردن وبسایتها در کروم
- درخواستهای «ورود با گوگل» را در وبسایتها متوقف کنید
نحوه انتخاب سرور و راه اندازی وب سرور
برای میزبانی حضور آنلاین خود، به یک هاست با فضای وب کافی نیاز دارید. اجاره منابع سرور از یک ارائه دهنده خدمات رایج است. کسانی که تجربه کمی در مدیریت سرور دارند یا اصلاً تجربهای ندارند، میتوانند برای شروع از هاست اشتراکی یا هاست ابری مدیریت شده استفاده کنند.
برخلاف سروری با دسترسی روت – که در آن شما کنترل کامل و همچنین مسئولیت کامل امنیت سرور را دارید – یک سرور مدیریتشده، بیشتر وظایف اساسی مدیریت را به ارائهدهنده خدمات میزبانی وب منتقل میکند . وصلههای امنیتی و بهروزرسانیهای نرمافزار تا حد زیادی برای شما مدیریت میشوند، در حالی که شما همچنان آزادی نصب نرمافزار مورد نظر خود را دارید. با میزبانی اشتراکی، شما اصلاً نیازی به مدیریت بهروزرسانیهای نرمافزار ندارید، اما دسترسی شما به فضای وب و گزینههای پیکربندی ارائه شده توسط میزبان محدود میشود.
وقتی یک سرور اجاره میکنید، معمولاً هزینهای ماهانه پرداخت میکنید . هزینه به عملکرد و وسعت اجزای جداگانه – مانند CPU و RAM ، فضای وب و نوع درایو ذخیرهسازی ( SSD یا HDD) – بستگی دارد. اگر انعطافپذیری بیشتری میخواهید، میزبانی ابری را در نظر بگیرید که به شما امکان میدهد منابع مختلف را در هر زمان برای برآوردن نیازهای پروژه خود مقیاسبندی کنید.
عملکرد مورد نیاز برای هر تنظیم میزبانی به نیازهای وبسایت شما بستگی دارد : پروژههای ساده مانند یک وبلاگ کوچک یا کارت ویزیت دیجیتال با بستههای میزبانی مقرون به صرفه و با عملکرد پایینتر به خوبی کار میکنند. از سوی دیگر، وبسایتهای بزرگ یا برنامههای کاربردی با منابع فشرده، تقاضای بسیار بالاتری را برای اجزای خاص ایجاد میکنند. برخی از برنامههای وب نیز به حجم انتقال داده بالاتری نیاز دارند . برای اطمینان از عملکرد پایدار، بسیاری از ارائه دهندگان بستههایی با نرخ ثابت ترافیک ارائه میدهند که پهنای باند کافی را برای سایت شما در همه زمانها تضمین میکند.
وقتی سرور مناسب را پیدا کردید، میتوانید نرمافزار سرور HTTP دلخواه خود را روی آن نصب کنید. با این حال، حتی با یک سرور مدیریتشده، هنگام میزبانی وبسایت، باید برخی ملاحظات امنیتی مهم را در نظر داشته باشید.
امنیت وب سرور
پس از راهاندازی و اجرای سرور وب، ضروری است که اطمینان حاصل شود که همیشه آخرین بهروزرسانیها نصب شده است. نسخههای نرمافزاری قدیمی میتوانند آسیبپذیریهایی را آشکار کنند که در بدترین حالت، به مجرمان سایبری اجازه میدهند کنترل سرور شما را به دست بگیرند. در هاست اشتراکی و مدیریتشده، ارائهدهنده هاست معمولاً بهروزرسانیهای امنیتی را انجام میدهد – اما در غیر این صورت، مسئولیت بر عهده شماست.
علاوه بر بهروزرسانی همه چیز، استفاده از فایروال محافظت مؤثری در برابر حملات ایجاد میکند. راهاندازی یک منطقه غیرنظامی (DMZ) نیز توصیه میشود. همچنین میتوانید از ابزارهایی مانند Fail2ban، چارچوبی که برای مسدود کردن تلاشهای دسترسی غیرمجاز طراحی شده است، استفاده کنید.
یکی دیگر از اصول کلیدی امنیت وب سرور این است: فقط به مواردی که برای عملکرد سرور شما کاملاً ضروری است، اجازه دسترسی بدهید . تمام پورتهای بلااستفاده را ببندید و هرگونه سرویس غیرضروری را غیرفعال کنید. تنظیم رمزهای عبور قوی نیز یک روش اساسی برای مدیریت امنیت سرور است. در صورت بروز هرگونه سوال یا شرایط اضطراری، داشتن پشتیبانی مشتری قابل اعتماد و آگاه بسیار ارزشمند است – به خصوص برای مدیران کمتجربهتر.
اگر ارائه دهنده خدمات میزبانی وب شما به طور کامل حفاظت از سرور شما را مدیریت نمیکند، باید حداقل دانش اولیه در مورد نگهداری سرور و درک اساسی از نحوه عملکرد یک میزبان داشته باشید . میتوانید این دانش را با آزمایش و یادگیری در یک محیط شبکه بسته، جایی که لازم نیست نگران حملات سایبری باشید، به دست آورید.
مثالی از نحوه عملکرد یک وب سرور
پس از تنظیم سرور HTTP و آپلود محتوای وبسایت، سرور میتواند شروع به کار کند. این سرور بر اساس مدل کلاینت-سرور عمل میکند. به عنوان مثال: اگر میخواهید از وبسایت TechYaran بازدید کنید و دامنه را www.techyaran.ir
در مرورگر خود (کلاینت) وارد کنید، توالی رویدادهای زیر آغاز میشود:
- به محض اینکه شروع به تایپ میکنید، مرورگر شما ابتدا آدرس وب را به یک سرور نام (که با نام سرور DNS نیز شناخته میشود ) ارسال میکند. سرور نام به عنوان بخشی از سیستم نام دامنه ( DNS ) – سرویس دایرکتوری اینترنت – اساساً به کل دفترچه آدرس وب دسترسی دارد. نام دامنه الفبایی-عددی ( DNS) به یک آدرس IP عددی (مثلاً 74.208.255.134) ترجمه میشود که به مرورگر ارسال میشود. سپس مرورگر با تماس با آدرس IP – یعنی سرور وب میزبان محتوای وبسایت
www.techyaran.ir
– درخواستی برای محتوای صفحه وب ارسال میکند . - وب سرور با ارسال سندی از سایت درخواستی به مرورگر پاسخ میدهد. سپس مرورگر درخواست دیگری ارسال میکند – این بار برای سند دیگری که بخشی از صفحه وب است (مانند یک تصویر جاسازی شده). این فرآیند تا زمانی که تمام اجزای صفحه تحویل داده شوند و کل وبسایت در پنجره مرورگر شما ظاهر شود، تکرار میشود. اگر سپس روی پیوندی در وبسایت تک یاران کلیک کنید، مرورگر صفحه دیگری را از وب سرور درخواست میکند و فرآیند از ابتدا شروع میشود – با این تفاوت که جستجوی DNS نادیده گرفته میشود زیرا قبلاً ذخیره شده است.