<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 636430 -->
<!-- =====================================================
 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
   Reviewed by: Orhan Berent <berent belgeler.org>
========================================================== -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manualpage metafile="index.xml.meta">
  <parentdocument href="../"/>

  <title>Çeşitli Belgeler</title>

  <summary>

    <p>Aşağıda listelenen belgeler de Apache HTTP sunucusu geliştirme projesi
      kapsamındadır.</p>

    <note type="warning"><title>Uyarı</title>
    <p>Aşağıdaki belgeler, Apache HTTP Sunucusunun 2.1 sürümünde yapılmış
      değişikliklere göre tam olarak güncellenmemiştir. Hala güncel kalmış
      bazı bilgiler olabilir, fakat siz yine de bu belgeleri kullanırken
      dikkatli olun.</p>
    </note>

    <dl>
      <dt><a href="perf-tuning.html">Başarım Arttırma İpuçları - Apache’ye
        İnce Ayar Çekilmesi</a></dt>

      <dd>
        <p>Yüksek başarım elde etmek için Apache yapılandırmasında (çalışma
          anında ve derleme sırasında) yapılacaklar ile ilgili bazı bilgiler
          yanında Apache’de bazı şeylerin (bir şeyleri hızlandıran ve
          yavaşlatan şeylerin) yapılma ve yapılmama sebepleri
          açıklanmıştır.</p>
      </dd>

      <dt><a href="security_tips.html">Güvenlik İpuçları</a></dt>

      <dd>
        <p>Apache HTTP sitenizi güvenli kılmak için yapılacaklar ve
          yapılmayacaklar.</p>
      </dd>

      <dt><a href="relevant_standards.html">İlgili Standartlar</a></dt>

      <dd>
        <p>Bu belge Apache’nin uyacağı standartların bir çoğuna atıfta
          bulunmak amacıyla hazırlanmıştır.</p>
      </dd>

      <dt><a href="password_encryptions.html">Parola Şifreleme Biçimleri</a>
      </dt>

      <dd>
        <p>Belgede, kimlik doğrulama amacıyla Apache tarafından desteklenen
          çeşitli şifreleme tekniklerinden bahsedilmiştir.</p>
      </dd>
    </dl>

  </summary>

</manualpage>
