آپاچی یک برنامه اجرایی HTTP SERVER در محیط کامپیوتری است که به دلیل برخی از امکانات ویژهای که دارد به سرعت در حال گسترش است. میتوان گفت که آپاچی برای برنامه نویسان حرفهای برنامهای فوق العادهاست که به لحاظ امنیتی نیز به حفاظت سرورها و برنامههای موجود در آنها کمک میکند.
Apache نام یک گروه فعال برنامه نویسی می باشد.
Rob McCool ، برنامه Apache را هنگامی که در دانشگاه الینویر (Illinois) زیر نظر NCSA فعالیت می کرد، طراحی نمود. تعداد زیادی از علاقمندان به وب و برنامه نویسان از سراسر جهان موارد مورد علاقه خود را به این برنامه اضافه می کردند و ضمن تاسیس یک گروه ایمیل نگاری (در آن زمانNewsgroup وجود نداشت)، یکدیگر را از آخرین تغییرات فرستاده شده ـ که اصطلاحا Patches نامیده می شود ـ مطلع می کردند.
بنابراین این سیستم از هسته اصلی برنامه، بعلاوه وصله های (Patches) فراوان فرستاده شده، تشکیل می شد که طراحان آن را A Patchy Server (به معنای سرور وصله دوزی شده) می خوانند، که به اختصار Apache نامیده شد. این سرور که حاصل مشارکت متخصصان بیشماری است، اکنون بصورت رایگان در اینترنت به عنوان یک برنامه OpenSource قرار دارد.
آپاچی توسط انجمن برنامهنویسان آزاد توسعه و پشتیبانی میشود و تحت حمایت بنیاد نرمافزاری آپاچی قرار دارد.
این برنامه برای طیف بسیار وسیعی از سیستمهای عامل قابل استفاده است. از جملهٔ آنها: یونیکس، FreeBSD،سولاریس, NovelNetware.
متداولترین استفاده ازویژگیهای این برنامهhtaccess. است که طراحان حرفهای در محیط لینوکس از آن بهرهمیگیرند. برای نمونه زمانی که بخواهند اولین صفحه در سایت صفحه بخصوصی باشد با یک دستور در آن پرونده (فایل) این امر ممکن میگردد و یا زمانی که صاحب سایت مایل نیست که فایلهای موجود در سرور وی توسط دیگران دزدیده شود و بخواهد که مانع از پیوند مستقیم آنها شود آپاچی کمک میکند تا به خواستشان برسند. زمان که برنامه نویس بخواهد که محل واقعی صفحات دیده نشود نیز این برنامه مورد استفاده قرارمیگیرد.
خصوصیات و ویژگی ها
ویژگیهای این برنامه بسیار گسترده است؛ از پشتیبانی زبانهای برنامهنویسی سمت سرور گرفته تا تصدیق هویت.
تعدادی از زبان های برنامهنویسی قابل پشتیبانی عبارتند از: perl, python, TCL و PHP.
ماژولهای تصدیق هویت شامل: mod_access, mod_auth,… . پشتیبانی از SSL, TLS.
پشتیبانی از URL rewiter یا بازنویسی URL.
پشتیبانی از ثبت وقایع در فایل بهصورت اختصاصی.
پشتیبانی از روشهای فشردهسازی معمول و عمومی و نیز قابل توسعه همچون mod_gzip که برای کاهش حجم صفحات وب که در اینترنت تبادل پیدا میکنند استفاده میشود.
modSecurity که یک برنامه متنباز برای تشخیص و جلوگیری از نفوذ به برنامههای تحت وب است.
وقایع ثبت شده آپاچی میتواند توسط اسکریپتهای رایگان همچون AWStats, W3Perl یا Visitors مورد تحلیل قرار گیرد و توسط مرورگر در اختیار تحلیلگر بازدید قرار گیرد.
VirtualHost قابلیتی را فراهم میکند که یک نسخه از آپاچی برای وب سایتهای بسیاری مورد استفاده قرار گیرد. به عنوان مثال: www.example.com , www.test.com , test47.testserver.test.com.
قابلیت تنظیم و اختصاصی نمودن انواع پیام های خطا.
تصدیق هویت براساس بانک اطلاعاتی.
همچنین آپاچی توسط چندین برنامه رابط گرافیکی پشتیبانی میشود.
contentnegotiation ارایه چند محتوای متفاوت برای یک آدرس. برای این استفاده میشود که چند سند مختلف برای یک آدرس ارسال شود. کاربرد آن مثلاً در زمانی است که IE4 از فرمت PNG پشتیبانی نمیکند و به جای آن شما نسخه gif را برای مرورگر ارسال میکنید. یا مثلاً براساس UserAgent نسخه موبایل برای مرورگر ارسال میکنید.
کاربردها
یکی از کاربردیترین موارد مربوط به آپاچی برای برنامه نویسان استفاده از پرونده .htaccessاست. برنامه نویس میتواند بااعمال تغییراتی در این پرونده که بر هر شاخهای قابل اضافه شدن است دستورات ویژه آن شاخه را به سرور ارایه دهد. برای نمونه اگر بخواهد که در صورت وارد کردن نشانی aa.html نام آن باقی بماند ولی در واقع پروندهmain.php?page=bb اجرا شود بهوسیله این پرونده قادر به اعمال دستورش خواهد بود.