Java面试题:POST请求与GET请求的区别在哪?

Posted 黑马程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试题: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方法,就可以完成对数据的所有增删查改工作。


这篇干货不错

分享给其他小伙伴吧~



-好物推荐-

以上是关于Java面试题:POST请求与GET请求的区别在哪?的主要内容,如果未能解决你的问题,请参考以下文章

java面试题整理

Java web的一些面试题

java面试题——Java Web篇

JAVA面试题

java面试题

Java面试题