读书人

Http协议Get步骤传参探究

发布时间: 2012-10-07 17:28:51 作者: rapoo

Http协议Get方法传参探究

用Get方式传中文参数存在很多问题!一不小心就会造成服务器收到的是乱码!所以一般情况下,都是尽量使用Post方法实现中文参数的传参。但是有的时候会出现意料之外的情况不得不用Get方法。解决方法有很多:

  1. 使用Javascript(encodeURI/encodeURIComponent函数)对URI或参数进行UTF-8编码,然后在服务器端解码
  2. 不使用Get头部存放参数,而是用实体部分存放参数(对于Java servlet来说可以,其他情况不知道。因为一般情况Get方法的Http通讯只有头部没有实体。所以此方法有局限性,Javascript实现不了)
  3. 使用Post(与之前说的一样,有特殊情况用不了Post,如用js直接打开一个url并下载其内容)

接下来详细解释下其中原委!

为什么中文会乱码?

这要从Http协议开始说起。Http通讯协议分为头部、实体两个部分。实体部分是可选的,如Get方法就不一定需要。当返回Get的请求时,实体部分的编码是根据头部中的content的值决定的。例如:Content-Type:text/html; charset=UTF-8这就设定了实体的编码为utf-8格式。

读书人网 >Web前端

热点推荐