JSON必知必会 观后记

术语

可移植性

平台和系统间传输信息的兼容性。

JSON

JavaScriptObjectNotation  对象表示法。

数据交换格式

用于不同平台或系统间交换数据的文本。

字面量

字面意思与其想表达的意思完全一致的值。

变量

通过形如X的标识符来表示的,可以修改的一类值。

最大移植性

通过保证数据本身对于平台和系统的兼容性来提供超越数据格式本身的可移植性。

名称-值对

指拥有名称和对应值的属性和特征(也叫键值对)。

语法验证

json格式的验证。

一致性验证

关注独特的数据结构验证。

JSON中的字符串类型

一个字符串值,如“你是个好人”,使用双引号包裹。

概念

JSON是一种数据交换格式。

JSON独立于编程语言。

JSON基于JavaScript对象的字面量表示法(重点在于表示法)。

JSON表达数据的方式对通用的编程概念都很友好。

JSON基于JavaScript对象字面量表示属性的语法,但并不包含与JavaScript对象字面量的函数相关部分。

JSON的名称-值对中,名称始终被双引号包裹。

JSON的名称-值对中,值可以是字符串,数字,布尔值,null,对象式数组。

JSON中的名称-值对列表始终被花括号包裹。

JSON中多个名称值对使用逗号分隔。

JSON文件使用.json扩展名。

JSON的媒体类型是application/json。

JSON中的布尔类型的值只有true和false,所有字母必须小写。

JSON中的null值的所有字母必须小写,表示空值。

JSON中的数字类型,一个数字值,如66,可以是正整数,负整数,小数,指数。

对象和数组很关键的区别就是,对象是名称-值对构成的列表或集合,数组是值构成的列表和集合。

对象和数组另一个关键区别是,数组中所有值应具有相同的数据类型。

术语

JSON中的数组

数组是值的集合或列表,每个值都可以是字符串,数字,布尔值,对象或数组中的任何一种。数组必须被[]包裹,且值与值之间用逗号分隔。

JSON中的对象类型

对象类型是使用逗号分隔的名称-值对构成的集合,并使用{}包裹。

JSON Schema

数据交换中的一种虚拟合同。

服务端(web开发中的)

当网页式资源被请求时,在服务器上执行的一系列操作。服务器为互联网浏览器提供其处理和加载的响应。

客户端(web开发中的)

当浏览器请求的界面加载完毕时执行的一系列操作,通常是指HTML,CSS和JavaScript。

概念

JSON验证器负责验证语法错误,JSON Schema负责提供一致性验证。

JSONSchema是负责数据接收第一道防线,也是数据发送方节约时间,保证数据正确的好工具。

JSONSchema可以解决下列一致性验证的问题

  1.值的数据类型是否正确?  可以具体规定一个值是数字、字符串等类型。

  2.是否包含所需要的数据?  可以具体规定哪些数据是需要的,哪些不需要的。

  3.值的形式是不是我需要的?  可以指定范围,最小值最大值。

JSON本身不构成什么威胁,它只是文本。

在定位JSON安全问题时,应该记住以下3件事.

  1.不要使用顶级数组,顶级数组是合法的JavaScript脚本,他们可以用<script>标签链接并使用。

  2.对于不想公开的资源,仅允许使用HTTPPost方法请求,而不是Get方法,get方法可以通过url请求,甚至放在script标签中。

  3.使用JSON.parser()来替代eval(),eval()函数会将传入的字符串编译并执行,这会让你的代码易被攻击,应仅使用JSON.parser()来解析json数据。

安全漏洞通常由于开发人员没有考虑“黑客如何利用这一点”这一问题所导致的。

JavaScript的XMLHTTPRequest与WEBAPI之间的关系是客户端与服务端之间的关系。

XMLHTTPRequest并不仅限于XML,还可以用它来请求JSON资源

术语

跨站请求伪造(CSRF)

指利用站点对用户浏览器的信任进行攻击

顶层JSON数组

存在于JSON名称-值对之外的位于文档最顶层的JSON数组。

注入攻击

依赖于将数据注入到web应用程序以方便恶意数据执行或编译的攻击。

JSON跨站脚本攻击

通过截取或将站点中所使用的第三方代码更换为恶意脚本,来对站点进行的一种注入攻击。

webApi

通过Http与服务进行交互的一系列指令与标准。

XMLHTTPRequest

一种JavaScript对象,无需刷新页面即可从一个URL获取数据,常用与AJAX编程。

超文本传输协议(HTTP)

