菜鸟学Java(十一)——GET与POST
相信大家在面试的时候经常会被问到: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相关推荐
- 菜鸟学Java(六)——简单验证码生成(Java版)
转载自 菜鸟学Java(六)--简单验证码生成(Java版) 验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等) ...
- 菜鸟学Java(二十一)——如何更好的进行单元测试——JUnit
测试在软件生命周期中的重要性,不用我多说想必大家也都非常清楚.软件测试有很多分类,从测试的方法上可分为:黑盒测试.白盒测试.静态测试.动态测试等:从软件开发的过程分为:单元测试.集成测试.确认测试.验 ...
- 菜鸟学Java笔记1
这两天通过视频和书籍在自学java.每天学一点,每天做一点笔记,希望有所收获! 1,Java运行中的内存分配 理解内存的分配,也就理解了一切.对于java而言,内存分为四块:代码区(code)/数据区 ...
- java做一个mud_菜鸟学Java(十二)——搭建一个完整的Java开发环境
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...
- 菜鸟学java ——(一)面向对象程序设计(几个重要的概念)
几个概念的解释: (1)面向对象(OOP:程序由对象组成,每个对象中包括功能部分和实现部分.面向对象关心能否满足用户需求,而非对象的具体实现.在OOP思想中数据被放在第一位,而操作数据的算法被放在第二 ...
- java多线程绘图_菜鸟学Java之 Java2D 多线程绘图
1 绘制动态连线. 我需要在画布的两点间绘制一条可动态展示(连线可以一段段的按时间增长)的连线,于是我打算使用多线程进行绘制,于是我建立了一个自己的线程类: class MyThread implem ...
- 菜鸟学java要多久_菜鸟学java,根本停不下来!
位运算符 &: 两个2进制的操作数,同一位数的两个数如果有一个为0结果就为0,两个都为1才是1. | : 两个2进制的操作数,同一位数的两个数如果有一个为1,两个都为0才是0. ^ : 两个2 ...
- 菜鸟学JAVA之——常用类(StringBuffer、StringBuilder、Comparable、Comparator等)
文章目录 常用类 字符串相关的类 一.String类及常用方法 二.StringBuffer.StringBuilder JDK 8 之前的日期时间API 一.System静态方法 二.Date类 三 ...
- 菜鸟学Java——简单验证码生成(Java版)
验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等),然后将这些生成的字符绘制成一张图片,再在图片上加上一些干扰元素 ...
最新文章
- html转义符 xsl转义符
- c+和python先学哪个比较好-C和Python我该先学什么?
- 大数据算法:对5亿数据进行排序
- php 数组格式的字符串转为数组_php将字符串转换为数组实例讲解
- python怎么写脚本执行adb命令_android – 如何使用Python执行adb命令?
- web.xml中的ContextLoaderListener和DispatcherServlet区别
- Nginx 0.8.5版本access.log日志分析shell命令
- win10开发java_win10系统搭建Java开发环境的操作方法
- AI 修复 100 年前晚清影像喜提热搜,有穿越内味儿了!
- 依赖注入(di)模式_Java依赖注入– DI设计模式示例教程
- 处理 Exception 的几种实践,很优雅,已被很多团队采纳!
- 详解 HTTPS 移动端对称加密套件优
- Windows装机必备软件大全,全部支持Vista系统
- Eclipse —— 官网下载地址
- Java从入门到放弃 --没放弃就写java程序员职业规划
- java 医疗监护_医疗监护仪解决方案
- apt 安装软件出现“无法定位软件包”的问题
- 拼多多校招内推编程题1 最大乘积
- 二维码教程之如何制作表白二维码
- mysql 1126报错 User 'root' has exceeded the 'max_questions' resource (current value: 10000)