دوره آموزش رایگان زبان برنامه نویسی مقدماتی پی اچ پی (PHP)- جلسه پنجم

تفاوت سایت‌های استاتیک و دینامیک

پیش از آشنایی بیشتر با زبان پی اچ پی، نیاز است تا با تفاوت سایت‌های استاتیک و دینامیک آشنا شویم چرا که بدون آشنایی با این مقدمات به هیچ وجه نخواهیم توانست مکانیسم اجرایی این زبان درک کنیم. بنابراین در این آموزش قصد داریم تا پایه ای ترین مفاهیم مرتبط با وب سایت های دینامیک و تفاوت آن ها با وب سایت های استاتیک را مورد بررسی قرار داده و پس از حصول اطمینان از فراگیری این مفاهیم، به یادگیری اصول کار با زبان پی اچ پی خواهیم پرداخت.

در یک نگاه کلی، سایت‌ها را می‌توان به دو دسته ی Static (استاتیک یا ثابت) و Dynamic (دینامیک یا پویا) تقسیم‌بندی کرد. سایت‌های استاتیک به گروهی از سایت‌ها گفته می‌شود که صرفاً با استفاده از زبان‌های اچ تی ام ال و سی اس اس -و گاهی اوقات هم جاوا اسکریپت- طراحی می‌شوند که ایستا بوده و فقط و فقط یکسری اطلاعات از طریق این صفحات در اختیار کاربران قرار می‌گیرد و کاربر به هیچ وجه نخواهد توانست با سایت تعامل داشته باشد.

اما در مقابل، سایت‌های دینامیک قرار دارند -که همان‌طور که از نام آن‌ها پیدا است- این سایت‌ها امکانی را برای کاربرانشان فراهم می‌سازند تا بتوانند با سایت تعامل داشته باشند. در اینجا تعامل داشتن بدان معنا است که کاربر می‌تواند در سایت ثبت نام کند، وارد ناحیه ی کاربری خود شود، داشبورد مدیریتی خود را شخصی سازی کند، عکس آپلود کند، نظر دهد، لایک و دیس لایک کند و بسیاری کارهای دیگر (برای درک بهتر این موضوع، تمامی شبکه‌های اجتماعی مثل فیسبوک و توییتر را می‌توان مد نظر قرار داد که علاوه بر کارهای فوق، بسیاری قابلیت‌های دیگر را در اختیار کاربرانشان قرار می دهند.)

برای طراحی سایت‌های دینامیک، نیاز به فناوری های سمت سرور داریم که زبان PHP نیز یکی از بهترین آن‌ها است. با استفاده از زبان‌های سمت سرور، این امکان را خواهیم داشت تا سایت دینامیکی طراحی کنیم که صفحاتی دارا باشد که به صورت دینامیک ساخته می شوند. به عبارت دیگر، با فراخوانی داده‌ها از دیتابیس، به صورت بی نهایت صفحه می‌توان طراحی کرد. لذا تغییر در این‌گونه صفحات و به روز نگاه داشتن آن‌ها به راحتی امکان‌پذیر خواهد بود. زمانی که پای انتخاب یک فناوری سمت سرور به میان می آید، علاوه بر زبان پی اچ پی یکسری گزینه های دیگری نیز پیش رو داریم که از آن جمله می‌توان به ASP.NET, JSP, Ruby, Perl و حتی JavaScript اشاره کرد.

به طور کلی وب سایت ها تشکیل شده اند از تعدادی فایل اچ تی ام ال و سی اس اس به علاوه تعدادی عکس، ویدیو و … که روی یک سرور -یا کامپیوتر- ذخیره شده اند. زمانی که کاربر اقدام به مشاهده یک وب سایت می نماید، این فایل ها از طریق نرم افزاری تحت عنوان وب سرور (مثل آپاچی) برای مرورگر کاربر ارسال شده و کاربر می تواند در مرورگر نصب شده روی سیستم عامل خود، بخش های مختلف وب سایت را مشاهده نماید.

هشدار

