写点什么

为什么要 urlencode?

  • 2023-08-14
    北京
  • 本文字数:608 字

    阅读完需:约 2 分钟

测试中很多时候会遇到 url 的请求,url 的拼接等场景,在测试这些场景,尤其是需要给 url 传参时,一定要保证输入的 url 或者 url 参数是 encode 模式,为什么要这样呢?

1.信息可读性

当字符串数据以 url 的形式传递给 web 服务器时,字符串中如果含有空格,可能会造成信息获取失败;此外还有一些特殊字符,如邮箱参数中的 @符等,需要 encode 之后以符合 url 的规范。

2.信息完整性

url 的保留字符 &是特别需要注意的,因为很多时候,url 里的某些参数是另外一个 url,如果不 encode 就会造成参数获取不完整,比如下列 url:https://www.website1.com?arg1=1&arg2=2&url_ext=www.website2.com?ext_agr1=1&ext_arg2=2,如果不进行 urlencode,其中的 ext_arg2 参数你认为是域 website1 的参数呢,还是域 website2 的参数呢,所以需要逐层做 urlencode,使用时再逐层解码,以确定参数所属的主域。

综上,一般哪些字符需要转化呢?

****

1、ASCII 的控制字符

ASCII 表上的数字 0–31 分配给了控制字符,用于控制像打印机等一些外围设备。例如,12 代表换页/新页功能,指示打印机跳到下一页的开头。这些字符是不可打印的,自然需要转化。

2、一些非 ASCII 字符

比如中文,阿拉伯字符等。

3、一些保留字符

比如最常见的连接符“&”。

4、 一些不安全的字符

比如空格,为了防止引起歧义,需要转化成“+”。

结束语:

以上就是我们对 urlencod 场景做的总结,俗话说,细节决定成败,测试中有许多诸如此类的技术细节需要我们关注,欢迎大家一起来补充奥~


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
为什么要urlencode?_霍格沃兹测试开发学社_InfoQ写作社区