HTTP中Get与Post的区别

前言:进入正文之前我们先了解下基本概念,什么是HTTP? 超文本传输协议(HTTP) 的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求 - 应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。

  Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET, POST, PUT, DELETE。我们这里只讨论GET和POST请求的差别。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

1,根据HTTP规范,GET用于信息获取。

(1). 所谓的安全意味着该操作用于获取信息而非修改信息,换句话说,GET仅仅用来获取资源信息,向查询数据库一样,不会修改,增加数据,不会影响到资源的状态。

2,根据HTTP规范,POST表示可能修改变服务器上的资源的请求

  我们以简书网站为例,读者对某篇文章发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。

我们再从表面现象上来说说GET和POST的区别:

1,把请求的数据放在URL上,即HTTP协议头上,其格式为:

以分割URL和传输数据,参数之间以相连。

2,数据如果是英文字母/数字,原样发送。

3,如果是空格,转化为。

4,如果是中文/其他字符,则直接把字符串用 加密, 及“%”加上“字符串的16进制ASCII码”。

5,POST把数据放在HTTP的包体内(requrest body)。

6,GET提交的数据最大是2k,POST理论上没有限制。

7,GET在浏览器回退时是无害的,POST会再次提交请求。

8,GET产生的URL地址可以被BookMark,而POST不可以。

9,GET请求会被浏览器主动cache,而POST不会,除非手动设置。

10,GET请求参数会被完整的保留在浏览器的历史记录中,而POST中的参数不会被保留。

11,GET只接受ASCII字符的参数的数据类型,而POST没有限制。

12,GET比POST效率高,但是GET安全性非常低,POST安全性较高。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171213G0DGXU00?refer=cp_1026

相关快讯

扫码关注云+社区