به یاد داشته باشیم که هرگز وب سرور را با سرور اشتباه نگیریم. منظور از سرور، کامپیوتری است که کلیه ی اطلاعات وب اپلیکیشن ما روی آن ذخیره می گردد که شرکت هاستینگ در اختیار ما قرار می دهد اما منظور از وب سرور، نرم افزاری است که ارتباط مابین مرورگر کاربر و سرور را برقرار می سازد.
زمانی که کاربر با استفاده از مرورگر خود درخواستی از طریق پروتوکل HTTP برای مشاهده یک سایت استاتیک ارسال می کند، این درخواست در قالب فرمت یک URL برای وب سرور ارسال می گردد (URL مخفف واژگان Uniform Resource Locator است.) برای مثال زمانیکه بخواهیم سایت فرضی x را مشاهده کنیم، این URL به صورت http://www.xxx.com خواهد بود. در این مرحله نرم افزار وب سرور درخواست کاربر را دریافت کرده و آن را تجزیه و تحلیل می کند تا ببیند که به کدام فایل ذخیره شده روی هاست اشاره دارد. در ادامه نرم افزار وب سرور فایل مد نظر را پیدا نموده و محتویات آن را در قالب یک پاسخ HTTP برای مرورگر کاربر ارسال می کند و کاربر خواهد توانست سایت درخواستی خود را در مرورگر مشاهده نماید:
http
همان طور که در تصویر فوق می بینیم Client یا همان “کاربر” ابتدا درخواست خود را در قالب یک آدرس URL برای سرور ارسال می کند. سپس سرور با استفاده از نرم‌افزار وب سرور -مثلا آپاچی- درخواست مد نظر را تجزیه تحلیل کرده و فایل مرتبط با آن را پیدا نموده و پاسخ آن درخواست را در قالب یک فایل اچ تی ام ال برای کاربر ارسال می کند.

 به خاطر داشته باشید

در طراحی سایت همواره بایستی نام فایل صفحه اصلی یا همان “خانه” را index.html قرار دهیم (البته در برخی مواقع بسته به نوع نرم افزار وب سرور و تنظیمات آن از نام default.html هم استفاده می شود.)

به نظر می رسد با توضیحاتی که تا اینجای کار دادیم با ساختار یک وب سایت استاتیک آشنا شده باشیم. به طور خلاصه می توان گفت که واژه Static به معنی “ایستا و ساکن” است و همان طور که از این معانی مشخص است، وب سایت های استاتیک وب سایت هایی هستند که از آن طریق کاربر صرفاً می تواند صفحاتی که طراحان سایت از پیش در سایت قرار داده اند را مشاهده نماید. از سوی دیگر کاربر امکان تعامل با وب سایت را نداشته و فقط و فقط می تواند شاهد صفحات اچ تی ام الی باشد که روی سرور قرار داده شده اند. از جمله وب سایت های استاتیک می توان به پورتفولیوهای شخصی هنرمندان، وب سایت های خصوصی و … اشاره کرد که صاحب وب سایت اطلاعاتی همچون مشخصات فردی، رزومه کاری، نمونه کارها و … را در معرض دید کاربران قرار می دهد.

چنانچه بخواهیم این امکان را برای کاربران سایت خود فراهم آوریم تا بتوانند با سایتمان تعامل داشته باشند-به عبارت دیگر در سایت ثبت نام کنند، اطلاعات خود را وارد نمایند، به جستجو در سایت بپردازند، وارد ناحیه کاربری خود شوند و بسیاری خصوصیات کاربردی دیگر- می بایست با مفهومی تحت عنوان وب سایت های دینامیک بیشتر آشنا شویم.

در مورد وب سایت های دینامیک که گاهاً «وب اپلیکیشن» هم نامیده می شوند علاوه بر نرم افزار وب سروری -همچون آپاچی- که روی سرور هاست نصب است، به ماژول “اپلیکیشن سروری” نیز همچون PHP ، ASP و یا ColdFusion و … نیاز داریم. حال زمانی که کاربر درخواستی از جنس HTTP برای مشاهده یک سایت دینامیک ارسال می کند، فرمت این درخواست که به صورت یک URL است برای سرور ارسال می شود. در این مرحله کاربر به هیچ وجه متوجه نخواهد شد که یک اپلیکیشن سرور در پاسخگویی به درخواست وی دخیل است.

