Java知识要点之Get请求和Post请求

前言

     之前一次面试时面试官问到了Get请求和Post请求的区别,对于web基础来说这个还是比较重要的,所以我打算整理一下分享给大家,以下是我个人的一些总结,如果大神有更好的理解,欢迎补充。

从三个方面来总结

  1. Get请求和Post请求的区别
  2. 优缺点
  3. 何时用Get请求,何时用Post请求

正文

1、Get请求和Post请求的区别

我们主要从五个角度去分析两者的区别:

1、请求的形式

  • GET请求:把请求的数据放在URL上,用?分割URL和传输的数据,多个参数的话用&符号连接。

    举个例子,“ http://www.laziji.com?id=11&name=laziji ”在这个地址里面,?后面的时请求的参数,这里有两个参数id和name,值分别为“11”和“laziji”。总结:1.参数就是传给后台取值的,“?”是解析的开始点,“&”是将多个参数进行连接的。2.URL的结构:“协议://域名或IP地址:端口号/目录/文件名.文件名后缀?参数1=值1&参数2=值2”

  • POST请求:把请求的数据放在HTTP请求包的包体中(requrest body)。

    POST请求包含两个部分:请求头(header)和请求体(body)

2、传输数据的大小

   GET请求:虽然在HTTP规范中没有对URL的长度和传输数据的大小做限制,但是实际情况下,浏览器一般会限制url的长度不超过2k个字节,提交的数据最大是2k。

   POST请求:理论上也是不限制的,但是实际上服务器会对post提交数据的大小做限制。

3、安全性

    GET请求:在传输数据时会将数据保留在浏览器的历史记录中,而且传输的数据参数会显示在url中,所有人都可以查看,安全行低。

    POST请求:在请求时数据是存放在请求包中的,不显示在url中,并且数据不会保留在浏览器的历史记录中。

4、编码方式

    GET请求只能ASCII编码;POST请求支持多种编码方式。

5、对服务器的操作

    GET请求:只是从服务器获取数据,不进行修改。

    POST请求:向服务器提交数据,可能更新数据,也就更改了服务器的数据。

2、优缺点

  • get请求比post请求快。

    get产生一个TCP数据包,post产生两个TCP数据包;

GET请求:浏览器将header和data一起发送,服务器响应200(返回数据)。POST请求:浏览器先将header发送,服务器响应100 continue,浏览器再将data发送,服务器响应200(返回数据)。

  • get会将数据保留在浏览器的历史记录中,post不会。
  • post不能进行管道化传输。

3、何时用Get请求,何时用Post请求

适合使用GET请求的情况:

  • 用来查找资源,HTML表单数据只是用来帮助搜索。
  • 请求结果无持续性的副作用。
  • 收集的数据及HTML表单内输入的字段名称不超过1024个字符

适合使用POST请求的情况:

  • 请求结果有持续性的副作用。如修改数据、添加数据。
  • 当使用get方法URL过长时改用post方法。
  • 要传输的数据不是采用7位的ASCII编码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值