티스토리 뷰
해당 포스트는 web scraping(web crawling)을 위한 기본적인 내용인 Ajax에 대한 내용입니다.
정의
Ajax란 Asynchronous JavaScript and XML의 약자입니다.
Ajax는 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 기술입니다.
Ajax 의 Asynchronous를 보면 비동기적이라는 것을 확인할 수 있습니다.
해당 비동기라는 것은 웹 페이지의 일부분만을 비동기적으로 갱신할 수 있다는 의미입니다.
보통은 웹 페이지를 전체를 갱신하기 때문에 시간이 오래걸립니다. 그래서 Ajax라는 기능이 나왔습니다.
즉, Ajax를 이용하면 백그라운드에서 서버와 통신하여, 해당 리턴 값을 웹 페이지의 일부분에 표시할 수 있습니다.
이때, Ajax는 다양한 형태의 데이터를 주고받을 수 있습니다.
-
JSON
-
XML
-
HTML
-
텍스트 파일 등
AJAX 구성 요소
Ajax는 여러가지의 구성요소를 포함한 기술로서 다음과 같은 기술들이 존재한다.
XMLHttprequest : 웹서버와 통신을 담당함. 사용자의 요청을 웹서버에 전송 및 웹서버로부터 받은 결과를 웹브라우저에 전달함
DOM : 문서의 구조를 나타냄, 폼 등의 정보나 화면 구성을 조작할때 사용함
CSS : 글자색,배경색,위치,투명도 등 UI관련 부분을 담당
자바스크립트 : 사용자가 마우스를 드래그하거나 버튼을 클릭하면 XMLHttpRequest객체를 사용해 웹서버에 요청을 전송함.
XMLHttpRequest 객체로부터 응답이 오면 DOM, CSS등을 사용해 화면을 조작함.
한계
Ajax를 이용하면 여러 장점을 가지지만, Ajax로도 다음과 같은 일들은 처리할 수 없습니다.
1. Ajax는 클라이언트가 서버에 데이터를 요청하는 클라이언트 풀링 방식을 사용한다. 서버 푸시 방식의 실시간 서비스는 만들 수 없습니다.
즉, Ajax는 클라이언트에서 요구하는 방식이므로, 서버에서 요구하는 방식인 서버 푸시 방식의 실시간 서비스는 불가능하다.
2. Ajax로는 바이너리 데이터를 이용한 통신이 불가능하다.
3. 연속으로 서버에 데이터를 요청하는 경우 서버에 과부하가 걸릴 수 있다.
4. XMLHttpRequest를 통해 통신을 하는 도중 사용자에게 아무런 진행 정보가 주어지지 않는다. 그래서 아직 요청이 완료되지 않았는데 사용자가 페이지를 떠나는 경우 오작동의 가능성이 크다.
'Web Scraping(Crawling)' 카테고리의 다른 글
Beautiful Soup 과 DOM을 이용한 웹 스크래핑(web scraping) (0) | 2019.10.10 |
---|---|
DOM(Document Object Model) (0) | 2019.10.10 |
XHR (XML Http Request) 이란 (0) | 2019.10.07 |
.bash_profile .bashrc 차이점 (0) | 2019.10.06 |
OSX Mac brew python version 관리 (0) | 2019.10.06 |
- Total
- Today
- Yesterday
- bashrc
- bash_profile
- homebrew
- 쿠키
- BREW
- OSX
- Python
- IOT
- Internet of Things
- 세션
- cookie
- Session
- data visualization
- Anaconda
- XHR
- deck.gl
- XMLHTTPRequest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |