본문 바로가기

   
Programming/Ajax

XMLHttpRequest란?

반응형

XMLHttpRequest란?

Ajax로 실행되는 HTTP 통신은 XMLHttpRequest 규격을 이용하고 있다.

이렇다할 표준은 아니지만 기본 통신 으로 가장 많이 사용되고 있다.


XMLHttpRequest를 지원하는 브라우저

Microsoft Internet Explorer 4.0이후 

Mozilla Firefox 1.0 이후

Netscape 7 이후

Opera 7.6이후

Safari 1.2 이후

Konqueror 3 이후



Ajax의 핵심인 XMLHttpRequest에 의한 송수신 흐름

사용자쪽에서 진행

1. XMLHttpRequest 오브젝트 작성

new XMLHttpRequest()

new ActiveXObject("Microsoft.XMLHTTP")

new ActiveObject("MSXML2.XMLHTTP")


2. HTTP요청 발생

open() 메소드

(POST, GET, 요청하는 url, 동기/ 비동기 지정)

send()메소드

(데이터송신)



서버측에서 진행

1. onreadystatechange 이벤트 (송수신 상태가 변할 때 시작)

  * IE 이외 브라우저에서는 콜백 스타일의 onload 이벤트도 이용 가능


2. readyState 프로퍼티(송수신 상태를 나타내는 값 "4" 송신 완료)

   * onload의 경우는 필요하지 않음


3. responseText 또는 responseXML(데이터를 텍스트 또는 DOMDocument로 수신)



XMLHttpRequest 작성법

윈도우 익스플로러 XMLHtttpRequest 선언문

var request = new ActiveXObject("Microsoft.XMLHTTP");

익스플로러 버전 4.0부터 5.5까지


또는

var request = new ActiveXObject("MSXML2.XMLHTTP");

익스플로러 버전 6.0부터 


MSXML2는 


윈도우 익스플로러 외에는 XMLHttpRequest 선언문

var request = new XMLHttpRequest();


소스코드

<script type="text/javascript">

    function createHttpRequest() {

       

        //윈도우 익스플로러 버전이 4,5,6 버전이라면

        if (window.ActiveXObject) {

            try{

                return new ActiveXObject("Msxml2.XMLHTTP");

            } catch (e) {

                try{

                    return new ActiveXObject("Microsoft.XMLHTTP");

                } catch (e2) {

                    return null;

                }

            }

            //아니면 Win Mac Linux ml, fl, 08 Mac sl Linux k3

        } else if (window.XMLHttpRequest) {

 

        } else {

            return null;

        }

    }

</script>

 


반응형