post get区别以及解决get乱码问题

两种 HTTP 请求方法:GET 和 POST

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

  • GET - 从指定的资源请求数据。
  • POST - 向指定的资源提交要被处理的数据

GET 方法

请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:


有关 GET 请求的其他一些注释:

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据
  • get把请求的数据放在url上,即HTTP协议头上,其格式为: 
    以?分割URL和传输数据,参数之间以&相连。 
    数据如果是英文字母/数字,原样发送, 
    如果是空格,转换为+, 
    如果是中文/其他字符,则直接把字符串用BASE64加密,及“%”加上“字符串的16进制ASCII码”。 
  • get提交的数据最大是2k所以get效率高


POST 方法

请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:

有关 POST 请求的其他一些注释:

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 不能被收藏为书签
  • POST 请求对数据长度没有要求
  • post把数据放在HTTP的包体内(requrest body)

总结

  • get参数通过url传递,post放在request body中。

  • get请求在url中传递的参数是有长度限制的,而post没有。

  • get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。

    • get请求只能进行url编码,而post支持多种编码方式

    • get请求会浏览器主动cache,而post支持多种编码方式。

    • get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。


  1.从安全的角度来说,post要比get相对安全,但不是绝对安全   get会将请求参数值直接写在资源路径后面,而post则是将请求参数   放在请求数据包的实体内容里面  2.从提交数据的大小来看,post提交的数据要大于get,因为get提交的数据类型只能是字符串类型,不能是图片,视屏等等大容量数据,它的提交数据大小不能超过     4kb,但post没有此限制,可以提交大量的数据。  3.从处理数据的效率来说。get处理请求的效率要高于post请求



解决浏览器绘画服务器出现的中文乱码问题:  

为什么会出现乱码?因为编码和解码的字符集编码不一致

 post:  request.setCharacterEncoding("utf-8"); 

             response.setContentType("text/html;charset=utf-8");

 get:     name=new String(name.getBytes("iso8859-1"),"utf-8");


猜你喜欢

转载自blog.csdn.net/amor_fatii/article/details/80638712