url最后的“/”是什么作用
多了个尾巴
有时候,当你尝试在地址栏输入https://123/demo
的时候,会发现浏览器会重定向到https://123/demo/
这个地址,也就是多了个/
,发生了重定向。有图为证:
上面这个图是在地址栏输入imgss.github.io/demo
的截图,根据这张图,可以分析,从开始请求到页面显示的过程是这样的:
当在浏览器中输入上面的地址时,服务器首先返回一个状态码为301的响应,同时响应头里有一个location,值是
Location:http://imgss.github.io/demo/
告诉浏览器去请求这个地址,如下图:于是浏览器不甘心,再次向浏览器发起请求
http://imgss.github.io/demo/,注意这次是
http,服务器却返回状态码307,告诉浏览器去还要再跑一趟:请求
Location:https://imgss.github.io/demo/`这个地址才能拿到资源:浏览器第三次请求https这个地址,才得到数据并加载显示页面。
'/'的作用
这里不谈http=>https这一步的定向,就说说有尾巴和没尾巴的区别。
他们的区别就在于两者所表示的当前页面的路径不同。前者的当前路径是根路径,后者是demo
子路径。
举个例子:假如当前页面的html中有一个超链接,地址用相对路径href="./statictodo/index.html"表示,
如果页面的当前地址是https://imgss.github.io/demo
,
那么./
所代表的是根路径,
当点击超链接时,浏览器会请求https://imgss.github.io/statictodo/index.html
而忽略掉demo
,这就可能导致服务器返回404;
如果页面的当前地址是https://imgss.github.io/demo/
,
那么./
所代表的就是地址本身,
点击超链接时浏览器就会请求https://imgss.github.io/demo/statictodo/index.html
这个路径。
对于静态资源服务器来说,请求https://imgss.github.io/demo/
这样的路径能访问到页面,是因为服务器会自动在demo路径下尝试找index.html
之类的文件并发给浏览器,所以html的当前路径一定是demo下的,也是因为这样,浏览器才会通过重定向自动加上/
,防止相对路径解析出错,保证浏览器能正确的请求到资源。
url最后的“/”是什么作用的更多相关文章
- URL中“#” “?” &“”号的作用
URL中"#" "?" &""号的作用 阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twit ...
- URL中#(井号)的作用(转)
2010年9月,twitter改版. 一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为 http://twitter.com/username 改版后,就变 ...
- hash在URL上的用法及作用
阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http ...
- python测试开发django-4.获取url参数和name的作用
前言 如打开博客园按时间分类标签页[https://www.cnblogs.com/yoyoketang/archive/2018/10.html],里面是时间参数是动态的,如果我想获取里面的时间参数 ...
- django学习-5.获取url参数和name的作用
1.前言 假如我们要打开这两个博客园地址:[https://www.cnblogs.com/xiamen-momo/archive/2020/11.html].[https://www.cnblogs ...
- url加时间戳方法及作用
速记:URL 的末尾追加了时间.这就确保了请求不会在它第一次被发送后即缓存,而是会在此方法每次被调用后重新创建和重发:此 URL 会由于时间戳的不同而稍微有些不同.这种技巧常被用于确保到脚本的 POS ...
- ${openid_wx} el解析式放入url的“”里才起作用。
window.location.href="${ctx }/wx/reservation/content?shopid="+shopid+"&&openi ...
- maven pom文件的 name 标签 和 url标签到底是什么作用
- MVC的URL路由规则
MVC的URL路由规则 Routing的作用:它首先是获取到View传过来的请求,并解析Url请求中Controller和Action以及数据,其次他将识别出来的数据传递给Controller的Act ...
随机推荐
- 常见笔记本进入bios方法
联想 y510p ->F2 ThinkPad E431 -> Fn + F1
- 开源HIS之C/S选型
客户端/服务的形式是我中爱的,我认可只有这样软件跑起来不会失控.因为你不知道每一个程序员是否足够清醒.但一开始我说过要从基本的应急的门诊收费开始,所以我并不打算一启动就写一个服务,并为之选型:TCP/ ...
- 1114 Family Property
This time, you are supposed to help us collect the data for family-owned property. Given each person ...
- 【转】require.js学习笔记(一)
一.立即执行函数 立即执行函数可以有效避免临时变量污染全局空间.可以在页面初始化时,在立即执行函数内实现一次执行变量的定义及使用. for (var i = 0; i < elems.lengt ...
- Http TCP/IP协议和socket之间的区别和联系
总结,TCP/IP是传输层协议,主要解决数据如何在网路中传输,socket是TCP/IP协议的具体实现,是对TCP/IP协议的封装和应用,属于程序员层面,HTTP是应用层协议,应用层协议很多,类似的像 ...
- unigui在阿里云服务器上部署
unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...
- collaborative filtering协同过滤
每次我想看电影的时候,都会去问我的朋友,小健.一般他推荐的电影,我都比较喜欢.显然不是所有人都有小健这样的能力.因为我碰巧和小健有类似的品味. 这个生活中的经验,实际上有着广泛的用途. 当系统需要为某 ...
- HMAILSERVER集成WEB邮件系统(ROUNDCUBE WEBMAIL)
hMailServer集成web邮件系统(Roundcube Webmail) 文/玄魂 前言 在上篇文章(使用hMailServer搭建邮件服务器)中,介绍了hMailServer的安装和简单配置. ...
- 【转】基于Token的WEB后台认证机制
原谅地址:http://www.cnblogs.com/xiekeli/p/5607107.html 几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每 ...
- 程序猿的日常——Mybatis现学现卖
最近有一个小项目需求,需要用spring mvc + mybatis实现一个复杂的配置系统.其中遇到了很多不太常见的问题,在这里特意记录下: 主要涉及的内容有 事务 多表删除 插入并返回主键 1 sp ...