【HTTP】GET和POST的区别
【HTTP】GET和POST的区别
HTTP定义了与服务器交互的不同方法,最基本的方法有四种:GET、POST、PUT、DELETE。
URL全程是资源描述符,用于描述网上的资源。以上四种方式就是对资源的查、改、增、删的操作。
【HTTP是如何规范的?】
GET:查询/获取,不会影响资源的状态
POST:更新资源
PUT:增加
DELETE:删减
【实际中是如何使用的?】
GET:查询/获取、修改资源
POST:更新资源
PUT:很少使用
DELETE:很少使用
GET和POST并不是一个取一个发,本质上只是发送机制不同
查改增删的动作都可以通过GET/POST方式完成,不需要PUT和DELETE
【实际使用与规范出现不一致的原因是什么?】
PUT和DELETE很少使用的原因是:
早期的Web MVC框架设计者们并没有意识到将URL当作抽象的资源来看待和设计,
所以导致一个比较严重的问题是传统的Web MVC框架基本上都只支持GET和POST两种HTTP方法,
而不支持PUT和DELETE方法。
【GET和POST的区别是什么?】
1. 各自所在的位置
(1)GET在URL中:
GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,
参数之间以&相连,如:
login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD
如果数据是英文字母/数字,原样发送,如果是空格,转换为
+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:
%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII
(2)POST通过form提交,提交的数据则放置在是HTTP包的包体中,不会在URL中显式呈现
2. 大小限制
GET
(1)HTTP规范中: HTTP规范中并没有规定URL的长度限制,GET的数据在URL中,因此GET的数据量直接影响URL的长度,
故规范并没有限制GET数据量的多少
(2)实际中: 限制主要是浏览器和服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,
如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
POST
(1)HTTP规范中: 没有限制POST数据的大小
(2)实际中: 限制主要是服务器处理数据的能力
3. 安全性
POST比GET的安全性高,表现在:
(1)GET数据之间显示在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,
那么别人就可以拿到你的账号和密码了
(2)使用GET提交数据可能会造成Cross-site request forgery攻击
【另外】
FORM提交数据的方式的method是GET方式
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。