اسکریپت های CGI کدامند و چگونه وب سایت ها را بهبود می بخشند
1396/10/14 15:40 , شایان مسلمی

اسکریپت های CGI کدامند و چگونه وب سایت ها را بهبود می بخشند

CGI به معنای Common Gateway Interface است.این یک پروتکل استاندارد برای وب سرورهاست تا بتوانند برنامه ها را اجرا کنند و تولید خروجی نمایند.برنامه به معنای برنامه ی CGI (یا CGI script) است. این برنامه از جانب وب سرور برای تولید خروجی در زمانی که یک URL مشخص توسط مرورگر کاربر درخواست داده میشود،اجرا خواهد شد.

 

مزایای CGI ها

یک CGI یک وب سایت را به چند طریق بهبود می بخشد.این کار بوسیله ی تأییدسازی یک کاربر برای فراهم کردن یک اپلیکیشن خرید با مقیاس کامل آغاز میشود،CGI ها در هسته ی پویاسازی وب هستند.منفعت های اصلی استفاده از CGI ها برای بهبود تجربه ی کاربری در پایین ذکر شده اند:

  • شخصی سازی شده برای کاربر : خروجی میتواند برای هرکاربر شخصی سازی بشود.برای مثال،یک کاربر ممکن است حساب بانکی اش را چک کند،که نیازمند دریافت اطلاعات از مرکز داده است.
  • انواع دیگر شخصی سازی : کاربر ممکن است از یک تلفن همراه برای دسترسی به یک وب سایت استفاده کند،و خروجی باید برای رزولوشن موبایل ها تنظیم شده باشد.
  • ایجاد آپدیت ها : یک آپدیت به عنوان نتیجه ی یک POST عمل میکند،برای مثال،شما ممکن است استاتوس یا وضعیت فیسبوکتان را آپدیت کنید.
  • آپلود فایل ها : یک فایل آپلود شده توسط یک کاربر به یک CGI روی server end نیاز دارد تا درخواست آپلود را اجرا کند و فایل را در یک محل مشخص ذخیره کند.
  • تولید خروجی : در رابطه با خروجی نشان داده شده در مرورگر،باید گفت که بسیاری از وب سایت ها چندین شکل از خروجی را پیشنهاد میدهند،مانند Word Document,PDF و غیره.برخی از این اسناد احتمالاً باید توسط CGI ها تولید شوند،مانند قبض تلفن شما یا کارکرد کارت اعتباری تان.

 

فایل های اجرایی استاتیک در مقابل CGI ها

یک فایل HTML توسط وب سرور تکمیل میشود.یک برنامه ی CGI از طرفی دیگر،توسط وب سرور در هنگام درخواست یک URL خاص اجرا خواهد شد.این برای تکمیل درخواست هایی که نیازمند اطلاعات پویا هستند کاربرد دارد،مثلاً مستقر شدن در یک دیتابیس.یک مثال از تأییدسازی یک کاربر برای قبول دسترسی:نام کاربری و رمز عبور میتواند در یک دیتابیس ذخیره شود،و یک درخواست برای اثبات اینکه کاربر مایل به دسترسی است،مورد نیاز خواهد بود.برای این درخواست،وب سرور یک برنامه ی CGI اجرا می کند که اطلاعات را جست و جو و کاربر را تأیید می کند.

 

تنظیم کردن وب سرورها

یک وب سرور نرم افزارHTTP سرور را اجرا می کند که قابلیت تکمیل فایل های HTML را داراست،درست مانند اجرای برنامه های CGI برای تولید خروجی.نرم افزار HTTP سرور توسط مدیر وب سرور برای اجرای برنامه های خاص در زمانی که URLها با الگوهای درخواستی مطابقت داشته باشند،تنظیم شده اند.

 

اجرای CGI ها

هنگامی که مرورگر یک کاربر یک درخواست برای یک URLخاص ارائه می کند،مرورگر اطلاعات زیادی به شکل HTTP header و HTTP body ارسال میکند.برخی از آن ها شامل:

  • نوع مرورگر
  • نام کاربر در صورت وارد شدن او
  • هر کوکی که قبلاً توسط وب سرور ذخیره شده باشد
  • متغیرها در صورتی که درخواست،یک درخواست POST باشد

هنگامی که یک CGI برای این درخواست اجرا میشود،سرور تمامی اطلاعات را به برنامه ی CGI منتقل میکند.CGI ممکن است همه یا بخشی از این اطلاعات را برای اداره ی درخواست و شخصی سازی خروجی برای کاربر استفاده کند.

 

Form POST ها

یکی از کاربردهای اصلی CGI، پردازش فرم های HTML است.

