HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL是资源描述符,一个URL地址用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对该资源的查,改,增,删4个操作,但对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
GET和POST请求的区别:
1、数据传递方式
GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连;
POST把提交的数据则放置在是HTTP包的包体中。
因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。
2、数据大小
在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制,最多只能是1024字节,因此,在使用GET请求时,传输数据会受到URL长度的限制。
对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。
3、安全性
POST的安全性比GET的高。比如,在进行登录操作时,通过GET请求,用户名和密码都会暴露在URL上,而登录页面有可能被浏览器缓存或其他人查看浏览器的历史记录而查看到,因此很容易暴露用户名和密码。