菜鸟从零学编程——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的区别,网上很多答案都是不够准确的。在网上查找资料的时候一定要多看一些,对比对比,这样可以帮助你鉴别是对是错。不至于一叶障目被错误的信息所误导。要保持三分的怀疑,所谓尽信书不如无书。希望这篇文章对大家以后面试的时候提供一点点的帮助。欢迎留言交流。
菜鸟从零学编程——GET与POST的更多相关文章
- 菜鸟从零学编程(七)——搭建一个完整的Java开发环境
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...
- 菜鸟从零学编程(八)——将MyEclipse项目导入到Eclipse
最近由于种种原因,需要将以前用MyEclipse写的项目迁移到Eclipse中.但是当我将之前的项目import到Eclipse中后,发现根本不能运行.经过一番寻觅,终于让我找到了一种解决的办法.一起 ...
- [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念
上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...
- [Python] 文科生零基础学编程系列三——数据运算符的基本类别
上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...
- Asky极简教程:零基础1小时学编程,已更新前8节
Asky极简架构 开源Asky极简架构.超轻量级.高并发.水平扩展.微服务架构 <Asky极简教程:零基础1小时学编程>开源教程 零基础入门,从零开始全程演示,如何开发一个大型互联网系统, ...
- 【雕爷学编程】MicroPython动手做(03)——零基础学MaixPy之开机测试
1.几个知识点(1)MicroPython 是 Python 3 语言的精简高效实现 ,包括Python标准库的一小部分,并针对嵌入式微控制器(单片机)和受限制的环境进行了优化,它是Python延伸出 ...
- 【Linux教程】Linux系统零基础编程入门,想当大神?这些你都要学
✍ 文件和文件系统 文件是Linux系统中最重要的抽象,大多数情况下你可以把linux系统中的任何东西都理解为文件,很多的交互操作其实都是通过文件的读写来实现的. 文件描述符 在Linux内核中,文件 ...
- 为什么大部分的程序员学编程,都会选择从C语言开始?
软件行业经过几十年的发展,编程语言的种类已经越来越多了,而且很多新的编程语言已经在这个领域从开始的默默无闻到如今风风火火,整个编程语言朝着集成化方向发展,这样会导致很多的初学者选择上不像以前那么单一了 ...
- 什么是 C 和 C ++ 标准库?学编程的你应该知道这些知识!
简要介绍编写C/C ++应用程序的领域,标准库的作用以及它是如何在各种操作系统中实现的. 我已经接触C++一段时间了,一开始就让我感到疑惑的是其内部结构:我所使用的内核函数和类从何而来? 谁发明了它们 ...
随机推荐
- 【BZOJ 3136】 3136: [Baltic2013]brunhilda (数论?)
3136: [Baltic2013]brunhilda Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 238 Solved: 73[Submit][ ...
- tomcat8.5请求参数限制的问题
前段时间遇到这个问题: 包含json字符串类型的参数的http请求失败,返回状态码400,提示invalid character found in the request target. Tomcat ...
- bzoj 2763: [JLOI2011]飞行路线 -- 分层图最短路
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- 三、python的数据类型 列表、元组、字典
1.list 列表 列表是由一序列特定顺序排列的元素组成的.可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系.列表也是自带下标的,默认也还是从0开始. List常用的 ...
- Intelij Idea下的git使用
一.简介 在我们入门软件研发并且是团队开发的时候,总会遇到这样合代码这么简单粗暴的工作,最开始我也能体会到这项工作折磨.那git是干什么得呢?简称分布式版本控制系统,常见就是上传代码.整合代码.更新代 ...
- WPF支持GIF的各种方法
2012.12.18更新:修复下载链接 已知WPF的Image元素只能显示GIF图片的第一帧,而MediaElement不能加载作为资源或内嵌的资源的GIF图片,所以网上有几种实现方法. 我抄袭网上提 ...
- U-Boot中的filesize环境变量
U-Boot中的环境命令可以使用$(filesize)来确定刚下载(传输)得到的文件大小. 因为使用类似tftp命令传输文件后,会自动更新filesize环境变量.如:setenv updateroo ...
- 资源合并fis-postpackager-simple插件的使用
FIS默认只会进行文件打包,不会对页面中的静态资源引用进行替换,这时可以利用fis-postpackager-simple插件进行资源替换. 安装: npm install -g fis-postpa ...
- 简单Gif制作
没什么需求,只是循环图片的推荐:http://gif.55.la/ ,在线制作,无需下载
- android基础知识普及
1.密度问题及相互转换 测试机 philips w732 480X800 density 1.5 scaledDensity 1.6500001 通过 context.getResources().g ...