网址最后面不带斜杠与带斜杠有什么区别

  • 文件与文件夹
  • 解析 URL

  关于网址中最后面的那个斜杠 /,很多人习惯性的不输入,原因是他们认为有或者没有没有区别。但这要归功于服务器那端的开发人员的努力。实际上,从概念上来讲,URL 的后缀带斜杠与不带是有区别的。解释这个原因之前,首先需要知道文件与文件夹的区别。

文件与文件夹

  文件代表用户存放的数据,而文件夹代表了文件之间的、由用户自定义的逻辑位置分布。从概念上讲,文件会占用一定的大小,而文件夹不会,因为文件夹不是数据本身。

  文件夹也可称为目录(有人认为文件夹(folder)与目录(directory)不是一码事。深究起来,的确如此。不过如果不加入深究,就本文而言,这两个概念是一码事)。如果从数据结构的观点来看,将文件与文件夹看作是一个多叉树,并规定此多叉树的非终端结点上不能存放数据,则文件就相当于此多叉树的终端结点,而文件夹则相当于此叉树的非终端结点。

  平时,当我们问“这个文件夹有多大”时,实际上问的是这个文件夹内的文件以及其各级子文件夹内的文件的大小总合,其中,这里“文件夹内的文件”仅指与这个文件夹(目录)下一级的目录同级的文件。

解析 URL

  一个日常见到的 URL 的格式如下:

协议名://域名/资源路径

  比如下面的这个笔者虚构的网址:(此网址是笔者虚构的,笔者也不知道此网址对应的网站是否存在。为了安全,希望读者不要因为好奇而点开此网址。)

https://www.domainname.com/dir/page.html

  协议名与域名这个不易混淆,容易混淆的是这之后的内容 /dir/page.html。很多人知道这是一种相对路径,不过实际上这个概念还可以再拆解。

  • 根目录:/
  • 文件夹:dir/
  • 文件:page.html

  这就是说,紧跟域名之后的斜杠 /,实际上指根目录。在路径中,一个标识符如果后面带斜杠 /,说明该标识符为一个文件夹的名称,如果不带斜杠 /,说明该标识符为一个文件的名称。


  有时也能看到直接访问目录的情况。如下面的网址代表访问的是根目录:

https://www.domainname.com/

  按照前面的概念,文件夹不是数据,所以最终访问的内容不能是文件夹。在这种情况下,将默认访问该目录设置的该目录下的某个文件,如 index.html 等。


  有时,使用后缀斜杠 / 来标识文件夹这种规则可适当放宽,比如对于路径中的最后一个标识符:

https://www.domainname.com/dir/unknown

  这里,unknown 可以为一个文件名,也可以为文件夹名。这种不确定因素存在的合理性在于,一般操作系统不会允许文件名与文件夹名相同。也就是说,如果上述的目录 dir 下存在名为 unknown 的文件,则不可能同时存在名为 unknown 的文件夹。


  不过,不要小看用户的创造能力。有的人在输入网址时,甚至连紧跟域名之后的斜杠以及之后的所有内容都不给出了,比如:

https://www.domainname.com

  不要指望让用户输入网址之前,先学习 URL 的语法。因此,需要对此情形作出规定。在这种情况下,访问的是该域名设置的默认文件(有时也称为主页(home page))。注意,从概念上,这访问的并不是根目录,不过,通常设置为根目录。


  另外,上面给出的只是一种对 URL 的默认解释。实际上,无论用户输入怎样的 URL,在服务器一端,开发人员都可以自由地解释与决定用户的访问。不过,应使用一种公认的标准来解析与引导用户的访问。

