代码之家  ›  专栏  ›  技术社区  ›  Yossi Dahan

为什么cookie路径区分大小写?

  •  16
  • Yossi Dahan  · 技术社区  · 17 年前

    几周前我第一次意识到,当设置http cookie时,虽然域名不区分大小写,但路径是。

    所以有一段时间,一块饼干被储存起来

    http://SomeWebSite.com

    http://somewebsite.com

    为…而储存的饼干

    http://somewebsite.com/SomePath

    不能 使用

    http://somewebsite.com/somepath

    根本找不到。

    正如RFC中明确规定的(见第3.3.3点 here )我怀疑这是一个疏忽,但作为一个用户,我没有接受过将URL视为区分大小写的文本和web服务器的培训,据我所知,这两种方式似乎都不介意,可以很好地服务于页面;所以我想知道,这个决定背后的理由是什么?

    3 回复  |  直到 17 年前
        1
  •  18
  •   strager    13 年前

    大多数Web服务器提供防白痴机制。据我所知,有两种常见的方法是在目录名的末尾添加斜杠( http://example.com/x => http://example.com/x/ http://stackoverflow.com/ABOUT http://stackoverflow.com/about ).然而,这是 这是Web服务器的要求,浏览器知道这一点。 http://stackoverflow.com/ABOUT http://stackoverflow.com/about

        2
  •  2
  •   some    17 年前

    如果路径区分大小写或不区分大小写,则由web服务器决定。传统上,类unix的OS:s区分大小写,而MS则不区分大小写,这可能反映在特定OS上开发的Web服务器中。

    联系 information about different filesystems 这可能会引起人们的兴趣。

    使现代化

    URL指向的资源取决于Web服务器。 http://some.domain.name/myFavouriteThings.txt 可能是存储在我的服务器硬盘上的文本文件,但也可以存储在数据库中,指向执行的脚本并返回一些随机行。它甚至不必是文本文件,它可以是图片、视频或任何可以数字传输的东西。

    但在本例中,它在服务器上作为文件排序。由于服务器是类unix系统,服务器文件系统区分大小写。因此,只有当请求的大小写与磁盘上存储的文件匹配时,它才会找到该文件。如果服务器存储在MS服务器上,文件系统不区分大小写,那么请求的大小写可能无关紧要。

        3
  •  -1
  •   Øyvind Skaar    17 年前

    始终将所有内容视为区分大小写。