..

Search

7) XMLHttpRequest 객체

XMLHttpRequest 객체


XMLHttpRequest 객체

Ajax의 가장 핵심적인 구성 요소는 바로 XMLHttpRequest 객체입니다.

Ajax에서 XMLHttpRequest 객체는 웹 브라우저가 서버와 데이터를 교환할 때 사용됩니다.

웹 브라우저가 백그라운드에서 계속해서 서버와 통신할 수 있는 것은 바로 이 객체를 사용하기 때문입니다.


XMLHttpRequest 객체의 역사

비동기식 통신 방식인 XMLHttp는 가장 처음으로 익스플로러 5 버전에서 ActiveXObject라는 객체를 사용하여 구현됩니다.

그 후에 모질라와 사파리에서 XMLHttpRequest라는 이름으로 도입하여 널리 사용되기 시작합니다.

 

초기의 XMLHttpRequest 객체는 W3C 표준이 아니었기 때문에 웹 브라우저마다 구현상의 차이가 존재했습니다.

하지만 익스플로러도 7 버전부터 XMLHttpRequest 객체를 기본적으로 지원하게 되며, W3C 표준으로도 제정되게 됩니다.

 

따라서 현재 대부분의 웹 브라우저는 모두 비슷한 구현 방식으로 XMLHttpRequest 객체를 사용하고 있습니다.


XMLHttpRequest 객체의 생성

현재 대부분의 주요 웹 브라우저는 XMLHttpRequest 객체를 내장하고 있습니다.

 

이러한 XMLHttpRequest 객체를 생성하는 방법은 브라우저의 종류에 따라 다음과 같이 나눠집니다.

 

1. XMLHttpRequest 객체를 이용한 방법

2. ActiveXObject 객체를 이용한 방법

 

익스플로러 7과 그 이상의 버전, 크롬, 파이어폭스, 사파리, 오페라에서는 XMLHttpRequest 객체를 사용합니다.

문법

var 변수이름 = new XMLHttpRequest();

 

하지만 익스플로러의 구형 버전인 5와 6 버전에서는 ActiveXObject 객체를 사용해야 합니다.

문법

var 변수이름 = new ActiveXObject("Microsoft.XMLHTTP");

 

따라서 모든 웹 브라우저에서 XMLHttpRequest 인스턴스를 제대로 생성하기 위해서는 다음과 같이 작성해야 합니다.

예제

var httpRequest;

function createRequest() {

    if (window.XMLHttpRequest) { // 익스플로러 7과 그 이상의 버전, 크롬, 파이어폭스, 사파리, 오페라 등

        return new XMLHttpRequest();

    } else {                     // 익스플로러 6과 그 이하의 버전

        return new ActiveXObject("Microsoft.XMLHTTP");

    }

}

코딩연습 ▶

 

하지만 현재 익스플로러 6과 그 이하 버전을 사용하는 사용자는 거의 없으므로, 우리 수업에서는 다음과 같이 XMLHttpRequest 객체만을 사용할 것입니다.

예제

var httpRequest = new XMLHttpRequest();


연습문제