Apache Eylemcilerinin Kullanımı - Apache HTTP Sunucusu Sürüm 2.4
Bu belgede Apache Eylemcilerinin kullanımı açıklanmıştır.
Eylemci Nedir?
Bir eylemci bir dosya çağrıldığında uygulanacak eylemin Apache dahilindeki gösterimidir. Genellikle dosyaların kendi türüne bağlı olarak örtük eylemcileri vardır. Normalde tüm dosyalar basitçe sunucu tarafından sunulurlar, fakat bazı dosya türleri normalden farklı şekilde ele alınırlar.
Eylemciler, dosya türünden bağımsız olarak dosyanın bulunduğu yere veya dosya ismi uzantısına göre de yapılandırılabilirler. Gerek, zarif bir çözüm oluşuyla gerekse, hem dosya türünü hem de bir dosya ile ilişkili bir eylemciyi mümkün kılması sebebiyle bunun getirisi daha yüksektir. (Ayrıca, çok uzantılı dosyalara da bakınız.)
Eylemciler sunucu içinde derlenebileceği gibi bir modül olarak ya da
Action yönergesi ile de
sunucuya dahil edilebilirler. Standart dağıtımda bulunan yerleşik
eylemciler şunlardır:
- default-handler: Dosyayı, öntanımlı olarak durağan
içeriği işlemekte kullanılan
default_handler()işlevini kullanarak gönderir. (core) - send-as-is: Dosyayı HTTP başlıklarıyla olduğu gibi
gönderir. (
mod_asis) - cgi-script: Dosyayı bir CGI betiği olarak ele alır.
(
mod_cgi) - imap-file: Dosyayı bir resim eşleme kuralları
dosyası olarak çözümler. (
mod_imagemap) - server-info: Sunucunun yapılandırma bilgisini
döndürür. (
mod_info) - server-status: Sunucunun durum raporunu döndürür.
(
mod_status) - type-map: Dosyayı içerik uzlaşımı için bir tür
eşlem dosyası olarak çözümler. (
mod_negotiation)
Örnekler
Bir CGI betiği kullanarak durağan içeriğin değiştirilmesi
Aşağıdaki yönergeler sayesinde, html uzantılı dosyalar
için yapılan istekler footer.pl CGI betiğininin
çalıştırılmasına sebep olacaktır.
Action add-footer /cgi-bin/footer.pl AddHandler add-footer .html
Bu yapılandırmayla, istenen belgenin özgün haliyle mi (yeri
PATH_TRANSLATED ortam değişkenindedir) yoksa istenen
değişiklikler veya eklemeler yapıldıktan sonra mı gönderileceğinden
CGI betiği sorumlu olacaktır.
HTTP başlıklı dosyalar
Aşağıdaki yönergeler kendi HTTP başlıklarını içeren dosyalar için
kullanılan send-as-is eylemcisini etkinleştirmek amacıyla
kullanılmıştır. /siteler/htdocs/asis/ dizinindeki tüm
dosyalar dosya ismi uzantılarına bakılmaksızın send-as-is
eylemcisi tarafından işleme sokulacaktır.
<Directory "/web/htdocs/asis">
SetHandler send-as-is
</Directory>
Yazılım Geliştirenler İçin
Eylemci özellikleri gerçeklenirken kullanılmak üzere Apache API’ye bir ekleme yapılmıştır.
Özellikle de, request_rec yapısına yeni bir kayıt
eklenmiştir:
char *handler
Modülünüzün bir eylemciyi devreye sokmasını isterseniz, tek yapacağınız
isteğin invoke_handler aşamasının hemen öncesinde
r->handler alanına eylemcinin ismini atamak olacaktır.
Eylemciler daha önce de bahsedildiği gibi bir içerik türü yerine bir
eylemci ismi kullanılarak gerçeklenirler. Çok gerekli olmamakla
birlikte, eylemciler için kullanılan adlandırma uzlaşımları gereğince,
ismi oluşturan sözcükler, ortam türü isim alanını ihlal etmemek amacıyla
bölü imleri ile değil tire imleri ile ayrılırlar.
Yorumlar
Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.

