در این نوشته کوتاه میخواهیم به بررسی یک المان مهم در دنیای اینترنت بپردازیم.
چرا به آن نیاز داریم؟
وقتی وارد مرورگر خود میشوید و یک وب سایت (مثل thregence.ir) را باز میکنید، در اصل درخواست یک صفحه وب (Web Page) را صادر کردهاید. یعنی شما به عنوان کاربر از طریق مرورگر خود، صفحه اصلی وب سایت را درخواست کردهاید. در اینجا صادر کننده درخواست مشخص است، شما و مرورگرتان به عنوان درخواست کننده شناخته میشوید. اما چه کسی به شما پاسخ میدهد؟ وقتی شما صفحه اصلی یک سایت را درخواست میکنید، چه کسی به درخواست شما پاسخ میدهد؟ وب سرور. در اصل وب سرور وظیفه این را دارد که هر وقت کاربران چیزی را درخواست کردند به آنها بدهد.
مثال:
فرض کنید وارد یک سوپر مارکت شدید و کلی جنس داخل آن وجود دارد. برای راحتی کارِ شما، یک کارگر درون سوپرمارکت قرار داده شده است که وظیفه آن گوش کردن به حرف مشتریان است. یعنی اگر مشتری درخواست آب میوه کند؛ به درخواست اون جواب داده و آب میوه را به اون میدهد. همچنین وقتی جنسهای جدید به مغازه میآید، همان کارگر این وظیفه را دارد که جنسها را درون قفسهها قرار دهد. پس وظیفه کارگر:
- ذخیره اجناس
- دادن اجناس به مشتری
میباشد. وب سرور نیز به همین شکل است. یعنی وب سرور نیز وظیفه دارد که:
- دادهها را ذخیره کند
- اگر کاربری آن دادهها را درخواست کرد، به او بدهد.
وب سرور لزوما یک سرور غول پیکر با تجهیزات پیشرفته نیست!
وب سرور در اصل یک کامپیوتر است که یک نرم افزار برروی آن نصب شده است و عملیات بالا را انجام میدهد. یعنی شما کامپیوتر خودتان را هم میتوانید به یک وب سرور تبدیل کنید. به این صورت که با همین تجهیزات سختافزاری موجود تنها یک سری نرم افزار نصب میکنید! (برای اینکار میتوانید از XAMPP کمک بگیرید)
سخت افزاری یا نرم افزاری؟
در اصطلاح عامیانه نیز هر وقت از لفظ “وب سرور” استفاده میشود هم منظورشان آن سرور فیزیکی (همون کامپیوتره) هست هم منظورشان نرمافزاری است که برروی آن سرور نصب شده است. یعنی در اصل بخش فیزیکی وب سرور را میتوان همان فضای سوپرمارکت در نظر گرفت و بخش نرمافزاری وب سرور را آن کارگری در نظر گرفت که هم جنسها را درون قفسهها قرار میداد و هم اگر مشتری درخواست جنسی میکرد به درخواست او پاسخ میداد.
درخواستها از چه طریقی منتقل میشوند؟
بد نیست بدانید که، این درخواستها از طریق پروتکل HTTP و در اصل از طریق یک HTTP Request منتقل میشوند. و جوابها نیز از طریق یک HTTP Response به کاربران (در اصل به مرورگر کاربران) داده میشود.
چند نمونه از وب سرورها:
پس یک نرمافزاری داریم که برروی سرور میشیند و درخواست ها را مدیریت میکند. حالا این نرمافزار انواع مختلفی دارد و از معروفترین آنها میتوان به:
Apache: https://www.apache.org/
IIS: https://www.iis.net/
NGINX: https://www.nginx.com/
Lighttpd: https://www.lighttpd.net/
اشاره کرد. به غیر از این موارد، وب سرورهای دیگری نیز در دنیای وب مورد استفاده قرار میگیرند. اکثر وب سرورها قابلیت نصب برروی پلتفرمهای مرسوم همانند ویندوز و لینوکس و مک را دارند.
آکادمی ترجنس - ویدئوهای رایگان