remove_dot_segments似乎将相对路径转换为绝对路径

时间:2017-10-03 03:56:49

标签: url rfc3986

标准66的

"5.2.4. Remove Dot Segments"解释了如何将...的路径转换为没有的路径。

IIUC,输入foo/../bar按如下方式处理。

  1. 按步骤1,(输入缓冲区,输出缓冲区)初始化为("foo/../bar"""
  2. 步骤2.E适用于获取("/../bar""foo"
  3. 步骤2.C适用于获取("/bar"""
  4. 步骤2.E适用于获取("""/bar"
  5. 第2步循环退出
  6. 按步骤3,结果为/bar
  7. 对我来说,输入是相对路径似乎很奇怪,但输出是绝对路径。

    在我看来,如果输入缓冲区以/开头并且从 isAbsolute 设置为true即可解决此问题。 >

      

    ℃。如果输入缓冲区的前缀为" /../"或" /..",              在哪里" .."是一个完整的路径段,然后替换它              前缀为" /"在输入缓冲区中删除最后一个              段及其前面的" /" (如果有的话)来自输出              缓冲;否则,

      

    ℃。如果输入缓冲区的前缀为" /../"或" /..",              在哪里" .."是一个完整的路径段,然后替换它              前缀为" /"在输入缓冲区中删除最后一个              段及其前面的" /" (如果有的话)来自输出              缓冲区,然后如果不是 isAbsolute 和输出缓冲区              是空的,删除" /"从输入缓冲区的前面;         否则,

    我误读了这个规格吗?这是因为某种原因我没有看到的理想结果吗?

    我将一个gist放在一起,实现了我对规范和"修复"的理解。我提议了。

0 个答案:

没有答案