>  기사  >  웹 프론트엔드  >  JSON을 알고 이해해야 합니다.

JSON을 알고 이해해야 합니다.

高洛峰
高洛峰원래의
2016-12-08 14:51:46993검색

약관
이식성
플랫폼과 시스템 간 정보 전송의 호환성.

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 값의 모든 문자는 null 값을 나타내는 소문자여야 합니다.

JSON의 숫자 유형에서 66과 같은 숫자 값은 양의 정수, 음의 정수, 소수 또는 지수가 될 수 있습니다.

객체와 배열의 주요 차이점은 객체는 이름-값 쌍의 목록 또는 컬렉션이고 배열은 값의 목록 및 컬렉션이라는 것입니다.

객체와 배열의 또 다른 주요 차이점은 배열의 모든 값이 동일한 데이터 유형이어야 한다는 것입니다.

용어
JSON의 배열
배열은 값의 모음 또는 목록이며, 각 값은 문자열, 숫자, 부울, 개체 또는 배열 중 하나일 수 있습니다. 배열은 []로 묶고 쉼표로 구분해야 합니다.

JSON의 객체 유형
객체 유형은 쉼표로 구분되고 {}로 묶인 이름-값 쌍의 컬렉션입니다.

JSON 스키마
데이터 교환의 가상 계약입니다.

서버(웹 개발 중)
웹 리소스를 요청할 때 서버에서 수행되는 일련의 작업입니다. 서버는 처리하고 로드하는 응답을 인터넷 브라우저에 제공합니다.

클라이언트(웹 개발 중)
브라우저가 요청한 인터페이스가 로드될 때 수행되는 일련의 작업으로 일반적으로 HTML, CSS 및 JavaScript를 참조합니다.

개념
JSON 유효성 검사기는 구문 오류 확인을 담당하고 JSON 스키마는 일관성 확인을 담당합니다.

JSONSchema는 데이터 수신을 위한 첫 번째 방어선이며 데이터 발신자가 시간을 절약하고 데이터 정확성을 보장할 수 있는 좋은 도구이기도 합니다.

JSONSchema는 다음과 같은 일관성 검증 문제를 해결할 수 있습니다
 1. 값의 데이터 유형이 올바른가요? 값이 숫자, 문자열 등의 유형임을 지정할 수 있습니다.
2. 필수 데이터가 포함되어 있나요? 필요한 데이터와 그렇지 않은 데이터를 지정할 수 있습니다.
3. 내가 원하는 형태의 가치가 있나요? 범위, 최소값, 최대값을 지정할 수 있습니다.

JSON 자체는 위협이 되지 않으며 단지 텍스트일 뿐입니다.

JSON 보안 문제를 찾을 때 다음 3가지를 기억해야 합니다.

1. 최상위 배열을 사용하지 마세요. 최상위 배열은 <를 사용할 수 있습니다. ;script> 태그를 연결하여 사용하세요.
2. 공개를 원하지 않는 리소스의 경우 Get 메서드 대신 HTTPPost 메서드만 요청할 수 있습니다. get 메서드는 URL을 통해 요청하거나 스크립트 태그에 배치할 수도 있습니다.
3. eval() 대신 JSON.parser()를 사용합니다. eval() 함수는 수신 문자열을 컴파일하고 실행하므로 코드를 공격에 취약하게 만듭니다. 구문 분석에는 JSON.parser()만 사용해야 합니다. JSON 데이터.

보안 취약점은 개발자가 해커가 이를 어떻게 악용할 수 있는지 고려하지 않아 발생하는 경우가 많습니다.

JavaScript의 XMLHTTPRequest와 WEBAPI의 관계는 클라이언트와 서버의 관계입니다.

XMLHTTPRequest는 XML에만 국한되지 않고 이를 사용하여 JSON 리소스를 요청할 수도 있습니다.


Cross-site request forgery(CSRF)
라는 용어는 사이트의 신뢰를 악용하는 것을 의미합니다. 공격

최상위 JSON 배열
JSON 이름-값 쌍 외부에 존재하는 문서 상단의 JSON 배열입니다.

삽입 공격
악성 데이터의 실행이나 컴파일을 용이하게 하기 위해 웹 애플리케이션에 데이터를 주입하는 공격입니다.

JSON 크로스 사이트 스크립팅 공격
사이트에서 사용되는 타사 코드를 가로채거나 악성 스크립트로 교체하여 사이트에 주입하는 공격입니다.

webApi
HTTP를 통해 서비스와 상호작용하기 위한 일련의 지침 및 표준입니다.

XMLHTTPRequest
페이지를 새로 고치지 않고 URL에서 데이터를 얻을 수 있는 JavaScript 개체는 AJAX 프로그래밍에서 일반적으로 사용됩니다.

HTTP(Hypertext Transfer Protocol)
World Wide Web에서 사용되는 데이터 교환을 위한 기본 프로토콜

Serialization
객체를 텍스트로 변환하는 작업

Deserialization 변환
텍스트를 개체로 변환하는 작업입니다.