万维网使用的交换数据的基本协议

序列化

将对象转化为文本的操作

反序列化

将文本转化为对象的操作。

概念

网站为人服务,webAPI为代码服务,他们都使用Http协议。

同源策略使得JavaScript和JSON资源进行客户端-服务端交流时出现了一些困难。

客户端跨域的XMLHTTPRequest需要服务端的支持来保证JSON资源请求成功。

jQuery是一款提供了JSON请求和解析功能的能够缩短开发时间的抽象化工具,同时它还解决了跨浏览器兼容问题。

AngularJS MVC的概念

  JSON是模型||数据模型

  HTML是视图,且提供了与模型进行绑定的语法

  控制器是AngularJS语法来定义和操作与模型和视图间的交互的JavaScript文件。

AngularJS使得JavaScript对象和JSON在MVC架构中大放异彩。

在关系型数据库中,常常会存在表列行以及他们之间的关系,其中会用到主键和外键。

NoSQL数据库有许多种,它们有与传统的关系型模型不同的数据存储与利用方法。

CouchDB数据库重要概念

  1.它是一种面向文档的NoSQL数据库

  2.它存储和管理JSON文档

  3.它会在存储和获取数据的同时维护好数据结构

  4.它会使用基于HTTP的API来获取作为JSON文档资源的数据

  5.它使用JavaScript作为查询语言,且通过视图的map和reduce方法来跨API获取数据。

在服务端,可以将JSON反序列化为对象而运用在编程逻辑中,也可以将对象序列化成JSON格式。

JSON同时被服务端和客户端较好的支持,使得它在web领域从诸多交换数据格式中脱颖而出。

术语

同源策略

出于安全考虑,浏览器仅会请求同一域的脚本。

跨域资源共享CORS

通过设置响应头,使得跨于请求可以成功。

JSON-p

使用script标签,绕过同源策略限制,从不同域名的服务器请求JSON。

抽象化

一种处理复杂系统的技术,主要思想是将一个大问题转换为多个小问题

框架

一种能够节约时间,已让我们更专注于构建功能的抽象化工具。

Jquery.parserJSON()

一个jquery的函数,它不仅调用JSON.parser()函数,还会兼容那些不支持JSON.parser()函数的老式浏览器,且通过验证字符来评估字符串,从而避免了可能的安全问题。

jquery.getJSON()

jquery.ajax()函数的简写形式,其中包含了将json解析为JavaScript对象的功能。

单页web应用

与传统的多页方式不同,着力于提供更加无缝的应用体验的网页。

模型-视图-控制器(MVC)

一种应用架构模式,它将应用分为3部分:模型(数据)、视图(展示)、以及控制器(更新模型和视图)

AngularJS

一款使用JavaScript对象作为数据模型的JavaScriptMVC框架。

关系型数据库

一种将存储的数据用可以辨识的关系进行结构化存储的数据库。

NoSQL数据库

一种不通过存储数据间关系来存储的数据库。

CouchDB

一种面向文档的NoSQL数据库存储类型,使用JSON文档的形式来存储数据。

ASP.NET

微软开发的服务端Web框架

PHP

用于创建动态web页面的服务端脚本语言

Ruby on Rails

使用Ruby编写的服务端Web应用框架

Node.js

基于谷歌V8引擎的服务端JavaScript。

java

一种面向对象编程语言。

JSON还会作为静止的配置文件

在考虑用什么数据格式时,数据的形式和交换数据的系统都应该被考虑到。!!!JSON不总是最佳选择。

时间: 2024-10-12 04:16:27

JSON必知必会 观后记的相关文章

JSON必知必会学习总结(一)

七月第一周,从学校毕业回来上班的第一周.离开一段时候后,再次回来重新工作,有了很多新的认识,不再是实习时那么混混沌沌了.每天我自己该做什么,怎么做,做到什么程度更清晰了.除了要去完成我负责的工作,我开始去想除了完成工作我要从中获得什么. 今天早晨走的时候,随手塞包里一本薄薄的书--<JSON必知必会>,白天间隙的时候看了前两章,这两章设计的内容平时基本接触过,但是没有系统的总结过,看完之后清晰了很多. 首先,JSON是什么,这本书是说JSON是一种数据交换格式,被许多系统用于数据交换. 数据交

基础入门_Python-模块和包.深入Celery之常用架构/方案选型/必知必会?

