웹 페이지의 변경에 필요한 데이터만 서버로부터 비동기 방식으로 전송받는다.
XMLHttpRequest(XHR)
자바스크립트는 싱글스레드로 멀티테스킹을 못하는데 어떻게 비동기적 동작이 가능할까?
const get() = (url)=>{
const xhr = XHMLHttpRequest();
xhr.open('GET', url)
xhr.send();
// http요청이 성공적으로 완료된 경우
xhr.onload = () =>{
if(xhr.status === 200){
console.log(JSON.parse(xhr.response));
}
}
}
Ajax는 기술도 프레임워크, 라이브러리도 아닌 자바스크립트와 XHLHttpRequest를 사용해서 클라이언트와 서버가 비동기적으로 통신하는 것
HTTP요청 전송기능을 제공하는 클라이언트 사이드 Web Api
Promise를 반환
Node.js와 브라우저를 위한 Promise기반 HTTP클라이언트
서버에서는 네이티브 node.js의 http를 사용
클라이언트에서는 XHLHttpRequest를 사용