یک فرم HTML یک دستگاه تعاملی کاربر است و کنترل های متنوعی برای تولید ورودی توسط کاربر فراهم میکند.وقتی یک کاربر روی دکمه ی Submit روی فرم کلیک کند،مرورگر  اطلاعات را در فرم جمع آوری می کند و آن ها را به URL هدف ارسال می کند.وب سرور،در برگشت، معمولاً یک برنامه ی CGI را درخواست می دهد و تمامی ورودی های جمع شده از کاربر را ارسال میکند.این فعل و انفعال form POST نامیده میشود،یک ضابطه ی تکنیکی که نشانگر روش ارسال محتوای فرم به CGI است.CGI محتوای فرم را پردازش میکند و یک پاسخ مناسب را برای ارسال به مرورگر ایجاد می کند.

 

یک نمونه از CGI

در پایین یک نمونه از CGI را می بینید که در پایتون نوشته شده است.این میتواند درون یک وب سرور کار گذاشته بشود و از یک URL شبیه  http://www.example.com/cgi-bin/env.cginv

در دسترس باشد.در هنگامی که درخواست داده بشود،CGI تمام متغیرهایی که در محیطش از وب سرور دریافت کرده را گزارش میدهد.

#!/usr/bin/python

 

import os

 

print "Content-type: text/plain\n"

for key in os.environ:

  print key, "=>\"", os.environ[key], "\""

 

تکامل CGIها

CGI ها از زمانهای ابتدایی وب بخشی از وب سرور بوده اند.اولین وب سرور یعنی NCSA HTTPd، تنها فایل های استاتیک را پشتیبانی میکرد.سپس، تشخیص داده شد که اجرای یک اسکریپت در پاسخ به یک درخواست URL به وب سرور اجازه میدهد که محتوای داینامیک تولید کند،به این ترتیب،CGI متولد شد.

برنامه های اولیه ی CGI اسکریپت های ساده ای بودند که در زبان هایی مثل Perl,TCL,Shell و غیره نوشته می شدند.CGIهمینطور میتواند  در یک زبان کامپایل شده مثل C/C++ نوشته شود،اما این نیازمند یک مرحله ی اضافه در کامپایل برنامه است تا یک CGI اجرایی ساخته شود.

 

در اینجا،وب سرورها شروع به اجرای اسکریپت های مترجم کردند تا درخواست ها بتواند در یک thread جداگانه و در یک فرآیند تکی وب سرور اداره بشوند.این کار باعث افزایش بازده درخواست ها شد و زمان پاسخ را کاهش داد.

این فعالیت ها همزمان با ظهور زبان های جدیدی شد که مخصوص وب طراحی شده بودند،مثل PHP.در ابتدا،مترجم PHP خودش به عنوان یک برنامه ی CGI متولد شد.به عنوان بخشی از پردازش درخواست،این مترجم، فایل درخواست شده را برای دستور دهنده های PHP تجزیه و دستورات را اجرا میکند .

امروزه،در رابطه با اسکریپت های CGI،تکنولوژی های زیادی برای اجرای کد روی سرور ، در پاسخ به یک درخواست وجود دارد.

آیا شما از اسکریپت های CGI در وب سایت شرکتتان استفاده می کنید؟در صورت استفاده، تا بحال به مشکلی درمورد کارگذاری یا نگه داری اسکریپت های CGI برخورد کرده اید؟

 

منبع : MakeUseOf

 

از آخرین دوره های آموزشی و تخفیف ها مطلع شوید

با تکمیل فرم زیر ، از اخبار و اطلاعات به روز برنامه نویسی و تکنولوژی عقب نمانید

آخرین مطالب

آموزش جامع SQL Server (جلسه ۱۲)
آموزش جامع SQL Server (جلسه ۱۲)

دستور UPDATE در SQL Server برای تغییر داده‌های موجود در یک جدول، از دستور UPDATE به شکل زیر استفاده ...

آموزش جامع SQL Server (جلسه ۱۵)
آموزش جامع SQL Server (جلسه ۱۵)

دستور DROP TABLE در SQL Server گاهی، لازم است یک جدول که دیگر استفاده‌ای ندارد را حذف کنید. برای ...

آموزش جامع SQL Server (جلسه ۳۵: Window Functionها – بخش ۲)
آموزش جامع SQL Server (جلسه ۳۵: Window Functionها – بخش ۲)

بخش اول از آخرین مبحث دوره جامع آموزش SQL Server در جلسه قبلی بررسی شد. این مبحث که ...

آخرین دیدگاه ها

دیدگاه خود را درباره این پست بنویسید

فرم ارسال نظرات