<?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.4</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/directives.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.4</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.4</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>

    <p>Bu belgede Apache Eylemcilerinin kullanımı açıklanmıştır.</p>
  </div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><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>

      <pre class="prettyprint lang-config">Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html</pre>


      <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>

      <pre class="prettyprint lang-config">&lt;Directory "/web/htdocs/asis"&gt;
    SetHandler send-as-is
&lt;/Directory&gt;</pre>


    
  </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>

    <pre class="prettyprint lang-c">char *handler</pre>


    <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/2.4/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 2019 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/directives.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>