GET与POST的区别
他们两个都是HTTP请求报文的两种方式,当然除了这两种请求方式外还有其他的请求方式,下面我们来看一下他们之间的区别
一、 GET重点是从服务区上申请资源,即get请求对服务端不会造成影响。
POST重点是向服务器发送数据,通过post提交可能对服务器端有影响,比如我们平时发微博,写评论。
二、 GET传送数据是通过URL,以键值对的形式置于URL后面,并且用?隔开,若有多个键值对则用&符号链接
POST传输是通过表单将键值对封存于请求实体中
三、 GET传输的数据是有限的,因为URL对字符长度是有限制的
POST理论上可以传输很多数据,但实际上web服务器对其也做了限制,
四、 GET是不安全的,传送数据的过程是可见的,因为传送的数据在url中显示
POST是相对安全的,传送数据的过程是不可见的
五、 GET只支持ASCII码字符,向服务器传送中文字符可能会出现乱码
POST支持标准字符集。
下面再来说一下他们在编码上的区别,下面是针对于在tomcat服务器上运行,tomcat服务器默认的编码是iso-8859-1编码方式,该编码是不支持中文的,所以在实际开发中就需要进行编码的转换,下面针对get方法和post方法提交数据的解决办法:
一、 该方法对get和post都适用
首先对相应的字符进行iso-8859-1编码,在进行UTF-8解码
例如; newStr=new String(oldStr.getBytes(“iso-8859-1”),”UTF-8”)
后面的参数UTF-8是与请求端的编码方式是一致的,大体的一个过程如下:
Utf-8编码-------iso-8859-1解码------- iso-8859-1编码--------utf-8编码
二、 该方法只对post请求有效,通过tomcat获取到的请求来设置
req.setCharacterEncoding(“UTF-8”);