关于get和post请求

get请求和post请求的区别:

  • 安全性:get请求的信息在请求头中保存  在网页的地址栏中可以看见    post请求的信息是封装在请求体内 在发送的过程中对                   用户不可见
  • 效率问题:get请求的传递速度是比post请求快的 
  • 传输数据量:get请求的数据在URL中存储  传输的数据量有限  post请求的信息在请求体中保存 数据量不做限制
  • 传输数据类型:get请求只能传输ASCII字符  post请求可以传输多种数据类型(json类型)
  • 缓存问题:get请求可以会将数据缓存起来  post请求不会缓存数据
  • 生成方式:get请求:(1)网页中的超链接(2)在表单中的method属性为get时 (3)表单中的method属性为空时(4)直                   接在地址栏中输入URl     Post请求:当表单中的method属性为post时发送post请求
  • 用户在刷新时:get请求不会有提示  post会弹出提示框询问用户是否重新提交
  • 服务器获取数据的方式:get:服务器通过request.QueryString 来获取变量的值   post:通过request.form来获取数据

get请求比post请求快的原因:

  • get请求的数据保存在URL中传输  post请求需要包含更多的请求头  因为post请求的数据保存在请求体内
  • 数据的传输机制   数据在传输过程中get和post请求都是才有TCP协议   在数据到传输过程中get请求在三次握手后直接将数据将数据发送   但是post在tcp三次握手结束后是现将请求头发送过去 确认无误后再讲请求体发送过去
  • get请求会将数据缓存起来  post不会
  • post请求无法管道化传输数据

对get请求的传输数据量的误解:

  • http协议是对get请求和post请求的长度没有限制的
  • 限制是针对URL而不是的数据量的限制
  • 对URL的限制是由浏览器和Web服务器来决定的  不同的浏览器和服务器对URL的限制是不同的

get请求和post请求的使用场景

通过以上分析可以对post请求和get请求做出判断:get请求的特点 速度快  安全性差  适合做条件筛选查询 对访问时间的要求较高但是对安全性要求低的操作(如淘宝京东的商品搜索 和 百度的信息筛选)post的请求的特点:速度慢 安全性高(数据隐私性 和数据传输安全性) 适合私密性高  要求安全性高的操作  如(各大社交网站的登录)

servlet中的doget和dopost请求的使用区别

一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全。而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方式数据的传输载体是URL(提交方式能form,也能任意的URL链接),而POST是HTTP头键值对(只能以form方式提交)。通常我们使用的都是doPost方法,你只要在servlet中让这两个方法互相调用就行了,例如在doGet方法中这样写
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doPost(request,response);
}

再把业务逻辑直接写在doPost方法中。servlet碰到doGet方法调用直接就会去调用doPost因为他们的参数都一样。而且doGet方法处理中文问题很困难,要写过滤器之类的。    

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值