یکی از رایجترین اصطلاحاتی که در دنیای وب به گوش میخورد، وب سرور است. وب سرور یا Web server نرم افزاری کامپیوتری است که اصلیترین وظیفه آن ارائه اطلاعات و سرویسهای درخواست شده در قالب صفحات وب به کاربران است. بنابراین وب سرویسها اطلاعات خواسته شده را به صورت فایل HTML همراه با هر نوع داده دیگری مانند تصویر، متن، فایلهای CSS و همچنین جاوا اسکریپت به مرورگر کاربران ارسال میکنند.
به عبارتی دیگر وب سرورها نرم افزارهایی کامپیوتری هستند که درخواستهای کاربران را از طریق مرورگرها تحت پروتکل HTTP دریافت میکنند و پس از پردازش، پاسخ آنها را به آنها بر میگردانند. به زبانی ساده میتوان گفت، این وب سرورها هستند که صفحات وب سایتها را در اختیار کاربران قرار میدهند.
درک بهتر چگونگی عملکرد وب سرورها، نیازمند شناخت مسیری است که درخواست شما برای دریافت پاسخ طی میکند. بنابراین باید ابتدا ساز و کاری را که برای تبادل اطلاعات میان یک مرورگر وب و یک سرور انجام میشود درک کنید. برای مثال اگر آدرس سایت سون لرن را (www.7learn.com) در مرورگر خود وارد کنید، درخواست شما برای دریافت اطلاعات مربوط به صفحه اصلی سایت به دامنه سایت ارسال میشود. پس از این مرحله، درخواست شما به DNS server ارجاع داده میشود تا IP مربوط به سرور سایت را دریافت کند.
زیرا هر سایتی یک IP منحصر به فرد دارد که به وسیله آن میتوانید به سرور سایت دسترسی پیدا کنید. در این مرحله درخواست شما به سرور میرسد و توسط وب سرور مورد پردازش قرار میگیرد. در نهایت پاسخ درخواست شما در قالب صفحات HTML همراه با اطلاعاتی دیگر تحت پروتکل HTTP به مرورگر شما ارسال خواهد شد. بنابراین وب سرور را میتوان به نامه رسانی تشبیه کرد که وظیفه تبادل اطلاعات میان وب سایت و کاربران را بر عهده دارد.
شناخت پرکاربردترین وب سرور ها
وب سرورها خدمات متفاوت و متعددی را به کاربران ارائه میدهند. به دلیل خدمات و نیازهای کاربری متفاوت، وب سرورهای مختلفی توسعه داده شده اند که هر کدام خدمات خاصی را ارائه میکنند. شناخت این وب سرورها به کاربران کمک میکند تا بتوانند با توجه به نیازهایی که دارند، وب سرور مناسبی را انتخاب کنند. زیرا انتخاب ناصحیح وب سرور میتواند پیامدها مختلفی برای مدیران سرورها و سایتها داشته باشد. برخی از پرکاربردترین وب سرورها عبارتند از :
Apache
Lightspeed
Nginx
Microsoft IIS
Lighttpd
و...
ویژگی وب سرور ها
در وب سرورها به منظور رفع نیاز کاربران برخی از ابزارها و موارد مورد نیاز به صورت پیشفرض نصب شده است. وب سرورها از زبانهای برنامه نویسی مختلفی پشتیبانی میکنند. از آنجایی که وب سرورها وظایف مشابهی دارند، دارای ویژگیهای مشترک زیادی هم نیز با یکدیگر هستند از جمله :
مدیریت مفاهیم استاتیک و داینامیک با پشتیبانی از زبانهای برنامه نویسی مانند PHP، Ruby، ASP و...
پشتیبانی از پروتکل HTTPS برای برقراری ارتباطی ایمن
کنترل درخواستها و پاسخها به منظور مدیریت پهنای باند
فشرده سازی مطالب
و....
نتیجه گیری
به دلیل خدمات گسترده ای که تحت وب ارائه میشوند، وب سرورهای زیادی تا کنون توسعه داده شده است. هر یک از این وب سرورها مزایا و معایبی مختلفی دارند. بنابراین برای انتخاب یک وب سرور متناسب با اهداف موردنظر عوامل مختلفی مانند پشتیبانی از زبانهای برنامهنویسی، امنیت و همچنین میزان بهینه بودن آن را در نظر داشته باشید.
سلام. من سایتی رو دیدم که بک اندش با Django بود و سایت به صورت RestFull API بود ولی از webserver براش استفاده نمیکرند و با این حال https هم بود.
خوب پس الان مزیت webserver چیه؟ چه تفاوت هایی بین پروژههای با webserver و بدون webserver هست؟
من با express.js یه پروژه ساده زدم و از webserver داخلش استفاده نکردم.
از طرفی برنامه نویس php , laravel هستم و از Apache استفاده میکنند.
فرقی در اجرای برنامه هام که با php یا express.js هستند متوجه نمیشم.
آیا میشه php رو بدون وب سرور هم run کرد و کار کنه؟
نازنین کریمی مقدم۱۳ بهمن ۱۴۰۰، ۱۳:۱۵
سلام
زمانی که شما روی لینکی کلیک میکنید، درخواست خودتون رو به سرور میفرستید. کار وب سرور برقراری ارتباط با سرور هست. وقتی این ارتباط برقرار بشه، جواب به مرورگر ارسال میشه و اطلاعات رو به عنوان کاربر میبینید.
به طور سنتی نمیشه که از این مفهوم استفاده نکرده باشید، احتمالا کدش رو نوشتید ولی به این اسم نمیشناختید.
اما بهتره که <a href="https://medium.com/all-the-things/a-web-application-with-no-web-server-61000a6aed8f" target="_blank" rel="noopener nofollow ugc">این مقاله</a> رو مطالعه کنید که جواب سوالتون رو به طور کامل میده.