POST与GET请求的区别

(1)问题分析

考官主要是针对http协议请求方式的考核,比如:http协议其他的请求方式!GET方法和POST方法本质上的区别等。

(2)核心答案解析

GET一般用于获取和查询资源信息,指定的资源经服务器端解析后返回响应内容,必要时,可以将查询字符串参数追加到URL末尾,以便将信息发送给服务器。POST一般用于更新资源信息,通常会用来传输实体的本体,用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法,虽然GET方法和POST方法很相似,但是POST的主要目的并不是获取响应的主体内容。

(3)问题扩展

http协议其他的请求方式?

● HEAD:获得报文首部,GET方法有实体,HEAD方法无实体。

● PUT:传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存在请求URI指定的位置,存在安全问题,故一般不用。

● DELETE:删除文件或资源,与PUT方法相反,按URI删除指定资源

● OPTIONS:询问支持的方法,客户端询问服务器可以提交哪些请求方法

● TRACE:追踪路径,让Web服务器端将之前的请求通信还给客户端的方法

● CONNECT:要求用隧道协议连接代理,实现用隧道协议进行TCP通信。

GET方法和POST方法本质上的区别?

1)GET方法用于信息获取,它是安全的(安全:指非修改信息,如数据库方面的信息),而POST方法是用于修改服务器上资源的请求;

2)GET请求的数据会附在URL之后,而POST方法提交的数据则放置在HTTP报文实体的主体里,所以POST方法的安全性比GET方法要高;

3)GET方法传输的数据量一般限制在2KB,而Chrome,FireFox浏览器理论上对于URL是没有限制的,它真正的限制取决于操作系统本身;POST方法对于数据大小是无限制的,真正影响到数据大小的是服务器处理程序的能力。

(4)结合项目使用

在项目使用RESTful架构风格进行开发,GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源,这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作。

点击此处
隐藏目录