java面试题---GET与POSt提交请求的区别
Posted 程序员超时空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面试题---GET与POSt提交请求的区别相关的知识,希望对你有一定的参考价值。
概要:
一、Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
二、根据HTTP规范,POST表示可能修改变服务器上的资源的请求。继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。
上面大概说了一下HTTP规范中GET和POST的一些原理性的问题。但在实际的做的时候,很多人却没有按照HTTP规范去做,导致这个问题的原因有很多,
比如说:
1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。
2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。
3.另外一个是,早期的Web MVC框架设计者们并没有有意识地将URL当作抽象的资源来看待和设计,所以导致一个比较严重的问题是传统的Web MVC框架基本上都只支 持GET和POST两种HTTP方法,而不支持PUT和DELETE方法。
* 简单解释一下MVC:MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同 一个程序可以使用不同的表现形式。
区别:
get请求:
①请求参数会显示在地址栏中(如下图,第一行中)
②请求体是空的
③请求参数显示在请求首行中(GET /name=12a HTTP/1.1)
post请求:
①请求参数会不显示在地址栏中
②请求体是请求参数
③请求参数不显示在请求首行中(POST/ HTTP/1.1)
其他区别
1 、get请求 请求参数会显示在地址栏中 不安全
post请求 地址栏只显示请求资源的url 不显示请求参数 相对安全
2 、get请求 请求参数存放在请求首行中 http对请求首行限制1kb
post请求 请求参数存放在请求体中 请求体没有大小限制
post可以发送大数据
3、 get请求的参数不能通过request.setCharacterEncoding(“gbk”)来设置编码
request.setCharacterEncoding(“gbk”)只能设置请求体的编码集
以上是关于java面试题---GET与POSt提交请求的区别的主要内容,如果未能解决你的问题,请参考以下文章