
CGI چیست
واسط دروازه مشترک یا همان CGI ( common gateway Interface ) یک روش استاندارد است که برای ایجاد محتوای پویا ( داینامیک ) در صفحات وب یا برنامه های کاربردی وب استفاده میشود.زمانی که CGI روی یک وب سرور اجرا میشود یک واسطه میان وب سرور و برنامه هایی که محتوای وب را تولید میکنند , اجرا میکنند.در اکثر مواقع یک اسکریپت cgi زمانی ران میشود که یک درخواست و فایل html ایجاد شده باشد.
هدف از ایجاد استاندارد CGI
هر وب سروری پروتکل HTTP را اجرا میکند تا بتواند پاسخ مرورگرها را به آنها ارسال نماید.به صورت کلی هر وب سروری یک پوشه یا دایرکتوری برای خود دارد که از این مسیر اطلاعات و فایلها را به مرورگر کاربران ارسال میکنند.در اصل شما باید فایلهای اصلی سایت را مثلا در مسیر /usr/local/apache/htdocs قرار دهید و زمانی که یک پاسخ به دامنه test.com ارسال میشود ( http://test.com/index.html ) درخواست مربوطه در مسیر /usr/local/apache/htdocs/index.html برای کاربران ارسال میشود.
برای صفحاتی که در حین ارسال به سمت کاربران ساختار بندی میشود(منظور صفحات داینامیک است) این مورد متفاوت میباشد و اصولا با کمک اسکریپتها و زبانهای برنامه نویسی این ساختار ایجاد میشود… در واقع وب سرور نیازمند به اطلاعات دیگری نیز میباشد.برای مثال وقتی که به سایتی مانند wikipedia وارد میشوید , یک موردی که نیاز است تا اسکریپت بداند این میباشد که یوزر به پنل کاربری خود در سایت لاگین کرده است یا نه.این یکی از مواردی میباشد که امروزه میتوان اعلام کرد روی اکثر وب سایتهایی که پنل کاربری دارند , چنین موردی رخ میدهد و در صورتی که شما به پنلتان از قبل لاگین کرده باشید , مشخصاتتان را میتوانید در صفحه سایت مشاهده کنید.
برای اینکه مرورگرها بتوانند این اطلاعات را به وب سرورها ارسال کنند , HTTP راهکارهایی را ارایه میدهند.سپس برنامه های سمت سرور باید این اطلاعات را به اسکریپت مربوطه ( cgi scripts ) ارسال کند.
پس از تمامی این موارد به طور خلاصه : CGI قدیمی ترین پروتکل برای ارایه صفحات داینامیک در دنیای وب میباشد و یک پروتکل میباشد که راه ارتباطی سایر اپلیکشنها با وب سرور را فراهم میسازد.فکر میکنم بعد از تمامی این گفته ها تصاویری که در پایین قرار داده شده است تکمیل کننده باشد!