HTTP 프로토콜과 Ajax

최근 JavaScript 주변의 공부를 시작했으므로, 노트 대신에 정리해 갑니다.
주로 자신의 학습의 흐름을 되돌아보고 남기는 형태이므로 여러가지, 생략하고 있습니다.
Web 엔지니어의 여러 선배님으로부터 어드바이스나 지적을 받을 수 있으면 다행입니다!

HTTP 프로토콜이란?



HTTP (Hyper Text Transfer Protocol)는 클라이언트 (예 : Chrome 등)와 웹 서버간에 HTML로 작성된 웹 페이지와 이미지, 음성 파일 등을 전송하여 웹 (World Wide Web)의 세계를 통신하기 위해 의 프로토콜(통신 규약)입니다.

메시지나 자원에 특수 문자, 일본어 등의 복수 바이트의 문자 바이트가 포함되어 있는 경우는 URL encode를 하고 나서 송신한다.

HTTP를 통한 통신



HTTP에서 클라이언트는 서버에 요청 메시지를 보내고 서버는 이에 대한 응답을 반환합니다. 통상의 경우는 HTTP 리퀘스트를 돌려주면 브라우저를 갱신해 버려, 페이지 천이하는 경우등에 브라우저의 상태를 리셋트 해 버립니다.

응답을 반환하면 서버는 초기 상태로 돌아가고 서버는 클라이언트의 상태를 저장하지 않습니다. 또 통상의 HTTP 통신에서는 동기 통신이므로 응답이 돌아올 때까지 잠겨 아무것도 할 수 없는 상태가 됩니다.



Ajax란?



기존의 동기 통신을 개선하기 위해 만들어진 것이 Ajax입니다.
Ajax(Asynchronus JavaScript and XML)는 서버와 통신을 하기 위한 기술입니다.
XMLHttpRequest라는 JavaScript 객체를 이용하여 웹 서버와 비동기 통신을 수행합니다.
DOM 조작을 이용하여 다이나믹하게 웹 페이지를 재작성하는 프로그래밍 기법입니다.

비동기 통신이란 서버에서 응답이 돌아올 때까지 기다리지 않고 다른 작업을 진행할 수 있습니다. 이 기간 동안 사용자는 다른 작업을 수행할 수 있습니다. 반대로 동기 통신이란 응답이 돌아올 때까지 다른 작업을 할 수 없습니다.

Ajax의 중요한 기능은 페이지를 전환하지 않고 서버와 통신하는 것입니다.

Ajax를 이용한 통신



Ajax를 이용한 서비스로 유명한 것은 Google map입니다.
이 경우 사용자가보고 싶은 위치가 변경되면 클라이언트 측 JavaScript 프로그램이 현재 페이지에서 누락 된 부분을 찾은 다음 요청을 보내도록 요청합니다. 서버는 이 요청을 수신하고 누락된 데이터 부분만 전송합니다. 클라이언트는 이것을 수신하고 DOM을 사용하여 필요한 부분을 변경하고 표시합니다.

  • Ajax의 특징
  • 최소한의 데이터 통신만으로 처리가 빠르고 서버에 대한 부하가 적고 통신 트래픽에 대한 부하도 작습니다
  • 비동기 통신을 수행하는 사용자의 작업을 잠그지 않음
  • 웹 페이지의 갱신은 클라이언트측에서 행해, 페이지 천이를 수반하지 않는 부분 변경을 실시하기 때문에, 고속으로 묘화할 수 있다.

  • 좋은 웹페이지 즐겨찾기