url末尾的斜杠作用探秘

今天突然好奇,想区分www.abc.com/efg 和www.abc.com/efg/这两个网址的区别。即分析一下url末尾加个斜杠是否有特殊的效果。

找到网上的介绍:

当Web服务器接收到对某个末尾不含斜杠的url请求时,例如“www.abc.com/efg”,这时服务器会搜索网站根目录下有没有名为“abc”的文件,如果没有就把abc当做目录处理,然后返回abc目录下的默认首页。当Web服务器接收到的是末尾带斜杠的请求时就会直接当做目录处理。

同样,根据微软官方文档Internet Explorer and Connection Limits

Another web-performance tip: When generating hyperlinks, always include a trailing slash if possible. For instance, navigating to http://msdn.microsoft.com/ie takes one more roundtrip than http://msdn.microsoft.com/ie/. When the browser navigates to the /ie url, the server merely sends down a 301 to the /ie/ url. Both links work, but the second version is faster.

ok,根据上述的材料,我们是否可以认为url加上斜杠能加快访问速度。

接下来通过一个简单的flask项目测试一下:

Flask框架通过路由绑定url和视图函数,绑定http://127.0.0.1:5000/abchttp://127.0.0.1:5000/def/url。

总结:

  1. 网站要进行统一的标准,要么用户访问和网站url路由都在url末尾不加斜杠,要么都不在url末尾加斜杠,如果采用统一的标准在访问速度不会有任何的区别。
  2. 但是用户的行为是不可以限制和预测的。用户可能会在url后面加个斜杠。
  3. 两个技术方案各有利弊:1.网站路由url不加斜杠,用户自己加斜杠之后访问404,但是不会出现重定向的问题;2.网站路由url加斜杠,用户访问的url无论加不加斜杠均可访问正常,但是不加斜杠的访问链接会做重定向,影响访问速度。

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

原文地址:https://www.cnblogs.com/kendrick/p/c538e9a43f34479e928f7d97aa8f30d8.html

时间: 2024-11-20 20:13:10

url末尾的斜杠作用探秘的相关文章

ASP.NET MVC中URL末尾斜杠的实现

在网站的SEO优化中,通常都会涉及到URL结尾斜杠的问题. http://blog.sina.com.cn/s/blog_828e7ce40100srj1.html http://www.dengyouqi.com/websiteoptimization/963.html http://ask.seowhy.com/question/1221   在.NET MVC里面可以通过下面非常简单的方式做到这个效果 但是.NET MVC 4.0以上版本才开始支持.

Nginx之proxy_pass指令url反斜杠作用

在nginx中配置proxy_pass代理转发时,其后面的url中反斜杠/ 的匹配处理时常出现意想不到的问题发生,以下说明两种情况:(1)如果在proxy_pass后面的url加/,表示绝对根路径:(2)如果在proxy_pass后面的url没有/,表示相对路径,把匹配的路径部分也给代理走. 下面四种情况分别用 http://127.0.0.1/proxy/test.html 进行访问测试 第一种情况: location /proxy/ { proxy_pass http://127.0.0.1

URL末尾处的斜杠“/”

在输入网址的时候,比如输入"http://www.xxx.com/",此URL中末尾的斜杠是至关重要的.因为在这种情况下,浏览器能安全的添加斜杠.而像"http://www.xxx.com/FolderOrFile"这样的地址,因为浏览器不清楚FolderOrFile到底是文件夹还是文件,所以不能自动添加斜杠.此时,浏览器就不加斜杠直接访问地址,服务器会响应一个重定向301,或者被认为是不同的URL.

nginx 重写URL尾部斜杠

1. 在URL结尾添加斜杠 在虚拟主机中这么添加一条改写规则: rewrite ^(.*[^/])$ $1/ permanent; 例如: server { listen 80; server_name bbs.ttlsa.com; rewrite ^(.*[^/])$ $1/ permanent; } 2. 删除URL结尾的斜杠 在虚拟主机中这么添加一条改写规则: rewrite ^/(.*)/$ /$1 permanent; 例如: server { listen 80; server_na

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

引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠(\)总结 正斜杠/表示除法,分隔.在windows系统中通常用来分隔命令行参数,/表示选项等.不能作为文件名. 反斜杠\,在windows系统中用来表示目录. 而在unix系统中,/表示目录.由于web遵循unix命名,所以在网址(URL)中,/表示目录. C#中反斜杠\与斜杠/ 转移字符路径的问题

如何成为月入过万的斜杠青年

先讲两个故事. 1. 小A是个很喜欢看韩剧的小姑娘. 她不仅仅是因为喜欢剧情,喜欢里面的主角,她还喜欢里面的服饰搭配. 自己经常会一边看电视剧,一边琢磨里面演员的穿着打扮,久而久之,自己对于形象管理的能力还真提高了不少. 同学们也都很喜欢跟她上街买衣服,因为她总是能够给她们提出很好的建议. 有一次,一个朋友随口说了一句,小A,你这么会搭配衣服,你都成形象设计师了,都能够靠这个来赚钱了! 说着无意,听者有心. 小A还真是当真了. 她开始利用网络经常发一些关于服装搭配的帖子,有时间就分享,久而久之,

URL加随机数的作用

原文:URL加随机数的作用 大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的时候总是使用IE缓存,为了解决这个问题一般可以用一下方法: 1:在ajax或者dwr提交的url后面加时间戳. 例如 http_request.onreadystatechange = funcName; http_request.open("GET", url, true); 比如url是test .jsp 那么我们在它后面加上?time=new Date();

整理几个自学网站给你!让你也成为一专多能无缺陷的斜杠青年!

生活在这个充满竞争,血腥味十足分分钟钟就会别人取代的大数据移动互联时代,大家一有点时间就会拼命地给自己打鸡血充电学习,让自己可以拥有一专多能无缺陷的斜杠青年!其实,更多人害怕的是自己在某个时候落后于别人,被后来者取代.所以自学技能成为当下很流行的一个充电方式,一来可以不用花一大堆钱报很多培训班就可以自学多种技能,而来还可以省下很多时间,真是一举两得的事情,但是大家可能在网络学习一般没有针对性,一去就是百度,找不到自己喜欢的自学网站,所以,今天兿林就给大家推荐几个值得大家去自学的网站.一来可以省下

url中#号的作用

url中#号的作用就是本页面位置跳转 比如这个url地址:http://www.aaaaa.com/index.html?ad=34&m=c#red red就是index.html页面的依哥位置 浏览器读取这个URL后,会自动将red位置滚动至可视区域 位置定义方式 <a name="red">cdsc</a>  或者 <div id="red">abc</div> 常会看到一些简单的网站的导航菜单都是在本页面