为何url地址不是直接发送到服务器,而是被编码后再发送

本文阐述了URL地址进行编码的原因及重要性,包括遵循RFC1738协议规范,确保特殊字符如'#'等的正确传输,避免控制字符干扰,以及解决空格引起的问题等。

  首先,先说一下,关于为何必须将url地址,去编码后,再发送,是因为相关的协议规范:RFC 1738,定义了url地址中不能包含除了0-9的数字,大小写字母(a-zA-Z),短横线’-‘

之外的字母。换句话说,如果其中包括了很多特殊符合,比如$-_.+!*'(),那么都要尽量编码。

而关于为何要这么定义,经过一番简单调查,基本的理由是:

  1.本身html代码中,很多特殊字符,就有其本身的特殊含义,比如’#’,就适用于定位(html anchor),所以,这类字符,本身有特殊含义的字符,不能直接用于发送,所以需要编码;

  2.如果其中本身就包含一些,非打印的控制字符,那么无法正常打印显示,所以必须被编码才能传输。(控制字符

  3.还有些保留字符(&,=,:),不安全字符(<,>,#),所以需要对url地址编码。

  4.另外,还有一些,最容易想到的,比如空格,如果出现在一个url地址中间,我们就很难判断,空格前后的内容,是否是属于整个的单一的url的,所以,对于空格这样的特殊字符,肯定是需要编码的。

 

转载于:https://www.cnblogs.com/happy-coder/p/6125958.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值