首先说明参考链接:https://mp.weixin.qq.com/s/W68JzNIoUpm9hyXinOzkMw

以下为个人观后总结。

初级理解:

GET和POST的区别

1、get传送的参数长度有限制,post没有
2、get"不安全",显示在url上,post没有
3、get会被主动缓存,post没有
4、get只接受ASCII字符,post没有限制
5、get在浏览器回退时无害,post会再次发送请求
6、get请求会被完成保存在浏览器缓存中,post没有
7、get只支持url编码,post支持多种
8、传输数据方式不同,get请求时发送一个请求包,post请求时发送两个请求包。

问题来了,get请求有request body吗?

首先说明,get和post都是http请求,底层都是tcp协议,区别在哪呢?
为了区分也为了更方便处理,将tcp进行了分类,分类get和post等请求,每个请求对应自己的的处理方式,
如果把tcp比喻成汽车,get就是货车,那种敞篷的大货车,拉的什么货物,一目了然。
post就是封闭式的搬家面包车,所有的东西都藏在里面,只有开门卸货才能知道装了什么。

但是,敞篷大货车前面的驾驶室也可以放置一些小的货物,至于买家要不要就是人家的事了。
搬家面包车也能够在车顶放上一个自行车,但是敢不敢放那就是车主人的问题了。

每次运送货物时理论上可以无限装载,比如印度的火车,你懂得,车里面满了,那就上车顶,车顶满了,那就挂车外面,挤就完了,但是这很危险啊。url参数也是,正常可以无限续接,但是为了提高卸货装货的效率,浏览器最终指定了一个不成文的规则,url长度在2k,
服务器最多处理64k大小的url。

结论,get可以有request body,主要看浏览器支不支持解析了。

url参数是如何拼接的呢?

使用“?”添加参数,“&”分隔参数
其实我们可以自己定义参数的写法,只要服务器段能够解析出来即可。

get比post安全吗?

不安全,get和post都是http请求,都是明文传输的,通过网络抓包都能够进行获取。
想要安全那就需要https请求。

get和post是如何发送请求的?

get发送请求时,只会发送一个请求包
post发送请求时,会发送两个请求包,首先发送一个请求包,告诉服务器,我接下来要发送一个请求了,得到服务器的答复之后,在发送请求包。

get比post更快吗?

并不会,在网络良好的情况下,发两次包和发一次包所用时间几乎一致,而且并不是所有浏览器,post都是两次发送请求。火狐和谷歌基本都是发送一次。

日常学习-001-Get和Post的区别的更多相关文章

  1. Android:日常学习笔记(10)———使用LitePal操作数据库

    Android:日常学习笔记(10)———使用LitePal操作数据库 引入LitePal 什么是LitePal LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式 ...

  2. VC++学习之进程和线程的区别

    VC++学习之进程和线程的区别 一.进程        进程是表示资源分配的基本单位,又是调度运行的基本单位.例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格.内存空间.磁盘 ...

  3. Android:日常学习笔记(9)———探究持久化技术

    Android:日常学习笔记(9)———探究持久化技术 引入持久化技术 什么是持久化技术 持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失 ...

  4. Android:日常学习笔记(9)———探究广播机制

    Android:日常学习笔记(9)———探究广播机制 引入广播机制 Andorid广播机制 广播是任何应用均可接收的消息.系统将针对系统事件(例如:系统启动或设备开始充电时)传递各种广播.通过将 In ...

  5. Android:日常学习笔记(8)———开发微信聊天界面

    Android:日常学习笔记(8)———开发微信聊天界面 只做Nine-Patch图片 Nine-Patch是一种被特殊处理过的PNG图片,能够指定哪些区域可以被拉升,哪些区域不可以.

  6. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  7. Android:日常学习笔记(7)———探究UI开发(4)

    Android:日常学习笔记(7)———探究UI开发(4) UI概述  View 和 ViewGrou Android 应用中的所有用户界面元素都是使用 View 和 ViewGroup 对象构建而成 ...

  8. Android:日常学习笔记(8)———探究UI开发(3)

    Android:日常学习笔记(8)———探究UI开发(3) 详解四种基本布局 前言 布局定义用户界面的视觉结构,如Activity或应用小部件的 UI.您可以通过两种方式声明布局: 在 XML 中声明 ...

  9. Android:日常学习笔记(8)———探究UI开发(2)

    Android:日常学习笔记(8)———探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...

  10. Android:日常学习笔记(7)———探究UI开发(1)

    Android:日常学习笔记(7)———探究UI开发(1) 常用控件的使用方法 TextView 说明:TextView是安卓中最为简单的一个控件,常用来在界面上显示一段文本信息. 代码: <T ...

随机推荐

  1. 腾讯 angel 3.0:高效处理模型

    腾讯 angel 3.0:高效处理模型 紧跟华为宣布新的 AI 框架开源的消息,腾讯又带来了全新的全栈机器学习平台 angel3.0.新版本功能特性覆盖了机器学习的各个阶段,包括:特征工程.模型训练. ...

  2. Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://dubbo.apache.org/schema/dubbo]

    dubbo的官方文档写的真好, http://dubbo.apache.org/zh-cn/docs/2.7/user/dependencies/ 在使用dubbo过程中的问题, 和解决 org.sp ...

  3. git介绍及使用

    一.架构 版本库(仓库):工作区中有一个隐藏目录.git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容. 暂存区:版本库中包含一个临时区域,保存下一步要提交的文件. 分支:版本库中 ...

  4. JVM 的执行子系统

    JVM 的执行子系统. 一.Class类文件结构 1. JVM的平台无关性 与平台无关性是建立在操作系统上,虚拟机厂商提供了许多可以运行在各种不同平台的虚拟机,它们都可以载入和执行字节码,从而实现程序 ...

  5. RabbitMQ由浅入深入门全总结(一)

    写在最前面 距离上一次发文章已经很久了,其实这段时间一直也没有停笔,只不过在忙着找工作还有学校结课的事情,重新弄了一下博客,后面也会陆陆续续会把文章最近更新出来~ 这篇文章有点长,就分了两篇Q PS: ...

  6. Task03:复杂一点的查询

    之前接触了sql基本的查询用法,接下来介绍一些相对复杂的用法. 3.1 视图 我们先来看一个查询语句 SELECT stu_name FROM view_students_info; 单从表面上看起来 ...

  7. 彻底搞懂彻底搞懂事件驱动模型 - Reactor

    在高性能网络技术中,大家应该经常会看到Reactor模型.并且很多开源软件中都使用了这个模型,如:Redis.Nginx.Memcache.Netty等. 刚开始接触时可能一头雾水,这到底是个什么东东 ...

  8. C# 扫描并读取图片中的文字

    本文介绍如何通过C# 程序来扫描并读取图片中的文字,这里以创建一个.Net Core程序为例.下面是具体步骤,供参考. 程序测试环境: Visual Studio版本要求不低于2017 图片扫描工具: ...

  9. 【模拟8.10】Weed(线段树)

    考试只好随便骗骗分过去啦啦啦..... 正解是玄学线段树: 以每个操作为叶子节点,我们定义几个变量ce表示层数,h表示高度,add表示所减的层数 那么问题转化为单点修改的问题输出直接是根节点答案 但是 ...

  10. noip2013 总结

    转圈游戏 题目 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,-- ...