POST对URL中末尾斜杠的差异

在调试一个接口,php的,文件名是index.php,放在目录/checkmail/下。

访问时的url写的是/checkmail,调用时用的是JQuery的post方法。

开始发现,被调用时检查传入的参数没有传过来。

跟踪了传过来的所有参数,发现$_SERVER[‘REQUEST_METHOD‘]得到是GET。

明明是POST调用的,为什么得到的是GET呢?

先百度了一下,没找到答案。

于是各种尝试,最后在调用的url中,把反斜杠/加上,发现参数得到了。

也就是说,/checkmail 和 /checkmail/,是不一样的。

继续百度,发现加不加斜杠的讨论,在SEO中更多。

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

简单来说就是,当浏览器解析 /checkmail 这样的url时,服务器会执行301转向到/checkmail/,两个链接都有效,但是第二种更快。当然这个转向的时间一般是感觉不到的,几乎可以忽略。对于搜索引擎,这两个地址是有可能同时收录的。

也就是说,以/checkmail/访问时,因为没有checkmail这个文件,所以被转向到/checkmail/目录了,而/checkmail/的首页,也就是index.php被调用。

因为被转向了,所以,POST过来的数据,可能因为服务器配置的原因,没有以POST的方式转向到/checkmail/。

这应该是问题所在了,至于是不是服务器配置还是怎么配,没有再继续看。

比较明确的是,POST调用/checkmail/和/checkmail,如果有差异,还是统一成唯一的URL比较好。

时间: 2024-10-29 19:07:11

POST对URL中末尾斜杠的差异的相关文章

JSP编程,url中加斜杠和不加斜杠的区别

JSP编程,url中加斜杠和不加斜杠的区别(sendredirect,requestdispatcher,servlet,filter) 转自:http://blog.csdn.net/tanyit/article/details/7319372 url中加斜杠”/”和不加斜杠的区别: 设webapp为web程序包名 通常来说,不加斜杠的形式(如”example.jsp”)请求的是相对于当前页面路径的资源 http://localhost:8080/webapp/examole: 加斜杠的形式(

C#中反斜杠/n与/r的区别

最近在公司实习的过程中,遇到了字符串换行的问题,百度了一下,发现字符串换行的问题还挺多,总结一下最基本的点,以防忘记. \n—>换行符(New Line),作用为换行符后面的字符串显示到“下一行开头的位置” Console.Write("功能如下:[微官网]随时随地访问方正中期,掌握最新期货信息.\n[微开户]下载方正小方开户客户端,移动开户更加方便快捷.\n[菜单]1.期货资讯 2.股票资讯 3.意见反馈"); 显示如下: \n后面的字符串会另起新行显示. \r—>回车符

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以上版本才开始支持.

python 正则表达式中反斜杠(\)的麻烦和陷阱

这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题.(1).python自身处理字符串时,反斜杠是用于转义字符 (2).正则表达式也使用反斜杠来转义字符     要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为在正则表达式中,"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定是不行的,试试四

python 正则表达式中反斜杠(\)的麻烦和陷阱 (转)

这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题.(1).python自身处理字符串时,反斜杠是用于转义字符 (2).正则表达式也使用反斜杠来转义字符     要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为在正则表达式中,"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定是不行的,试试四

URL结尾反斜杠对SEO的影响(转)

开始纠结网站URL加不加反斜杠对SEO的影响,还有些人把这个反斜杠说的神乎其神,我擦,本人手贱百度了一下,果然“博大精深”,敬请参考! 从百度站长平台的外链分析里,我们可以看到,一些目录结构的URL,搜索引擎是识别其带反斜杠和不带反斜杠的.以SEOWHY为例子,它分别统计了 www.seowhy.com/bbs 和 www.seowhy.com/bbs/ 的外链数.这说明,带不带反斜杠,在搜索引擎看到是不同的URL.至于你的情况,要不要统一加上反斜杠,我觉得你可以分析下在百度站长平台里的外链,看

nginx url自动加斜杠问题

一.首先对比说明Nginx以下两个现象: 1. 访问的uri最后带斜杠 http://localhost/product/    >>>>  查找 product下的index页面,存在就返回:不存在且未开启自动索引目录选项(指令是:autoindex on),则报403错误 2. 访问的uri最后不带斜杠 http://localhost/product     >>>>  查找product文件,存在就返回:若存在product的文件夹,会产生301跳转

python IDLE中反斜杠显示为人民币符号¥

Python自带的IDE是IDLE,最简单不过,但是全国二级要求使用该IDE. 该IDE相对于其他更高级的IDE,例如PyCharm和Visual Studio Code等,功能明确弱得很.但是,就应对二级Python考试来说已经绰绰有余. 问题 在其内置的命令行环境下现遇到一个小问题是:反斜杠显示为人民币符号¥,无论当前输入法是中文还是英文输入法.参考下图: 分析与解决办法 经过试验发现,可以通过菜单命令"Options"-"Configure IDLE",把当前

怎么过滤JSON数组中反斜杠“\”,反序列化

原因就是json数组被序列化了两次,反序列化回来就可以. JSON数组 jsonarray 是 [object,object] 的形式; 序列化即 : JSON.stringify(jsonarry)就变成了[{"id","2"},{"name","tt"}]这种形式. 反序列化即 : JSON.parse(jsonarry)又变成了 [object,object],但是它传到后端后反斜杠就没了,这就是JSON数组反序列化的神