相信大家在面试的时候经常会被问到:GET与POST有什么区别吧?你是怎么回答的呢?POST比GEt安全?GET有URL的长度限制而POST没有或者很大?GET通过URL或者Cookie传参数,POST将数据放到Body中?等等... 但是这些是它们之间的区别吗?或者说这些说法对吗?想知道吗?那就跟我来吧!Follow Me!

安全问题:

有人觉得GET方式会把数据写到URL中,这样数据就暴露了,就不安全了;而POST则不会有这样的情况,所以就安全了。如果这么想就错了,GET和POST都是采用明文传输的,随便用个HTTP截取工具就能轻松获得传输的信息。所以GET和POST在这个安全层面没什么明显区别。

如果非要说他们两个有安全方面的区别,也不是没有,不过这里说的安全不是指的上面的那种安全。语义上GET是获取指定URL上的资源,是读操作,重要的一点是不论对某个资源GET多少次,它的状态是不会改变的,在这个意义上,我们说GET是安全的(不是被密码学或者数据保护意义上的安全)。因为GET是安全的,所以GET返回的内容可以被浏览器,Cache服务器缓存起来(其中还有很多细节,但不影响这里的讨论)。

而POST的语意是对指定资源“追加/添加”数据,所以是不安全的,每次提交的POST,参与的代码都会认为这个操作会修改操作对象资源的状态,于是,浏览器当你刷新的时候会跳出确认框,缓存服务器不会缓存POST请求返回内容。

长度限制:

HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。

理论上讲,POST也是没有大小限制的。HTTP协议规范也没有进行大小限制。起限制作用的是服务器的处理程序的处理能力。

参数传递:

HTTP并没有要求,POST数据就要放在BODY中。也没有要求如果是GET,数据(参数)就一定要放在URL中而不能放在BODY中。也就是说POST也可以放到URL中,GET也可以放到BODY中。

关于GET和POST的区别,网上很多答案都是不够准确的。在网上查找资料的时候一定要多看一些,对比对比,这样可以帮助你鉴别是对是错。不至于一叶障目被错误的信息所误导。要保持三分的怀疑,所谓尽信书不如无书。希望这篇文章对大家以后面试的时候提供一点点的帮助。欢迎留言交流。

菜鸟学Java(十一)——GET与POST相关推荐

  1. 菜鸟学Java(六)——简单验证码生成(Java版)

    转载自  菜鸟学Java(六)--简单验证码生成(Java版) 验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等) ...

  2. 菜鸟学Java(二十一)——如何更好的进行单元测试——JUnit

    测试在软件生命周期中的重要性,不用我多说想必大家也都非常清楚.软件测试有很多分类,从测试的方法上可分为:黑盒测试.白盒测试.静态测试.动态测试等:从软件开发的过程分为:单元测试.集成测试.确认测试.验 ...

  3. 菜鸟学Java笔记1

    这两天通过视频和书籍在自学java.每天学一点,每天做一点笔记,希望有所收获! 1,Java运行中的内存分配 理解内存的分配,也就理解了一切.对于java而言,内存分为四块:代码区(code)/数据区 ...

  4. java做一个mud_菜鸟学Java(十二)——搭建一个完整的Java开发环境

    作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...

  5. 菜鸟学java ——(一)面向对象程序设计(几个重要的概念)

    几个概念的解释: (1)面向对象(OOP:程序由对象组成,每个对象中包括功能部分和实现部分.面向对象关心能否满足用户需求,而非对象的具体实现.在OOP思想中数据被放在第一位,而操作数据的算法被放在第二 ...

  6. java多线程绘图_菜鸟学Java之 Java2D 多线程绘图

    1 绘制动态连线. 我需要在画布的两点间绘制一条可动态展示(连线可以一段段的按时间增长)的连线,于是我打算使用多线程进行绘制,于是我建立了一个自己的线程类: class MyThread implem ...

  7. 菜鸟学java要多久_菜鸟学java,根本停不下来!

    位运算符 &: 两个2进制的操作数,同一位数的两个数如果有一个为0结果就为0,两个都为1才是1. | : 两个2进制的操作数,同一位数的两个数如果有一个为1,两个都为0才是0. ^ : 两个2 ...

  8. 菜鸟学JAVA之——常用类(StringBuffer、StringBuilder、Comparable、Comparator等)

    文章目录 常用类 字符串相关的类 一.String类及常用方法 二.StringBuffer.StringBuilder JDK 8 之前的日期时间API 一.System静态方法 二.Date类 三 ...

  9. 菜鸟学Java——简单验证码生成(Java版)

    验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等),然后将这些生成的字符绘制成一张图片,再在图片上加上一些干扰元素 ...

最新文章

  1. html转义符 xsl转义符
  2. c+和python先学哪个比较好-C和Python我该先学什么?
  3. 大数据算法:对5亿数据进行排序
  4. php 数组格式的字符串转为数组_php将字符串转换为数组实例讲解
  5. python怎么写脚本执行adb命令_android – 如何使用Python执行adb命令?
  6. web.xml中的ContextLoaderListener和DispatcherServlet区别
  7. Nginx 0.8.5版本access.log日志分析shell命令
  8. win10开发java_win10系统搭建Java开发环境的操作方法
  9. AI 修复 100 年前晚清影像喜提热搜,有穿越内味儿了!
  10. 依赖注入(di)模式_Java依赖注入– DI设计模式示例教程
  11. 处理 Exception 的几种实践,很优雅,已被很多团队采纳!
  12. 详解 HTTPS 移动端对称加密套件优
  13. Windows装机必备软件大全,全部支持Vista系统
  14. Eclipse —— 官网下载地址
  15. Java从入门到放弃 --没放弃就写java程序员职业规划
  16. java 医疗监护_医疗监护仪解决方案
  17. apt 安装软件出现“无法定位软件包”的问题
  18. 拼多多校招内推编程题1 最大乘积
  19. 二维码教程之如何制作表白二维码
  20. mysql 1126报错 User 'root' has exceeded the 'max_questions' resource (current value: 10000)

热门文章

  1. SSM商城项目(八)
  2. CS229 6.6 Neurons Networks PCA主成分分析
  3. P1291 [SHOI2002]百事世界杯之旅
  4. 【清北前紧急补课3】水题集锦
  5. Gym - 101334F 单调栈
  6. matlab和C/C++混合编程--Mex
  7. 关于SQL 数据库表中的聚集索引和非聚集索引等
  8. ExoPlayer 开发者指导
  9. C语言中的static 详细分析
  10. WebView显示的网页在大分辨率屏下被放大--解决方案