Subject: Re: Case sensitive names and authoring

From: [email-masked]
Date: Fri, 3 Mar 2000 07:09:11 -0500

Greg,
This is great. I didn't have an HTTP spec in front of me when I wrote the
note (need to get one by the bed I guess). We're probably running into the
MSFT problem. Maybe this doesn't happen on Windows2000 which seems to leave
you file names alone a little better. I'll investigate.
|------------------------+------------------------>
|                        |   Greg Stein           |
|                        |   <[email-masked]>    |
|                        |                        |
|                        |   03/02/2000 11:56 PM  |
|                        |                        |
|------------------------+------------------------>
  >------------------------|
  |                        |
  |           To:          |
  |   Jim                  |
  |   Amsden/Raleigh/IBM@IB|
  |   MUS                  |
  |           cc:          |
  |   [email-masked] |
  |           Subject:     |
  |   Re: Case sensitive   |
  |   names and authoring  |
  >------------------------|

On Thu, 2 Mar 2000 [email-masked] wrote:
>
> HTTP URLs aren't case sensitive,

RFC 2616, S3.2.3 states "When comparing two URIs to decide if they match
or not, a client SHOULD use a case-sensitive octet-by-octet comparison of
the entire URIs, with these exceptions: ..."

In other words: they *are* case-sensitive.

Apache certainly treats them that way. Try these two URLs:

  http://www.webdav.org/other/proxy.html
 http://www.webdav.org/other/Proxy.html

You'll find the latter fails.

Note that HTTP servers running on an MSFT platform typically treat URLs in
a case-insensitive fashion (due to the filesystem being insensitive).

> but some resources are. For example, Java
> source managed by a WebDAV server must retain the case in the package and
> class names or the code won't compile. mod_dav foldes all resource names
to
> lower case, so .java files on the server won't compile.

WHAT?!!  mod_dav does NOT do any case-folding. Euh... what made you think
it does?

> It seems that WebDAV could, like HTTP, be case insensitive while at the
> same time require that the server retain the case of resource URLs. That
> is, the URL segments in the bindings would retain the case in the target
> when it was entered, but access to those resources would be case
> insensitive. If this is not the case, WebDAV can't be used to store Java.
> That would be a real bummer!
>
> Would the proposal above be acceptable, and in the spirit of HTTP?

No and no.  (IMO)

I certainly do not want to take the performance hit to start doing
case-insensitive work in mod_dav and Apache. I am in great favor of
continuing to operate in a case-sensitive fashion, and I believe the
relevant RFCs encourage that, too.

Cheers,
-g

--
Greg Stein, http://www.lyra.org/

---

From: "Eric Sedlar" <[email-masked]>
Date: Fri, 3 Mar 2000 10:32:34 -0800

One possibility we're toying with is to store a boolean property with a
collection resource indicating whether or not its bindings are
case-sensitive or case-insensitive.  For example, it might be the case that
part of your hierarchical namespace is implementing Windows filesystem
semantics, which require case-insensitive matching (although they are
case-preserving), and another part implementing UNIX filesystem semantics.
Otherwise, there will always be some loss of information when moving data in
and out of the WebDAV server.

--Eric

----- Original Message -----
From: <[email-masked]>
To: <[email-masked]>
Sent: Friday, March 03, 2000 4:09 AM
Subject: Re: Case sensitive names and authoring

Greg,

to

No and no. (IMO)

Cheers,
-g

---

From: Greg Stein <[email-masked]>
Date: Fri, 3 Mar 2000 13:19:44 -0800 (PST)

I'll backtrack from my statement just a bit... :-) Tim Ellison sent me an
off-list email saying that Apache 1.3.6 and mod_dav 0.9.15 on WinNT 4.0
SP5 *does* case-fold on a PUT.

I just tracked this down. While mod_dav doesn't do the case-folding,
Apache *does*. Thus, when mod_dav gets to the filename, it has been munged
to the lower-cased form.

[ specifically: http_request.c, line 401 in the CVS version ]

IMO, I call this a bug in Apache. The protocol and behaviors should be
case-sensitive. I'm not sure how/when Apache will be fixed, but we'll look
into it.

Cheers,
-g