Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9B2BA972C for ; Thu, 26 Jul 2012 13:36:05 +0000 (UTC) Received: (qmail 33510 invoked by uid 500); 26 Jul 2012 13:27:01 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 36214 invoked by uid 500); 26 Jul 2012 13:22:37 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 65228 invoked by uid 99); 26 Jul 2012 08:42:37 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Jul 2012 08:42:37 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FSL_FREEMAIL_1,FSL_FREEMAIL_2,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of nickgearls@gmail.com designates 209.85.212.169 as permitted sender) Received: from [209.85.212.169] (HELO mail-wi0-f169.google.com) (209.85.212.169) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Jul 2012 08:42:29 +0000 Received: by wibhm2 with SMTP id hm2so5376544wib.0 for ; Thu, 26 Jul 2012 01:42:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:reply-to:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=y73HwOuUqZoHaBuVne0dDOltfj/pnnxTyXmWGnEu6Eg=; b=QfuSellkyD9eGWDFz8QgnHoNTFuw290jYY72hY6cI/GiDMNapqn3FMhQ3jIuk1ypM4 X0GH7m+Sij4/CRqb1bYKPw0jlIUWyxpwRdkg3KKya1z9kYMWtW3EmPe0uDeutTvpH6Sj 34OiciQrEpQiRWE5jtbI4+N8c5UWq98YNTwhsGAksrzHko2bxbqQBopUYEnTbWZG7QzP 3KPq24Six6EuS2X7gNVYJAd68Izw6ltg90FTzTOjlowZg9ed2LQ9gFbX19SKe3q4d9tP BrRBAOnowutctE1Vfmr04tr/s3P3vpp03NGQV6CW2f83kM+jjhNn9rLU+PAvkwDUxyQZ LdMw== Received: by 10.216.113.4 with SMTP id z4mr12823527weg.201.1343292127903; Thu, 26 Jul 2012 01:42:07 -0700 (PDT) Received: from [10.129.16.249] (caron.approach.be. [188.118.19.81]) by mx.google.com with ESMTPS id ep14sm7612464wid.0.2012.07.26.01.42.07 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 26 Jul 2012 01:42:07 -0700 (PDT) Message-ID: <501102DC.7090901@gmail.com> Date: Thu, 26 Jul 2012 10:42:04 +0200 From: Nick Gearls Reply-To: nickgearls@gmail.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 To: Development Apache Subject: httpd 3 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hello, It was requested to provide some ideas for the direction to go with httpd 3. One of the main issues I'd like to be tackled is the lack of consistency in the directives for linked functionalities. For instance: - Some modules have access to variables set with Setenv, but not those set with SetenvIf (and the opposite) - Setenv & SetenvIf are not processed sequentially (first all Setenv, then all SetenvIf) - SetenvIf can overwrite a variable (set with SetenvIf ) inside a location, but Setenv cannot - Every module is using its own tag parsing to access environment variables (and request info). This is not only redundant, but - variable expansion is not available in some modules - the syntax is not always the same - all variables are not available in all modules (ex: SSL variables are not always available) - Filters set with AddOutputFilterByType are not removed with RemoveOutputFilter - Modules using outgoing connections (ex: OCSP requests in mod_ssl) do not benefit from the pooling features available in mod_proxy - RewriteRule[P] can be used instead of ProxyPass but ProxyPass directives are executed first, even if a RewriteRule appears first - etc. In a general way, there is absolutely no info about this lack of consistency and, every time a question is asked, developers have more or less to guess the answer (by looking at the code I guess). Could this problem be solved by - centralizing some functionalities and generalizing some mechanisms - formalize the way to use them - defining a directive processing order based on the functionality instead of the module - and DOCUMENT all of this This would really be a huge benefit for advanced use of httpd. Thanks, Nick