结合其他博客的资料做一个笔记。
HTTP 定义了四种方式与服务器进行交互。
1. GET (查)
2. POST (改)
3. PUT (增)
4. DELETE (删)
分别对应增、删、改、查四个操作。其中GET和POST应用最为广泛。 GET主要用于获取/查询资源,POST用于更新/修改资源。
原理上:
(1)根据http规范,GET是安全和幂等的
安全:因为get只是单纯的获取资源信息,只会产讯不会去修改数据,不会改变资源的状态,所以是安全的。
幂等:同一URL的多个请求应该返回同样的结果。
(2)根据http规范, post可能会修改服务器资源的状态,主要用于修改/更新资源信息。
表象上:
(1)GET请求数据会携带在URL后面,POST将请求数据包装在http的包体中去
(2)GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据(GET提交的数据量限制主要是URL长度的限制,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制)
(3)POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击