Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 12905 invoked from network); 1 Mar 2011 21:20:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 1 Mar 2011 21:20:37 -0000 Received: (qmail 20254 invoked by uid 500); 1 Mar 2011 21:20:37 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 20046 invoked by uid 500); 1 Mar 2011 21:20:36 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 20038 invoked by uid 99); 1 Mar 2011 21:20:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Mar 2011 21:20:36 +0000 X-ASF-Spam-Status: No, hits=0.7 required=5.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [80.244.253.218] (HELO mail.traeumt.net) (80.244.253.218) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Mar 2011 21:20:29 +0000 Received: from dahlia.fritz.box (brln-4db8153a.pool.mediaWays.net [77.184.21.58]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.traeumt.net (Postfix) with ESMTPSA id 942743C15C for ; Tue, 1 Mar 2011 22:20:06 +0100 (CET) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1082) Subject: Re: [IANA #411617] Application for port-number: couchdbs From: Jan Lehnardt In-Reply-To: Date: Tue, 1 Mar 2011 22:20:05 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <60EC979F-8753-4A03-86B7-20B3E2AA87F5@apache.org> References: <20101203134740.02FFE301BA@isvc1.lax.icann.org> <1D36C180-89A6-4B01-B20D-B7449D77AF1F@tumbolia.org> <9D56872A-02B4-42AE-928D-A4EEB38D3DF7@tumbolia.org> To: dev@couchdb.apache.org X-Mailer: Apple Mail (2.1082) Well done, Noah, thanks! Cheers Jan --=20 On 1 Mar 2011, at 18:52, Noah Slater wrote: > Hello, >=20 > CouchDB is a document database that implements a RESTful JSON API via = HTTP. All interaction between the server and client is made via standard = HTTP 1.1 responses and requests. The database only makes use of standard = HTTP 1.1, and does not add any features. >=20 > While CouchDB speaks vanilla HTTP, just like a WWW server on TCP 80, = it does so in a constrained manner. The specific URLs exposed, and = database-specific consequences of using a GET or a POST request (for = example) are formalised for client and server. >=20 > Additionally, CouchDB only exposes an API via HTTP. It does not serve = up web pages for human consumption. TCP 80 is reserved for uses of HTTP = that serve up World Wide Web pages. These two use-cases for HTTP a quite = different, and call for different ports. >=20 > Many CouchDB users want to install a WWW server on a host, at the same = time as a CouchDB server. While both server daemons speak the same = network protocol, they both have very different uses. And both daemons = cannot listen on the same port for connections. >=20 > And just like one might want to host a MySQL database server on the = same host as an Apache WWW server, many people want to host a CouchDB = database server too. And just like MySQL has TCP allocated 3306 for = this, CouchDB has TCP 5984. >=20 > The problem we're having now is that users want to run a CouchDB = database server with newly enabled TLS/SSL feature. Because of the way = HTTP 1.1 works with TLS/SSL, you cannot listen for secure connections on = the same port as non-secure connections. >=20 > This is because the WWW server must know the host before the proper = secure handshake can be initiated. Upgrading to TLS/SSL within a regular = HTTP 1.1 request would have fixed this problem, but this was never = properly implemented by many clients. >=20 > To solve this problem, most WWW servers additionally listen on a new = hostname and TCP 443 combination for each TLS/SSL site they accept = connections for. It is the only interoperable way to accept secure and = non-secure connections at the same time. >=20 > Because CouchDB is a non-WWW HTTP 1.1 server that requires the ability = to serve secure and non-secure connections from the same host, it is = therefor requested that a secure port be allocated, so that the same = solution as WWW HTTP 1.1 can be implemented. >=20 > Thank you, >=20 > Noah >=20