简单介绍: 说明: 此模块是一个专注于分布式消息传递的异步任务队列,所谓任务就是消息,消息中的有效载荷中包含要执行的任务需要的全部数据 几大特性: 1. Celery易于使用和维护,且不需要配置文件,默认配置启动时自动写入消息代理. 2. Celery高可用,连接丢失或失败时客户端或消费者会自动重试,并且可通过消息代理的双主/主从模式来提高高可用性 3. Celery快速,单个进程每分钟可处理百万任务,且优化后可保持往返延迟在亚毫秒级别 4. Celery灵活,几乎所有部分都支持扩展或单独使用,

一个老师程序员说:这是学Java 必知必会的 20 种常用类库和 API

一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车.<Effective Java>的作者Joshua Bloch曾经说过:"建议使用现有的API来开发,而不是重复造轮子".在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API.顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能.最后,如果大家如果在自学遇到困难,想找一个java的学习环境,可以加入我们的java学习圈,点击我加入吧,会节约很多时

开发中必知必会的常用Linux命令

开发中必知必会的常用Linux命令导语在日常的开发中,Linux操作系统是经常要接触到的,所以关于Linux的常用命令,我们一定要熟悉,在这里,我把平时经常用到的命令总结了一下. 1,基本命令(熟记于心)# 切换目录cd 目录# 退出到上一级cd ..# 输出当前绝对路径pwd# 列出当前目录下所有的文件或目录ls # 创建文件目录mkdir# [强制]杀死进程kill [-9]# -r递归复制 cp [-r] a b# 移动或者重命名mv a b# 删除文件 小心使用rm -rf /rm [-

MySQL必知必会 学习笔记(一)

第一章  了解SQL 模式:   关于数据库和表的布局以及特性的信息.[描述表可以存储什么样的数据,数据如何分解,各部分信息如何命名等等,可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)]. 第二章 MySQL简介 MySQL是一种DBMS,即它是一种数据库软件.基于客户机----服务器的数据库. MySQL工具: 1.mysql 命令行实用程序 2.MySQL Administrator 3.MySQL query Browser 第四章 检索数据 LIMIT 5 表示MySQL返

mysql 必知必会总结

以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随时查看. 命令:sql 不区分大小写,语句大写,列.表名小写是一种习惯连接命令:mysql -u user_name –h example.mysql.alibabalabs.com –P3306 –pxxxxquithelp show; // 查看所有 show 命令show databases;

SQLServer:《SQL必知必会》一书的读书笔记(五)

第5课 高级数据过滤 5.1 组合 WHERE 子句 第4课介绍的 WHERE 子句在过滤数据时都是用单一的条件. 5.1.1 AND 操作符 检索由供应商 DLL01 制造且价格小于等于 4 美元的所有产品的名称和价格: SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = 'DLL01' AND prod_price <= 4; 5.1.2 OR 操作符 检索任一个指定供应商制造的所有产品的名称和价格: SEL

.NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上下文环境检查(实战)

Microsoft.NET 解决方案,项目开发必知必会. 从这篇文章开始我将分享一系列我认为在实际工作中很有必要的一些.NET项目开发的核心技术点,所以我称为必知必会.尽管这一些列是使用.NET/C#来展现,但是同样适用于其他类似的OO技术平台,这些技术点可能称不上完整的技术,但是它是经验的总结,是掉过多少坑之后的觉醒,所以有必要花几分钟时间记住它,在真实的项目开发中你就知道是多么的有帮助.好了,废话不说了,进入主题. 我们在开发服务时为了调试方便会在本地进行一个基本的模块测试,你也可以认为是集

《MySQL必知必会》读书笔记_4

PS:一个实际的存储过程案例 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_article_by_id`(IN `id` int) BEGIN #Routine body goes here... DECLARE temp INT; SET @aid = id; SELECT COUNT(*) FROM gk_reply_article WHERE a_id = @aid INTO temp; IF(temp <> 0) THEN

移动前端开发人员必知必会:移动设备概述

因为工作岗位的变换带来工作内容的变动,对于移动网站的前端开发已经疏远了好几个月,在这好几个月中有很多新的东西出现,自己所掌握的一些东西也已经陈旧,所以选择了这本书<HTML5触摸界面设计与开发>来系统地学习和整理一下关于移动网站前端开发的知识体系. 之所以选择这本书,一是因为这本书比较新,2014年04月发的第一版.其二是因为作者Stephen Woods,这是Flickr团队的资深前端,Yahoo主页的Javascript技术平台正是出自此人之手. 接下来的时间里会陆续上传关于这本书学习的一