در این مرحله وب سروری همچون آپاچی این درخواست را دریافت می کند اما بر خلاف وب سایت های استاتیک که خود وب سرور مستقیماً به این درخواست پاسخ می گفت، این بار وب سرور این درخواست را به اپلیکیشن سرور مربوطه می فرستد. در این مرحله اگر پسوند فایل درخواستی cfm. بود، وب سرور متوجه می شود که این یک درخواست برای وب اپلیکیشن ColdFusion است، اگر پسوند فایل درخواستی asp. بود متوجه می شود که این یک درخواست برای وب اپلیکیشن Active Server Pages بوده، اگر پسوند aspx. بود متوجه می شود که درخواست برای وب اپلیکیشن ASP.NET است و در نهایت اگر پسوند php. بود نرم افزار وب سرور متوجه می شود که این درخواست برای یک اپلیکیشن سرور PHP است (در این دوره تمرکز ما روی اپلیکیشن سرور پی اچ پی خواهد بود.)

در ادامه، ماژول اپلیکیشن سرور با پایگاه داده، ای پی آی و … تعامل داشته و کاری که انجام می دهد این است که درخواستی در قالب پروتوکل HTTP را از نرم افزار وب سرور دریافت کرده سپس به پایگاه داده رجوع می کند و داده های مورد نیاز را دریافت کرده و آن داده ها را مجدد تحویل نرم افزار وب سرور می دهد و در نهایت وب سرور پاسخی را در قالب پروتوکل HTTP برای مرورگر کاربر ارسال می کند به خاطر داشته باشیم که نرم افزار وب سرور ابتدا کلیه دستورات پی اچ پی را به صفحات اچ تی ام ال تبدیل نموده سپس نتیجه نهایی که صفحات اچ تی ام ال است را برای مرورگر کاربر ارسال می کند چرا که مرورگر صرفا توانایی درک تگ های اچ تی ام ال را دارا است:

http2

همان طور که در تصویر فوق مشخص است، کاربر ابتدا در خواست خود را در قالب یک URL برای سرور ارسال می کند. در این مرحله روی سرور هاست یک نرم افزار وب سرور مثل آپاچی نصب است که این درخواست را گرفته و برای اپلیکیشن سرور که در این مثال پی اچ پی است ارسال می کند. حال اپلیکیشن سرور پی اچ پی به پایگاه داده ای مثل MySQL رجوع کرده تا فایل های مرتبط با درخواست را پیدا کند (و در صورت نیاز، به API های مختلفی مراجعه می کند.) پس از یافتن منابع مورد نیاز، پی اچ پی مجدد آن داده ها را به وب سرور تحویل داده و وب سرور هم آن را در قالب پروتوکل HTTP و به صورت یک فایل اچ تی ام ال برای مرورگر کاربر ارسال می کند.

برای روشن تر شدن این مسئله، مثالی واقعی ذکر می کنیم. فرض کنیم که قصد داریم تا در سایت سکان آکادمی لاگین کنیم تا بتوانیم برای این آموزش که خوانده ایم کامنت بگذاریم. در چنین شرایطی ابتدا می بایست در بخش مربوطه نام کاربری و رمز عبور خود را وارد سازیم. پس از فشردن دکمه “ورود” اطلاعات نام کاربری و رمز عبور از طریق پروتوکل HTTP برای وب سرور ارسال می شود. در ادامه وب سرور اطلاعات حساب ما را برای اپلیکیشن سرور پی اچ پی ارسال می کند. حال اپلیکیشن سرور برای آن که متوجه شود که آیا اطلاعات نام کاربری و رمز عبور ما صحیح است یا خیر، به پایگاه داده مای اس کیو ال رجوع می کند. پس از آن که تطبیق نام کاربری و رمز عبور ما با آنچه که در پایگاه داده پیش از این ثبت شده است صورت گرفت، اپلیکیشن سرور پی اچ پی اطلاعات مرتبط با صفحه ی داشبورد را در اختیار وب سرور قرار می دهد و وب سرور هم آن ها را تبدیل به فایل اچ تی ام ال کرده و از طریق پروتوکل HTTP برای مرورگر کاربر ارسال می کند و کاربر وارد ناحیه کاربری خود شده و از این پس دسترسی به بخش های مختلف ناحیه کاربری خود من جمله امکان نوشتن کامنت خواهد داشت.

221

اسماعیلی هستم مدیر عصر فنون. فارغ التحصیل مقطع کارشناسی ارشد رشته مهندسی فناوری اطلاعات (IT)

پیشنهاد لحظه ای
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

توسط
تومان