博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
url编码
阅读量:6006 次
发布时间:2019-06-20

本文共 834 字,大约阅读时间需要 2 分钟。

为什么要经过url编码,首先先要知道url编码是怎样的

url编码是一种浏览器用get的方法打包表单输入的格式,也就是说:

他们会获取<form>里面的<input>的name和value,然后把他们编码,作为url的一部分,发送给服务器

name和value用=分开,每对name用&隔开,所以服务端的表单输入格式的url是这样的:http://127.0.0.1/1.php?name=123&age=20,但是在传输的时候,并不是完完整整的这样传英文,是把整个url用ASCII的十六进制编码,再发送到服务端,遇到ASCII以外的怎么办?URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符。举例来说,如果是胡字,那就把它用gb2312编码过后,取它的十六进制,前面再加上%,这就是它的url编码结果

同样,遇到特殊字符也是如此,什么才属于特殊字符,这就是为什么要url编码了,由上面知道,url的格式是这样的name1=value1&name2=value2,用“&”分割出每一个参数,然后再用“=”来分割出参数值,这一串字符是经过ascii编码的,编码后是这样的:

  6E616D6531 3D 76616C756531 26 6E616D6532 3D 76616C756532。

   6E616D6531:name1
   3D:=
   76616C756531:value1
   26:&
   6E616D6532:name2
   3D:=
   76616C756532:value2

服务端那边,是一个一个字节遍历该字节流的,遇到26,也就是&,它就会结合前面的3D,就知道是一对参数了,但是如果value里面的值含有&怎么办,那就变成了name=va&lue,那么name的值就是va了,所以为了区分这种,也通常会在特殊字符的每个字节前加上%,和中文一样

转载于:https://www.cnblogs.com/thouger/p/5573736.html

你可能感兴趣的文章
jquery 获取地址栏参数
查看>>
CXF
查看>>
Java堆空间占满的gc日志实例
查看>>
CCNA考试 640-802 老版本考试报名截止日期是9月6日,要考试的抓紧去VUE报名
查看>>
Openstack: python API “how to download image from glance using the python api”
查看>>
python解析ini、conf、cfg文件
查看>>
Web应用的组件化开发
查看>>
ODPS通过SQL删除数据的方法
查看>>
9.26PMP每日一题
查看>>
springboot-dubbo 实例
查看>>
SQL语句如何修改字段名
查看>>
js uuid
查看>>
Redis高并发6-高并发之读写分离前言
查看>>
assets文件夹资源的访问
查看>>
Python学习笔记13----StringIO和BytesIO
查看>>
cs页面代码格式化
查看>>
IDG2018云计算报告: 企业如何采用云计算
查看>>
IT人不要一直做技术
查看>>
Rxjava2 源码解析 (四)
查看>>
容器深入研究
查看>>