웹 페이지에서 서버와 비동기로 데이터를 교환할 수 있는 기술인 Ajax에 대해 알아보겠다. Ajax는 Asynchronous JavaScript and XML의 약자로, 페이지를 새로고침하지 않고도 서버와 통신할 수 있다.
HTTP는 웹에서 데이터를 전송하는 프로토콜이다.
Https
클라이언트와 서버 사이에서 요청과 응답을 통해 통신한다.
HTTP 요청은 다음과 같은 메서드를 사용할 수 있다.
Ajax는 페이지 전체를 다시 로드하지 않고도 웹 페이지의 일부분만 업데이트할 수 있는 기술이다. JavaScript를 사용하여 서버와 비동기로 통신하며, 이를 통해 사용자 경험을 향상시킨다.
XMLHttpRequest 객체는 클라이언트와 서버 간에 XML 데이터를 비동기로 교환하는데 사용된다. 오늘날, 이 객체는 XML뿐만 아니라 다양한 데이터 포맷과 함께 사용된다.
예시:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'data.txt', true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById('content').innerHTML = xhr.responseText;
}
};
xhr.send();
Fetch API는 XMLHttpRequest의 현대적인 대체제로, 프로미스를 기반으로 한다. 더 간결하고 유연한 코드 작성이 가능하다.
fetch(url,option)
.then(res => response.text())
.then(text => console.log(text))
url: 요청할 url
option
예시:
fetch('data.json')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('에러 발생:', error));
JSON은 JavaScript Object Notation의 약자로, 데이터를 교환하는 데 사용되는 경량 포맷이다. 객체를 문자열로 변환하거나 문자열을 객체로 변환하는 것이 매우 쉽다.
예시:
let person = { name: "홍길동", age: 25 };
let jsonString = JSON.stringify(person);
let object = JSON.parse(jsonString);
console.log(jsonString);
// JSON 형식 - 다양한 데이터 형식 가능
//{"name":"홍길동","age":25}
console.log(object);
// Object 형식
//{ name: '홍길동', age: 25 }
Ajax는 웹 페이지와 서버 간의 비동기 통신을 가능하게 해 웹 애플리케이션의 성능과 사용자 경험을 향상시킨다. XMLHttpRequest, Fetch, JSON과 같은 기술들이 이 과정을 지원하며, 현대 웹 개발에서 필수적인 요소로 여겨진다.