개념
웹사이트는 사람에게 서비스를 제공하고, webAPI는 코드를 제공하며, 둘 다 Http 프로토콜을 사용합니다.

동일 출처 정책으로 인해 JavaScript 및 JSON 리소스가 클라이언트-서버 통신을 어렵게 만듭니다.

클라이언트의 도메인 간 XMLHTTPRequest에는 JSON 리소스 요청의 성공을 보장하기 위한 서버 지원이 필요합니다.

jQuery는 개발 시간을 단축할 수 있는 JSON 요청 및 구문 분석 기능을 제공하는 추상화 도구이며, 브라우저 간 호환성 문제도 해결합니다.

AngularJS MVC의 개념
JSON은 모델||데이터 모델
HTML은 뷰이며 모델과 바인딩하기 위한 구문을 제공합니다
컨트롤러는 JavaScript로 정의하고 작동하는 AngularJS 구문입니다. 모델과 뷰 간의 상호 작용을 위한 파일입니다.

AngularJS는 JavaScript 객체와 JSON을 MVC 아키텍처에서 빛나게 만듭니다.

관계형 데이터베이스에는 기본 키와 외래 키가 사용되는 테이블 열, 행 및 이들 사이의 관계가 있는 경우가 많습니다.

NoSQL 데이터베이스에는 다양한 종류가 있으며 기존 관계형 모델과는 데이터 저장 및 활용 방식이 다릅니다.

CouchDB 데이터베이스 중요 개념
1. 문서 중심의 NoSQL 데이터베이스입니다
2. JSON 문서를 저장하고 관리합니다
3. 데이터를 저장하고 검색하면서 데이터를 유지합니다 좋은 데이터 구조
4. HTTP 기반 API를 사용하여 JSON 문서 리소스로 데이터를 가져옵니다
5. 쿼리 언어로 JavaScript를 사용하고 뷰의 map 및 Reduce 메소드를 통해 API 전반에서 데이터를 가져옵니다.

서버 측에서는 JSON을 객체로 역직렬화하여 프로그래밍 논리에 사용하거나 객체를 JSON 형식으로 직렬화할 수 있습니다.

JSON은 서버와 클라이언트 모두에서 잘 지원되므로 웹 분야의 많은 교환 데이터 형식보다 돋보입니다.

약관
동일 출처 정책
보안상의 이유로 브라우저는 동일한 도메인의 스크립트만 요청합니다.

교차 도메인 리소스 공유 CORS
응답 헤더를 설정하면 교차 도메인 요청이 성공할 수 있습니다.

JSON-p
동일 출처 정책 제한을 우회하고 다른 도메인 이름을 가진 서버에서 JSON을 요청하려면 스크립트 태그를 사용하세요.

추상화
복잡한 시스템을 다루는 기술입니다. 큰 문제를 여러 개의 작은 문제로 변환하는 것이 핵심입니다.

프레임워크
시간을 절약할 수 있는 기술입니다. 우리는 기능을 위한 추상적인 도구를 구축하는 데 더 중점을 둡니다.

Jquery.parserJSON()
JSON.parser() 함수를 호출할 뿐만 아니라 JSON.parser() 함수를 지원하지 않는 이전 브라우저와도 호환되는 jquery 함수입니다. 문자열을 평가하기 위해 확인 문자를 전달하므로 가능한 보안 문제를 피할 수 있습니다.

jquery.getJSON()
json을 JavaScript 개체로 구문 분석하는 기능이 포함된 jquery.ajax() 함수의 짧은 형식입니다.

단일 페이지 웹 애플리케이션
기존의 다중 페이지 접근 방식과 달리 웹 페이지는 보다 원활한 애플리케이션 경험을 제공하는 데 중점을 둡니다.

Model-View-Controller(MVC)
애플리케이션을 모델(데이터), 뷰(프레젠테이션), 컨트롤러(모델 및 뷰 업데이트)의 세 부분으로 나누는 애플리케이션 아키텍처 패턴 )

AngularJS
JavaScript 객체를 데이터 모델로 사용하는 JavaScriptMVC 프레임워크입니다.

관계형 데이터베이스
식별 가능한 관계를 사용하여 저장된 데이터를 구조화된 방식으로 저장하는 데이터베이스입니다.

NoSQL 데이터베이스
데이터를 저장하여 관계를 저장하지 않는 데이터베이스입니다.

CouchDB
JSON 문서를 사용해 데이터를 저장하는 문서 중심의 NoSQL 데이터베이스 스토리지 유형입니다.

ASP.NET
Microsoft에서 개발한 서버 측 웹 프레임워크

PHP
동적 웹 페이지 생성을 위한 서버 측 스크립팅 언어

Ruby on Rails
Ruby로 작성된 서버측 웹 애플리케이션 프레임워크

Node.js
Google V8 엔진 기반의 서버측 JavaScript.

java
객체 지향 프로그래밍 언어입니다.

JSON은 정적 구성 파일로도 사용됩니다.

사용할 데이터 형식을 고려할 때 데이터 형식과 데이터 교환 시스템을 모두 고려해야 합니다. ! ! ! JSON이 항상 최선의 선택은 아닙니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.