url - 什么时候应该在我的 URL 中使用斜杠?

url - 什么时候应该在我的 URL 中使用斜杠?

这实际上不是美学问题,而是技术差异。考虑它的目录是完全正确的,几乎可以解释一切。让我们解决它:

您现在又回到了石器时代,或者只提供静态页面

你的网络服务器上有一个固定的目录结构,只有图像、html 等静态文件——没有服务器端脚本或任何东西。

浏览器请求/index.htm,它存在并交付给客户端。稍后,您将有很多(比方说)经过审核的 DVD 电影以及/dvd/目录中每个电影的 html 页面。现在有人请求/dvd/adams_apples.htm并且它被交付,因为它在那里。

在某一天,有人只是请求/dvd/-这是一个目录,服务器正试图弄清楚要交付什么。除了访问限制等还有两种可能性:向用户显示目录内容(我打赌你已经在某处看到过)或显示默认文件(在 Apache 中是DirectoryIndex: sets the file that Apache will serve if a directory is requested.:)

到目前为止一切顺利,这是预期的情况。它已经显示了处理上的差异,所以让我们开始吧:

早上 5 点 34 分,您上传文件时出错

(顺便说一句,这是完全可以理解的。)因此,您做错了事,而不是将/dvd/the_big_lebowski.htm文件上传为dvd(没有扩展名)到/.

有人为您的/dvd/目录列表添加了书签(当然您不想创建并总是更新那个漂亮index.htm的)并且正在访问您的网站。目录内容已交付 - 一切正常。

有人听说了您的列表并正在输入/dvd。现在它被搞砸了。服务器会查找具有该名称的文件,而不是列出您的 DVD 目录,并提供您的 Big Lebowski 文件。

因此,您删除该文件并告诉该人重新加载页面。您的服务器正在查找该/dvd文件,但它已经消失了。然后大多数服务器会注意到有一个具有该名称的目录,并告诉客户端它正在寻找的东西确实在其他地方。响应很可能是:

Status Code:301 Moved Permanently和Location: http://[...]/dvd/

因此,完全忽略您对目录或文件的看法,服务器只能处理此类内容,并且 - 除非另有说明 - 为您决定“斜线与否”的含义。

最后在收到此响应后,客户端加载/dvd/并且一切正常。

好吗?不。

“刚刚好”对你来说还不够好

您有一些动态页面,其中所有内容都被传递/index.php并得到处理。到目前为止,一切都很好,但是整个事情开始变得更慢,你开始调查。

很快,您会注意到它/dvd/list的作用完全相同:重定向到/dvd/list/然后在内部翻译成index.php?controller=dvd&action=list. 一个额外的要求 - 但更糟糕的是!customer/login重定向到customer/login/哪个又重定向到customer/login/. 您最终会有大量不必要的 HTTP 重定向(= 额外请求),这会使用户体验变慢。

很可能您在这里也有一个默认目录索引:index.php?controller=dvd没有action简单的内部加载index.php?controller=dvd&action=list。

概括:

如果它以它结尾,/它永远不会是一个文件。没有服务器猜测。

斜线或不斜线是完全不同的含义。“斜线或不斜线”之间存在技术/资源差异,您应该意识到它并相应地使用它。仅仅因为服务器最有可能加载/dvd/index.htm- 或加载正确的脚本内容 - 当你说/dvd:它做到了,但不是因为你提出了正确的请求。本来是/dvd/。

即使您确实是指斜线版本,省略斜线也会给您额外的 HTTP 请求惩罚。这总是很糟糕(想想移动延迟)并且比“漂亮的 URL”更重要 - 特别是因为爬虫并不像 SEO 相信或希望你相信的那样愚蠢;)

📚 相关推荐

外资品牌之争!夏普50SU460A和飞利浦50PUF6061对比横评
上海二手电脑 上海嘉定哪有卖二手笔记本电脑的?
苹果7p内存分别是多少
微波炉煮米饭的完美方法(用微波炉轻松做出口感绵软的米饭)
如何改善客户服务与管理
为什么同性恋在进化中没有消失?Science子刊:背后原因出乎预料!