AJAX는 CSR을 위해 사용하며 웹페이지에서 동적으로 서버에게 데이터를 주고 받을 수 있는 기술을 의미한다. -> CSR 설명
- 앞서 알아본 HTTP 웹 브라우저(클라이언트)와 서버가 데이터를 요청하고 응답을 받을 수 있도록 해주는 프로토콜인 HTTP를 이용하여 서버에게 데이터를 요청하고 받아오는 방법으로 AJAX를 사용한다.
AJAX에서 대표적으로는 사용하는 기술로는 Web API인 "XHR API" 와 "Fetch API" 가 있다. -> Fetch API
Fetch의 등장 이전에는 표준화 된 XHR(XMLHttpRequest)를 사용했다. Fetch는 XHR의 단점을 보완한 새로운 Web API이며, XML보다 가볍고 JavaScript와 호환되는 JSON을 사용합니다. 따라서 현재 XHR보다 Fetch를 많이 사용한다.
- xml과 json은 html과 마찬가지로 마크업언어로 데이터를 표현할 수 있는 방법, 포맷이다. -> json 설명
- 신기술인 Fetch는 인터넷 익스플로워에서는 지원이 안되는 점을 유의!
// Fetch를 사용
fetch('http://52.78.213.9:3000/messages')
.then (function(response) {
return response.json();
})
.then(function (json) {
...
});
// XMLHttpRequest를 사용
var xhr = new XMLHttpRequest();
xhr.open('get', 'http://52.78.213.9:3000/messages');
xhr.onreadystatechange = function(){
if(xhr.readyState !== 4) return;
// readyState 4: 완료
if(xhr.status === 200) {
// status 200: 성공
console.log(xhr.responseText); // 서버로부터 온 응답
} else {
console.log('에러: ' + xhr.status); // 요청 도중 에러 발생
}
}
xhr.send(); // 요청 전송
AJAX 구성 요소(기술)
- 웹 페이지 표현을 위한 HTML, CSS
- 데이터에 접근하거나, 화면 구성을 동적으로 조작하는 DOM
- 데이터 교환에 사용되는 JSON 이나 XML
- 웹 서버와 비동기적 통신을 위한 XMLHttpRequest 객체
- JavaScript
XHP의 이름은 왜 xml 포맷 이름을 붙여서 이름을 지었을까?
이름만 보면 xml만 사용해서 데이터를 주고받을 수 있는 것 같아보이지만, 데이터를 주고받을 때는 다양한 포맷을 사용하여 주고받을 수 있으며 지금은 JSON 포맷을 주로 사용하고 있다.
그런데 왜 xml 넣어서 이름을 지었을까?
그 이유는 마이크로소프트사에서 그 당시에 개발할때 데이터를 전송할때 xml 포맷을 사용했어서 xml이 포맷이름을 붙여서 이름을 지었는데, xml 포맷만 사용하는 것이 아니고 다양한 포맷을 사용할 수 있기 때문에 실수라고 봐야한다.
출처
코드스테이츠
드림코딩엘리 유튜브
MDN
https://developer.mozilla.org/ko/docs/Web/API/XMLHttpRequest
https://developer.mozilla.org/ko/docs/Web/API/Fetch_API