网址最后面不带斜杠与带斜杠有什么区别相关推荐

  1. 正斜杠 “/” 与反斜杠 “\”辨析

    文章目录 1. 正斜杠 /// 2. 反斜杠 \\backslash\ 3. 正斜杠与反斜杠的区别 4. 注意 注意,/// 为正斜杠(forward slash),而 \\backslash\ 为反 ...

  2. 正反斜杠的区别_彻底理解斜杠和反斜杠的区别

    前言 鉴于在Windows(开发环境)和Linux(部署环境)之中的路径(斜杠和反斜杠)经常会进行混淆,所以专门写一篇笔记来进行区分.大部分是按照博客园那位老兄的思路进行编写,并且结合另外一些人的想法 ...

  3. [Asp.net]c#中的斜杠和反斜杠

    引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠( ...

  4. 在linux中完整路径中的目录间分隔符是,路径分隔符(斜杠/与反斜杠\的问题)

    先总结:斜杠/常用:反斜杠\只有在windows系统中使用 路径中使用斜杠/和反斜杠\的区别到底是什么? 事实上是只有windows系统中用\,其他的项目中,linux中都使用/,这是历史原因,不解释 ...

  5. windows与linux中的路径书写,斜杠、反斜杠用法总结

    对于路径中经常出现斜杠"/"和反斜杠"\",很多人,包括我自己在内,经常会书写错误,尤其是同时在windows和linux两个操作系统中工作时,由于其路径写法的 ...

  6. html代码中本地路径里斜杠 / 和反斜杠 \ 的区别

    总结: windows和unix,linux本地路径里的 / 和 \ 在html代码里:错误文件路径: windows 只使用一个 \ 是不识别的, src='D:\个人\图片\2.jpg' unix ...

  7. 正斜杠( / )和反斜杠( \ )的区别

    反斜杠"\"是电脑出现了之后为了表示程序设计里的特殊含义才发明的专用标点.所以除了程序设计领域外,任何地方都不应该使用反斜杠. 如何区分正反斜杠 英语:"/" ...

  8. 正反斜杠的区别_电脑中的正斜杠(/)与反斜杠(\)的区别

    计算机中的正斜杠(/)与反斜杠(\)的区别 正斜杠,符号是"/";反斜杠,符号是"\". 一直很不解正斜杠与反斜杠到底有何区别?经过一段时间的理解,得出 DOS ...

  9. 正反斜杠的区别_正斜杠(/)和反斜杠(\)的区别

    正斜杠,符号是"/"; 反斜杠,符号是"\". 正斜杠/表示除法,分割. 在unix系统中,正斜杠/表示目录.由于web遵循unix命名,所以在网址(URL)中 ...

最新文章

  1. 计算机网络(谢希仁)-第一章:概述
  2. SecureCRT连接linux,vim颜色显示问题
  3. android L 关机流程图
  4. EntLib.com Forum / YAF 开源论坛--源码的目录结构(对分析代码很有帮助)
  5. 【JS】我的JavaScript学习之路(2)
  6. 11g新特性-自动sql调优(Automatic SQL Tuning)
  7. Redis 发布订阅,小功能大用处,真没那么废材!
  8. django orm 之makemigrations和migrate命令
  9. android线程改变布局,Android线程中设置控件的值提示报错的解决方法
  10. Android Studio一直显示Building“project name”Gradle project info问题详解
  11. 【场景实战】 头像违规的审查场景
  12. ST-LINK驱动的安装(有图 超详细)
  13. zzulioj 1819: 加加加!(油) (打表)
  14. 直通车推广:打造潮流女装爆款
  15. Windows10系统把JDK安装到D盘上的步骤及安装
  16. ldc java_java – LDC指令代码的负值是什么意思?
  17. C++源代码审计问题整改记录
  18. 一款支持http与dubbo协议互相转换的网关
  19. 系统集成项目管理工程师高频考点(第九章)
  20. 南宁市第二十六中学:教研路漫漫,花香伴我行

热门文章

  1. 一个计算机网络题目——给局域网分配合适的网络前缀。
  2. 尚硅谷Linux运维讲解视频(2018.12)
  3. 大一大学计算机论文摘要,大学计算机基础小论文
  4. excel一个表格分成多个的简单方法
  5. 可以在windows下预览SVG文件 SVG Explorer Extension
  6. Ubuntu 14.04 配置 Java SE jdk-7u55
  7. 记录高德地图H5导航
  8. 怎么把视频中的音频提取成mp3?
  9. 钾肥认沽权证谢幕:揭密2007年股市第一奇案
  10. 淘宝产品ID在哪儿查询?