• 为什么要urlencode?


    测试中很多时候会遇到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场景做的总结,俗话说,细节决定成败,测试中有许多诸如此类的技术细节需要我们关注,欢迎大家一起来补充奥~

    哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(^▽^)PS:有问题可以联系我们哦v ceshiren001

    复制“下方链接”,提升测试核心竞争力!
    更多技术文章分享和免费资料领取

  • 相关阅读:
    阿里巴巴 CTO 程立:开源是基础软件的源头!
    交流转直流LED驱动芯片 MT7930 SOP8
    【TypeScript】class面向对象&类型兼容&交叉类型
    Springboot配置Swagger2
    1.15 自实现GetProcAddress
    创建性-构造者设计模式
    第十四届蓝桥杯省赛真题 Java C 组【原卷】
    Spring中bean的生命周期
    【编程不良人】SpringSecurity实战学习笔记03---密码加密
    WebSocket(简单体验版)
  • 原文地址:https://blog.csdn.net/Tester_muller/article/details/126295640