Apache Eylemcilerinin Kullanımı - Apache HTTP Sunucusu

Apache Server 2.0

Apache HTTP Sunucusu Sürüm 2.0

<-

Apache Eylemcilerinin Kullanımı

Bu belgede Apache Eylemcilerinin kullanımı açıklanmıştır.

top

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.

Apache 1.1 sürümünden itibaren eylemciler doğrudan kullanılabilmektedir. 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_imap)
  • 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)
top

Ö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 /siteler/htdocs/asis>
SetHandler send-as-is </Directory>

top

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.