HTTP (Hyper Text Transfer Protocol) : HyperText를 클라이언트와 서버가 어떻게 주고받을지를 정한 프로토콜
-Client는 Server에 'Request' 할 수 있고,
-Server는 Client에 Request에 맞는 'Response'를 해준다.
HyperText: 인터넷에서 사용되는 하이퍼링크 이외에도 문서나 이미지들
AJAX(Asynchronous JavaScript And XML) : 웹페이지에서 동적으로 서버에게 데이터를 주고받을수 있는 기술
- 대표적으로 XHR(XMLHttpRequest) :브라우저에서 제공하는 Object중에 하나이다.
최근에는 fetch API 도 추가되었지만 ie에서는 지원하지 않는다.
XML : HTML과 마찬가지로 데이터를 표현할 수 있는 표현방법. (현재는 가독성도 좋지않고 파일크기도 커지기때문에 많이 사용되고 있지는 않는다.)
★JSON(JavaScript Object Notation): 자바스크립트의 object가 key와 value로 이루어진것처럼 같은방식으로 표현함.
-프로그래밍 언어와 상관 없이 직렬화 시킬 수 있어서 많이 사용한다.
*직렬화 : Object를 문자열로 바꾸는것 (serialize)
*역직렬화 : String을 Object로 바꾸는것 (deserialize)
//JSON
//1. Object -> JSON
//stringify(obj)
let json = JSON.stringify(true);
console.log(json);
json = JSON.stringify(['apple','banana']);
console.log(json);
const rabbit = {
name:'tori',
color:'white',
size:null,
birthDate : new Date(),
jump: ()=>{
console.log(`${name} can jump!`); //함수는 오브젝트에 들어있는 데이터가 아니기때문에 제외된다. 자바스크립트전용 특별한 데이터도 포함시키지 않는다.
},
};
json = JSON.stringify(rabbit);
console.log(json);
json = JSON.stringify(rabbit,["name","size"]); //원하는 프로퍼티만 골라서 json으로 변환이 가능하다
console.log(json);
json = JSON.stringify(rabbit,(key,value)=>{
console.log(`key: ${key}, value: ${value}`);
return key ==='name'?'banban':value;
}); //원하는 프로퍼티만 골라서 json으로 변환이 가능하다
console.log(json);
//2. JSON -> Object
//parse(json)
console.clear();
json = JSON.stringify(rabbit);
const obj = JSON.parse(json, (key,value)=>{
console.log(`key: ${key}, value: ${value}`);
return key =='birthDate' ? new Date(value) : value;
});
console.log(obj);
rabbit.jump();
console.log(rabbit.birthDate.getDate());
console.log(obj.birthDate.getDate());
'JS > 드림코딩앨리' 카테고리의 다른 글
12. 프로미스 개념부터 활용까지 JavaScript Promise (0) | 2021.04.22 |
---|---|
11. 비동기 처리의 시작 콜백 이해하기, 콜백 지옥 체험 (0) | 2021.04.21 |
9. 유용한 10가지 배열 함수들. Array APIs 총정리 (0) | 2021.04.21 |
8. 배열 제대로 알고 쓰자. 자바스크립트 배열 개념과 APIs 총정리 (0) | 2021.04.21 |
7. Object 넌 뭐니? (0) | 2021.04.21 |