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")只能设置请求体的编码集
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值