اسکریپت‌نویسی سمت سرور

[بندانگشتی|600px|[صفحه وب پویا: مثالی از برنامه‌نویسی سمت سرور (پی‌اچ‌پی و مای‌اس‌کیوال).]]
**اسکریپت‌نویسی سمت سرور** روشی است که برای طراحی وب که شامل اسکریپت‌های نهان درون یک کد اچ‌تی‌ام‌ال می‌باشد استفاده می‌شود که نتیجه درخواست یک کاربر به سرور یک وب سایت می‌باشد که با کدنویسی‌های سمت سرور قبل از پاسخ دادن سرور به کاربر انجام می‌گردد. اسکریپت‌ها می‌تواند درون هر کدام از زبان‌های اسکریپتی موجود تحت سرور نوشته شود. برنامه‌نویسی سمت سرور با نوع برنامه‌نویسی سمت کاربر تفاوت دارد که انواع نهان آن همچون جاوااسکریپت در مرورگر وب در سمت کاربر اجرا می‌شود. کد نویسی سمت سرور معمولاً برای ایجاد یک واسط کاربری و محدود کردن دسترسی کاربران به پایگاه‌های داده یا منابع اطلاعاتی می‌باشد. این اسکریپت‌ها ممکن است مشخصات کاربر را برای استفاده در سفارشی کردن پاسخ براساس مشخصات کاربر، نیازمندی‌های کاربر و حقوق دسترسی کاربران، گرد آوری کنند. همچنین کد نویسی سمت سرور باعث می‌شود که مالک وب سایت بتواند دسترسی کاربران به کد منبع و اسکریپت‌های سمت سرور را کاهش دهد که این خود ممکن است اختصاصی یا ارزشی باشد. مشکل کد نویسی سمت سرور این است که کامپیوتر سرور وب سایت باید بیشتر منابع محاسباتی را پیش از ارسال صفحه به کاربر برای نمایش در مرورگر وب ارائه کند.
وقتی که سرور معمولاً از یک راه برای مثال پروتکل FTP، HTTP داده ارائه می کد، کاربران ممکن است حق انتخاب از میان تعدادی از برنامه‌های سمت کاربر دارند (بسیاری از مرورگرهای وب می‌توانند از هر دو پروتکل گفته شده‌استفاده کنند). در موارد برنامه‌های کاربردی خاص تر، ممکن است برنامه نویسان خودشان اقدام به نوشتن پروتکل برای سرور، کاربر و انتقال اطلاعات نمایند، که می‌تواند فقط می‌تواند توسط یکدیگر استفاده شود.
برنامه‌هایی که بر روی کامپیوتر کاربر به صورت محلی بدون ارسال یا دریافت اطلاعات از طریق شبکه می‌باشد سرویس گیرنده‌های را در نظر نمی‌گیرند، و به همین دلیل اعمال آن برنامه‌های تأثیری بر روی اعمال کامپیوترهای سرویس گیرنده ندارند.

## تاریخچه
برای اولین بار در دسامبر ۱۹۹۴، نت‌اسکیپ یک پیاده‌سازی از جاوااسکریپت را به وسیله Netscape Enterprise Server برای کدنویسی سمت سرور ارائه نمود. (مدت کمی پس از ارائه شدن جاوا اسکریپت برای مرورگرها بود) کدنویسی سمت سرور بعدها در اوایل ۱۹۹۵ به وسیله Fred DuFresne در طراحی (Boston MA television station (WCVB استفاده شد؛ و این فناوری با شماره ۵۸۳۵۷۱۲ در آمریکا ثبت شد؛ و این حق انحصاری در سال ۱۹۹۸ منتقل شد و در حال حاضر متعلق به (Open Invention Network (OIN است. در سال ۲۰۱۰ OIN، آقای Fred DuFresne را به خاطر اعمالش در اسکریپت‌نویسی سمت سرور «Distinguished Invertor» نامید.

## توضیح
در روزهای اول وب، کد نویسی سمت سرور به‌طور انحصاری توسط ترکیبی از برنامه‌های C یا اسکریپت‌های Perl و با پوسته‌ای از اسکریپت‌های (Common Gateway Interface(CGI انجام می‌شد. آن اسکریپت‌ها توسط سیستم عامل اجرا می‌شدند؛ و نتایج آن توسط وب سرور بازتاب داده می‌شدند. بسیاری وب سرورهای جدید می‌توانند به‌طور مستقیم یک خط از زبان اسکریپتی همچون ASP و PHP را به وسیله خود وب سرور یا ماژول‌های اضافه (همچون mod_perl یا mod_php)که برای وب سرورها بودند اجرا نمایند. برای مثال WebDNA شامل یک پایگاه داده نهان درون خودش است. همچنین روشی از کدنویسی(i.e، CGI یا اجرای مستقیم) می‌تواند برای سخت سایت‌های پیچیده با چندین صفحه استفاده شود، ولی معمولاً اجرای مستقیم سربار کمتری دارد که ناشی از عدم تماس با مفسرهای خارجی می‌باشد.
وب سایت‌های پویا گاهی اوقات از برنامه‌های سروری کاربردی تحت وب خاصی استفاده می‌کنند، برای مثال کتابخانه "Python "Base HTTP Server، همچنین بعضی افراد این را کد نویسی سمت سرور نمی‌دانند. استفاده از روش کدنویسی تحت وب پویا در هنگام طراحی، همچون ASP کلاسیک یا PHP، توسعه دهندگان باید درک عمیقی از منطق، موقت و جدایی فیزیکی بین سرویس گیرنده و سرور داشته باشند. برای اعمال کاربران برای به راه انداختن کدهای سمت سرور، حالتی را داریم که توسعه دهنده‌ای با ASP کلاسیک کار می‌کند باید به صراحت باعث شود که مرورگر کاربر یک بازخورد درخواست به وب سرور بفرستد. ایجاد این چنین فعل و انفعالاتی به آسانی باعث صرف وقت زیادی در طراحی و به وجود آورنده مقدار زیادی کد ناخوانا می‌شود. JSP یک زبان اسکریپتی سمت سرور می‌باشد.

## زبان‌های اسکریپت‌نویسی سمت سرور
* ای‌اس‌پی (*.asp)
* اکتیووی‌اف‌پی (*.avfp)
* ای‌اس‌پی‌دات‌نت (*.aspx)
* سی توسط سی‌جی‌آی (*.c. *،csp)
* زبان نشانه‌گذاری کلدفیوژن (*.cfm)
* جاوا توسط جی‌اس‌پی (*.jsp)
* جاوااسکریپت با استفاده از نود جی اس (*.ejs. *،js)
* تایپ‌اسکریپت با استفاده از دینو (*.eta. *،ts)
* لوآ (*.lp. *،op)
* پرل سی‌جی‌آی (*.cgi. *،ipl. *،pl)
* پی‌اچ‌پی (*.php) - اسکریپت‌نویسی کدباز
* پایتون، برای مثال توسط جنگو (*.py)
* روبی، برای مثال توسط روبی آن ریلز (*.rb. *،rbw)
* اس‌ام‌ایکس (*.smx)
* لاسو (*.lasso)
* تی‌سی‌ال (*.tcl)
* وب‌دی‌ان‌ای (*.dna. *،tpl)

## جستارهای وابسته
* صفحه وب پویا#اسکریپت نویسی سمت سرویس دهنده
* سامانه مدیریت محتوا
* توسعه وب

## منابع

## پیوند به بیرون
اسکریپت‌نویسی سمت سرور در پروژه فهرست آزاد

رده:زبان‌های اسکریپت‌نویسی