JavaScript, XMLHttpRequest
웹 페이지에서 데이터를 서버로부터 비동기적으로 가져오고 화면을 새로 고치지 않고도 동적으로 업데이트할 수 있게 해줍니다.
이전에는 전체 페이지를 다시 불러와야 했지만, Ajax를 사용하면 필요한 데이터만 서버로 요청하고, 그 응답을 받아와 페이지의 일부분만 업데이트 할 수 있습니다.
장점
- 비동기 통신으로 새로고침 하지 않고 데이터를 주고 받는다.
- 필요한 데이터만 전송하므로 화면에 빠르게 표시할 수 있고 (빠른 응답), 서버 부하를 줄일 수 있다.
- 일부분만 업데이트 되므로 사용자가 작업중인 내용이나 위치에는 영향을 끼지지 않는다.
- 다양한 기능(무한 스크롤, 아이디 중복확인..)
단점
- 클라이언트 사이드에서 실행되므로 보안에 취약할 수 있따.
- 페이지 이동이 없는 통신으로 인해 보안상의 문제가 있다
- Ajax를 쓸 수 없는 브라우저에 대한 이슈(호환성 문제)
- Ajax로 동적으로 생성된 콘텐츠는 초기에는 검색 엔진에 잘 인식되지 않을 수 있다.
- 연속적으로 데이터를 요청할 경우 서버 부하를 증가시킬 수 있다
- 비동기적으로 동작하기 때문에 (script로 작성하기 때문에) 디버깅이 어려울 수 있고, 오류를 추적하기 어려울 수 있다.
❗ 보안과 호환성 문제 고려!!