<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Apache Eylemcilerinin Kullanımı - Apache HTTP Sunucusu Sürüm 2.5</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
<script src="./style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/quickreference.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
<p class="apache">Apache HTTP Sunucusu Sürüm 2.5</p>
<img alt="" src="./images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">Sürüm 2.5</a></div><div id="page-content"><div id="preamble"><h1>Apache Eylemcilerinin Kullanımı</h1>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="./en/handler.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/handler.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
<a href="./fr/handler.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="./ja/handler.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/handler.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/handler.html" title="Türkçe">&nbsp;tr&nbsp;</a> |
<a href="./zh-cn/handler.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div>
<div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>

    <p>Bu belgede Apache Eylemcilerinin kullanımı açıklanmıştır.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#definition">Eylemci Nedir?</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#examples">Örnekler</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#programmer">Yazılım Geliştirenler İçin</a></li>
</ul><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="definition" id="definition">Eylemci Nedir?</a></h2>
    
    <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_actions.html">mod_actions</a></code></li><li><code class="module"><a href="./mod/mod_asis.html">mod_asis</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code></li><li><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></li><li><code class="module"><a href="./mod/mod_mime.html">mod_mime</a></code></li><li><code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code></li><li><code class="module"><a href="./mod/mod_status.html">mod_status</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_actions.html#action">Action</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="./mod/mod_mime.html#removehandler">RemoveHandler</a></code></li><li><code class="directive"><a href="./mod/core.html#sethandler">SetHandler</a></code></li></ul></td></tr></table>


    <p>Bir <em>eylemci</em> 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.</p>

    <p>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, <a href="mod/mod_mime.html#multipleext">çok uzantılı
      dosyalara</a> da bakınız.)</p>

    <p>Eylemciler sunucu içinde derlenebileceği gibi bir modül olarak ya da
      <code class="directive"><a href="./mod/mod_actions.html#action">Action</a></code> yönergesi ile de
      sunucuya dahil edilebilirler. Standart dağıtımda bulunan yerleşik
      eylemciler şunlardır:</p>

    <ul>
      <li><strong>default-handler</strong>: Dosyayı, öntanımlı olarak durağan
        içeriği işlemekte kullanılan <code>default_handler()</code> işlevini
        kullanarak gönderir. (<code class="module"><a href="./mod/core.html">core</a></code>)</li>

      <li><strong>send-as-is</strong>: Dosyayı HTTP başlıklarıyla olduğu gibi
        gönderir. (<code class="module"><a href="./mod/mod_asis.html">mod_asis</a></code>)</li>

      <li><strong>cgi-script</strong>: Dosyayı bir CGI betiği olarak ele alır.
        (<code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code>)</li>

      <li><strong>imap-file</strong>: Dosyayı bir resim eşleme kuralları
        dosyası olarak çözümler. (<code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code>)</li>

      <li><strong>server-info</strong>: Sunucunun yapılandırma bilgisini
        döndürür. (<code class="module"><a href="./mod/mod_info.html">mod_info</a></code>)</li>

      <li><strong>server-status</strong>: Sunucunun durum raporunu döndürür.
        (<code class="module"><a href="./mod/mod_status.html">mod_status</a></code>)</li>

      <li><strong>type-map</strong>: Dosyayı içerik uzlaşımı için bir tür
        eşlem dosyası olarak çözümler. (<code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>)</li>
    </ul>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="examples" id="examples">Örnekler</a></h2>
    

    <h3><a name="example1" id="example1">Bir CGI betiği kullanarak durağan içeriğin değiştirilmesi</a></h3>
      

      <p>Aşağıdaki yönergeler sayesinde, <code>html</code> uzantılı dosyalar
        için yapılan istekler <code>footer.pl</code> CGI betiğininin
        çalıştırılmasına sebep olacaktır.</p>

      <div class="example"><p><code>
        Action add-footer /cgi-bin/footer.pl<br />
        AddHandler add-footer .html
      </code></p></div>

      <p>Bu yapılandırmayla, istenen belgenin özgün haliyle mi (yeri
        <code>PATH_TRANSLATED</code> 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.</p>

    
    <h3><a name="example2" id="example2">HTTP başlıklı dosyalar</a></h3>
      

      <p>Aşağıdaki yönergeler kendi HTTP başlıklarını içeren dosyalar için
        kullanılan <code>send-as-is</code> eylemcisini etkinleştirmek amacıyla
        kullanılmıştır. <code>/siteler/htdocs/asis/</code> dizinindeki tüm
        dosyalar dosya ismi uzantılarına bakılmaksızın <code>send-as-is</code>
        eylemcisi tarafından işleme sokulacaktır.</p>

      <div class="example"><p><code>
        &lt;Directory /siteler/htdocs/asis&gt;<br />
        <span class="indent">SetHandler send-as-is</span>
        &lt;/Directory&gt;
      </code></p></div>

    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="programmer" id="programmer">Yazılım Geliştirenler İçin</a></h2>
    

    <p>Eylemci özellikleri gerçeklenirken kullanılmak üzere <a href="developer/API.html">Apache API</a>’ye bir ekleme yapılmıştır.
      Özellikle de, <code>request_rec</code> yapısına yeni bir kayıt
      eklenmiştir:</p>

    <div class="example"><p><code>
      char *handler
    </code></p></div>

    <p>Modülünüzün bir eylemciyi devreye sokmasını isterseniz, tek yapacağınız
      isteğin <code>invoke_handler</code> aşamasının hemen öncesinde
      <code>r-&gt;handler</code> 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.</p>
  </div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="./en/handler.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/handler.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
<a href="./fr/handler.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="./ja/handler.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/handler.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/handler.html" title="Türkçe">&nbsp;tr&nbsp;</a> |
<a href="./zh-cn/handler.html" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again 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 Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/handler.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else {
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2016 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
<p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/quickreference.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>