Today
-
Total
-
  • [XMLHttpRequest] XMLHttpRequest란 무엇일까
    Coding/etc 2019. 9. 18. 14:33

    XMLHttpRequest

    대부분의 웹 브라우저에서는 서버로부터 데이터를 요청하는 XMLHttpRequest 객체를 내장하고 있습니다.

    이름만 보면 XML 데이터만 다룰 수 있을 것 같지만 사실은 모든 데이터를 다룰 수 있으며, AJAX 프로그래밍에서 주로 사용됩니다.

    XMLHttpRequest를 이용하면 웹 페이지를 전부 로딩하고도 서버로부터 데이터를 요청하거나 전송받을 수 있으며, 웹 페이지를 전부 로딩하지 않고도 일부만을 갱신하는 게 가능해집니다.

    XMLHttpRequest를 사용하기 위해서는 다음과 같은 형태로 객체를 생성해주어야 합니다.

    var xmlHttp = new XMLHttpRequest();

    readyState

    XMLHttpRequest가 현재 어떤 상태인지는 readyState를 통해 알 수 있으며, readyState는 상황별로 다음과 같이 변합니다.

    1. UNSENT (숫자 0) : XMLHttpRequest 객체가 생성됨.

    2. OPENED (숫자 1) : open() 메소드가 성공적으로 실행됨.

    3. HEADERS_RECEIVED (숫자 2) : 모든 요청에 대한 응답이 도착함.

    4. LOADING (숫자 3) : 요청한 데이터를 처리 중임.

    5. DONE (숫자 4) : 요청한 데이터의 처리가 완료되어 응답할 준비가 완료됨.


    status

    status는 객체로 전송받을 문서의 현재 상태를 나타냅니다

    • 00 : 서버에 문서가 존재함
    • 404 : 서버에 문서가 존재하지 않음.
      ## responseText, responseXML

    responseText는 서버로부터 전송받은 데이터를 문자열 형태로 저장하고,
    responseXML은 서버로부터 전송받은 데이터를 XML DOM의 형태로 저장합니다.


    비동기식 요청

    XMLHttpRequest의 장점은 서버에게 데이터 요청을 보내면서도 다른 일을 할 수 있는 비동기식 요청이 가능하다는 것입니다.
    비동기식 요청을 위해서는 데이터를 받는 open() 메소드의 세번째 매개변수로 true를 넣어주면 됩니다.

    xmlHttp.open("GET", "/media/programming_languages.xml", true);

    댓글