Ajax란 빠르게 동작하는 웹 페이지를 만들기 위한 개발 기법이다.
페이지 전체를 다시 로딩하지 않고도 웹 페이지의 일부분만을 갱신할 수 있으며, 백그라운드 영역에서 서버와 통신하여 그 결과를 웹 페이지의 일부분에만 표시할 수 있다. 이 때 서버와 데이터를 주고받을 수 있는데 대표적인 데이터는 JSON, XML, HTML, 텍스트 등이 있다.
Ajax의 가장 핵심적 요소이며, 웹 브라우저가 서버와 데이터를 교환할 때 사용된다.
따라서 서버에 요청을 보내기 위해서는 xhr 객체를 생성해야 하고, 객체의 open()
메서드를 통해 통로를 열어주고 send()
메서드를 통해 요텅을 보내주는 과정을 거쳐야한다.
open()
open(전달방식, URL주소, 비동기여부);
send()
작성된 Ajax 요청을 서버로 전달하는 메서드
GET방식 : send();
POST방식 : send("키=값");
Ajax 요청시 xhr 객체는 상태별로 readyState가 바뀐다.
처음에는
0 (XMLHttpRequest.UNSET) 이었다가, open()
메서드를 호출하는 순간
1 (XMLHttpRequest.OPENED) 로 바뀌고 send()
호출시 순차적으로
2 (XMLHttpRequest.HEADERS_RECEIVED)
3 (XMLHttpRequest.LOADING)
4 (XMLHttpRequest.DONE) 로 바뀐다.
최종적으로 readyState가 4가 된다면 상태코드 (xhr.status
) 가 성공을 가리키는 200이나 201일 때 응답을 확인한다.
전송할 데이터의 양이 작고 노출되어도 무방하면 GET 방식을 사용하고
전송할 데이터의 양이 크거나 노출되면 안될 데이터라면 POST 방식을 사용한다.