JSON必知必會 觀後記

術語java

可移植性jquery

平臺和系統間傳輸信息的兼容性。web

 

JSONajax

JavaScriptObjectNotation  對象表示法。數據庫

 

數據交換格式編程

用於不一樣平臺或系統間交換數據的文本。json

 

字面量跨域

字面意思與其想表達的意思徹底一致的值。數組

 

變量瀏覽器

經過形如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不老是最佳選擇。

相關文章
相關標籤/搜索