美文网首页
HTTP中Get与Post的区别

HTTP中Get与Post的区别

作者: 卖糖果的小傻嘟 | 来源:发表于2017-12-11 13:26 被阅读15次

前言:进入正文之前我们先了解下基本概念,什么是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,GET把请求的数据放在URL上,即HTTP协议头上,其格式为:
分割URL和传输数据,参数之间以&相连。
2,数据如果是英文字母/数字,原样发送。
3,如果是空格,转化为+
4,如果是中文/其他字符,则直接把字符串用 BASE64 加密, 及“%”加上“字符串的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中Get与Post的区别

      本文链接:https://www.haomeiwen.com/subject/zxsiixtx.html