HTTP 통신이란?
클라이언트와 서버가 데이터를 주고받는 과정

비동기 HTTP 통신의 종류 : Ajax, Fetch, Axios
→ response와 request를 비동기 식으로 다루는 통신
→ Asynchronous JavaScript And XML (비동기 자바스크립트와 XML)
➕ Ajax에 대한 오해
JQuery의 Ajax가 아닌, Ajax를 JQuery를 통해 보다 더 쉽게 사용할 수 있음
Jquery를 사용할 경우 브라우저 호환성에 대해서도 보장 가능
// use Ajax without Jquery
function reqListener (e) {
console.log(e.currentTarget.response);
}
var oReq = new XMLHttpRequest();
var serverAddress = "https://jsonplaceholder.typicode.com/posts";
oReq.addEventListener("load", reqListener);
oReq.open("GET", serverAddress);
oReq.send();
// use Ajax with Jquery
var serverAddress = 'https://jsonplaceholder.typicode.com/posts';
// jQuery의 .get 메소드 사용
$.ajax({
url: ,
type: 'GET',
success: function onData (data) {
console.log(data);
},
error: function onError (error) {
console.error(error);
}
});
→ ES6에 도입된 자바스크립트 내장 라이브러리
//fetch
const url ='http://localhost3000/test`
const option ={
method:'POST',
header:{
'Accept':'application/json',
'Content-Type':'application/json';charset=UTP-8'
},
body:JSON.stringify({
name:'may',
age:20
})
fetch(url,options)
.then(response => console.log(response))
→ 웹 브라우저, Node.js를 위한 Promise API를 활용하는 라이브러리
axios({
method: 'post',
url: '/user/12345',
data: {
firstName: 'Seoyoon',
lastName: 'Kim'
}
});
| Ajax | Fetch | Axios | |
|---|---|---|---|
| 설치 | X | X | O (크기가 큼) |
| 브라우저 호환성 | O (← JQuery) | X | O |
| JSON 형식 자동 변환 | X | X | O |
| Promise 기반 | X | O | O |
| XSRF 방어 | X | X | O |
→ (개인적인 의견) 웹 프론트엔드 프레임워크(React, Vue.js 등)을 다룰때에는 Axios 사용 추천❗️
→ (Next.js) App Router의 서버 사이드 로직 처리에서 fetch 사용을 권장❗️