今天突然好奇,想区分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;">

 
 
 
 

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

  1. 常用路径 URL 中的斜杠与反斜杠

    常用路径中的斜杠与反斜杠... ------------------------------ 斜杠:反斜杠:======================电脑能识别的斜杠有两种:斜杠分正斜杠(forwa ...

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

    在网站的SEO优化中,通常都会涉及到URL结尾斜杠的问题. http://blog.sina.com.cn/s/blog_828e7ce40100srj1.html http://www.dengyo ...

  3. URL末尾处的斜杠“/”

    在输入网址的时候,比如输入"http://www.xxx.com/",此URL中末尾的斜杠是至关重要的.因为在这种情况下,浏览器能安全的添加斜杠.而像"http://ww ...

  4. nginx 重写URL尾部斜杠

    1. 在URL结尾添加斜杠 在虚拟主机中这么添加一条改写规则: rewrite ^(.*[^/])$ $1/ permanent;或者rewrite ^([/\w-_]*[^/])$ $1/ perm ...

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

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

  6. json_encode让URL内容斜杠/不转义

    同事在开发接口的时候根据接口提示要求传参一个字符串json,该json格式中有URL数组,按照json_encode编码后总发现 http://变成了 http:\/\/  .URL的斜杠自动的被转义 ...

  7. Django和Flask对于URL尾斜杠(back slash)的处理

    最近在看Flask,其中提到了对于URL尾斜杠的处理.感觉算是一个需要注意的地方吧,就和Django的处理方式来进行一个简单的对比. 首先说下什么是尾斜杠. http://www.baidu.com/ ...

  8. url中#号的作用

    url中#号的作用就是本页面位置跳转 比如这个url地址:http://www.aaaaa.com/index.html?ad=34&m=c#red red就是index.html页面的依哥位 ...

  9. URL加随机数的作用

    原文:URL加随机数的作用 大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的时候总是使用IE缓存,为了解决这个问题一般可以用一下方法:        1 ...

随机推荐

  1. C++ STL标准模板库(stack)

    //stack的使用 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<stack> using name ...

  2. 请说出ArrayList,Vector, LinkedList的存储性能和特性

    请说出ArrayList,Vector, LinkedList的存储性能和特性 解答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都 ...

  3. J2EE是什么?

    解答:从整体上讲,J2EE是使用Java技术开发企业级应用的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的J2EE,提供一个平台独立的.可移植的.多用户的.安全的和 ...

  4. 【BZOJ】3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3410 太神了.... 按末端点排序然后贪心取即可. QAQ #include <cstdio& ...

  5. mysql DBA 指南

    Mysql目录 数据库介绍.常见分类 Mysql入门 Mysql安装配置 Mysql多实例安装配置 Mysql常用基本命令 Mysql权限体系 Mysql数据库备份和恢复 Mysql日志 Mysql逻 ...

  6. 【ARIMA】Autoregressive Integrated Moving Average Model

    [理论部分] ARIMA包含两部分,自回归AR和移动平均MA: AR:Y(t)-a=b(1){Y(t-1)-a}+u(t)   其中a是y的均值, u(t)是均值为零,恒定方差的不相关随机误差项(噪声 ...

  7. mybatis总结(二)

    实现简单的crud,上一节已经进行最简单的查询 这次在oracle数据库中操作,就在oracle实例中操作,分别是Dept表和Emp表,所以配置文件需要改动. 1.实体类 Dept类 public c ...

  8. Maven使用deploy上传jar包到远程库 以Oracle驱动为例

    一.首先要得到Oracle JDBC Driver 1.通过Oracle官方网站下载相应版本:http://www.oracle.com/technetwork/database/features/j ...

  9. 一个最简单的JStorm例子

    最简单的JStorm例子分为以下几个步骤: 1.生成Topology Map conf = new HashMp(); //topology所有自定义的配置均放入这个Map TopologyBuild ...

  10. Kotlin——高级篇(四):集合(Array、List、Set、Map)基础

    在实际的项目开发中,集合的运用可以说是多不胜数.不过Kotlin中的集合运用和Java中还是有很大的差别,他们两者之间,除了集合的类型相同以外,还包含集合的初始化的不同,以及Kotlin对于集合封装特 ...