你所不知道的 URL 0.说明 第一幕
产品:大叔有用户反映账户不能绑定公众号。
大叔:啊咧咧?怎么可能,我看看?
大叔:恩?这也没问题啊,魏虾米。
大叔:还是没问题啊,挖叉类。
大叔:T T,话说产品姐姐是不是Java提供接口的时候,没有对URL进行encodeURI。
产品:啊咧咧?我问问看?
大叔:小二你给我过来!
小二:啊咧咧?怎么了大叔?
大叔:知道在URL中的+有时候会变成什么吗?
小二:啊咧咧?不是+吗?
大叔:知道在URL中的空格有时候会变成什么吗?
小二:啊咧咧?不是空格吗?
大叔:还不赶快自己去查查看!别也成了挖坑型选手。
维基百科中关于百分号编码中有段说明。
当HTML表单中的数据被提交时,表单的域名与值被编码并通过HTTP的GET或者POST方法甚至更古远的email把请求发送给服务器。这里的编码方法采用了一个非常早期的通用的URI百分号编码方法,并且有很多小的修改如新行规范化以及把空格符的编码"%20"替换为"+" . 按这套方法编码的数据的MIME类型是application/x-www-form-urlencoded, 当前仍用于(虽然非常过时了)HTML与XForms规范中. 此外,CGI规范包括了web服务器如何解码这类数据、利用这类数据的内容。1.GET - 简单的在浏览器中测试
在浏览器里输入URLhttps://www.baidu.com/s?wd=小二+大叔,这时候百度搜索框中出现的是小二 大叔,搜索框中+神奇的变成了空格。
在浏览器里输入URLhttps://www.baidu.com/s?wd=小二 大叔,这时候百度搜索框中出现的是小二 大叔,URL中空格的变成%20。
在浏览器里输入URLhttps://www.baidu.com/s?wd=小二%2B大叔,这时候百度搜索框中出现的是小二+大叔,搜索框中%2B的变成+。
2.POST - 简单的PHP测试POSTMAN 发送请求
POST /1.php HTTP/1.1 Host: 127.0.0.1 Cache-Control: no-cache Postman-Token: fed5740c-aceb-0f57-edc9-cf42a275b35a Content-Type: application/x-www-form-urlencoded word=%2B%2B%2B+%2B%2B%2B输出
+++ +++2.孕妇 - URL中的URL 0.说明在社交登录或微信公众号等时候,我们常常会在URL中使用到回调地址来处理验证成功后的页面跳转。
例如:
回调地址为:lionis.taroball.com?username=lionis&sex=man
这时候在URL中附加回调信息时
地址变为www.xxx.com?redirect=lionis.taroball.com?username=lionis&sex=man。
这个时候尴尬的问题出现了,sex=man在这个时候变成了www.xxx.com的参数了,而不是lionis.taroball.com的参数了。
这个时候就需要对回调信息进行encodeURL。
2.代码3.有 encodeURLURL
localhost/test.php?redirect=lionis.taroball.com%3Fusername%3Dlionis%26sex%3Dman输出
lionis.taroball.com?username=lionis&sex=man4.无 encodeURLURL
localhost/test.php?redirect=lionis.taroball.com?username=lionis&sex=man输出
lionis.taroball.com?username=lionis3.结论 GET如果想在URL中使用+需要对URL进行encodeURL,把+编码成%2B。
在服务端渲染页面的时候,对URL需要encodeURL。
在客户端发送请求的时候,javascript需要使用正则来进行替换。
在服务端接受参数的时候,对关键字使用decodeURL。
对于URL中的URL也需要进行encodeURL
POSTPOST的Content-Type默认是application/x-www-form-urlencoded,顾名思义对URL进行了encodeURL。
想要了解更多有关POST可以看我之前写的你所不知道的POST。
一起成长在困惑的城市里总少不了并肩同行的 伙伴 让我们一起成长。如果您想让更多人看到文章可以点个 点赞。
如果您想激励小二可以到 Github 给个 小星星。
如果您想与小二更多交流添加微信 m353839115。
本文原稿来自 PushMeTop
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/21805.html
摘要:给百度百科给的环比定义为环比,统计学术语,是表示连续个统计周期比如连续两月内的量的变化比。二你所不知道的同比环比两种方式的核心区别判断两个数据到底是同比还是环比。 ...
摘要:请注意是创建一个全局对象的属性,而不是声明了一个全局变量。由于变量声明自带不可删除属性,比较跟,前者是变量声明,带不可删除属性,因此无法被删除后者为全局变量的一个属性,因此可以从全局变量中删除。下期预告前端面试你所不知道系列伪类和伪元素 写在开始 又到了一年的伊始,很多人可能因为各种原因想换一份工作,而找工作难免遇到各种各样头痛的面试题,于是我打算写一个系列,关于面试中最常见或者前端一...
0.说明 大叔 :二翔 我们要做一个微信公众号哦。我来教你大概的流程好不好?(开启装逼模式中 ) 二翔 :好啊,快讲快讲。(无限期待中 ) 大叔 :你知道 application/x-www-form-urlencoded是什么嘛? 二翔 :啊咧咧? 大叔 :你知道 php 怎么获得 raw? 二翔 :啊咧咧? 大叔 :用下面这种方法来实现。 echo file_get_...
阅读 1766·2023-04-26 02:14
阅读 3695·2021-11-23 09:51
阅读 1343·2021-10-13 09:39
阅读 3946·2021-09-24 10:36
阅读 2965·2021-09-22 15:55
阅读 3476·2019-08-30 12:57
阅读 1998·2019-08-29 15:30
阅读 1944·2019-08-29 13:19