'Ajax'에 해당되는 글 3건

  1. 2010.01.07 :: 프록시 관련.
  2. 2009.05.18 :: Ajax Link
  3. 2009.05.06 :: Ajax기초
Ajax 2010. 1. 7. 12:41
http://www.parosproxy.org/index.shtml



http://blog.pages.kr/517  보안쪽에서 많이 사용한다함.

http://okjsp.tistory.com/tag/fiddler

피들러 : 통신하는 내용 볼수 있음.프락시 툴 같은 것임.통신하면서 눈에 보이지 않는것까지 모두 다 보면서 개발자들은 디버깅할때 주로 사용.

보안에서도 중간에 값을 변조해서 테스트 하고 자바스크립트로 값을 제어할 경우 자바스크립트로 숫자만 입력되도록 한 경우라면 실제 입력은 숫자뿐 안되겠지만 숫자 입력하고 중간에서 문자로 바꿔치기해서 보내면 받는 쪽에서 검증하지 않으면 통과됨.그런 테스트 할때 쓰이기도 하고 그렇지


왔다 갔다 하는 모든 내용들을 눈으로 보는거고 중간에서 변조도 가능하고 디버깅할때 어디에 문제가 있는지 확인하기도 하고 그렇지
posted by 나는너의힘
:
Ajax 2009. 5. 18. 00:23

Ajax 입문


Ajax 기본 정리 : http://wiki.javajigi.net/pages/viewpage.action?pageId=3919


IBM Ajax 강좌 : http://www-128.ibm.com/developerworks/kr/library/wa-ajaxintro1.html


Foundations of Ajax 소스 및 강좌 : http://blog.naver.com/jinoxst/140021512014


참고 사이트 정리 : http://cafe.naver.com/ajaxdev/37



Ajax 기술 정리


Ajax 클라이언트 측 정리 : http://wiki.javajigi.net/pages/viewpage.action?pageId=3921


Ajax 서버 측 정리 : http://wiki.javajigi.net/pages/viewpage.action?pageId=3920


Ajax 패턴 정리 : http://ajaxpatterns.org/Patterns



Ajax 읽어볼만한 글


Web 2.0 정리 : http://wiki.javajigi.net/pages/viewpage.action?pageId=4182


Web 2.0과 Ajax 애플리케이션 : http://cafe.naver.com/ajaxdev/4


Ajax의 효용성에 대한 논문 : http://cafe.naver.com/ajaxdev/101


posted by 나는너의힘
:
Ajax 2009. 5. 6. 11:19

Ajax란?

Asynchronous JavaScript and XML(비동기 방식의 자바스크립트와 XML)

Ajax를 구성하는 요소들

  • XMLHttpRequest : 웹 서버와 통신담당. 사용자의 요청을 웹에 전송, 웹서버로부터 받은 결과를 웹 브라우저에 전달
  • DOM : 문서의 구조를 나타낸다.
  • CSS : 글자 색, 배경색, 위치, 투명도 등등 UI관련 부분
  • 자바스크립트 : 사용자로 부터 이벤트(마우스 드래그나 버튼 클릭)를 받아 XMLHttpRequest객체을 통해서 웹서버에 요청 밑 응답을 받아 화면 조작

Ajax와 기존방식의 차이점

  • 웹 브라우저가 아닌 XMLHttpReqeust 객체가 웹 서버와 통신
  • 웹 서버의 응답 결과가 HTML이 아닌 XML 또는 단순 텍스트
  • 페이지의 이동없이 결과가 화면에 반영

XMLHttpRequest 객체


XMLHttpRequest 프로그래밍 순서

  1. XMLHttpReqeust 객체 구하기
  2. 웹 서버에 요청 전송하기
  3. 웹 서버서 응답이 도착하면 화면에 반영하기

1. XMLHttpRequest 객체 구하기

IE와 나머지 브라우저가 서로 다름. IE는 ActiveX 컴포넌트로 제공하며, 나머지 브라우저들은 XMLHttpRequest클래스를 기본적으로 제공하고 있다.
<script type="text/javascript">
  var httpRequest = null;

  function getXMLHttpRequest() {
    // IE
    if (window.ActiveXObject) {
      try {
        return new ActiveXObject("Msxml2.XMLHTTP");
      } catch(e) {
        try {
          return new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e1) { return null; }
      }
    }
    // FF, Opera...
    else if (window.XMLHttpRequest) {
      return new XMLHttpRequest();
    } else {
      return null;
    }
  }
</script>

2. 웹 서버에 요청 전송하기


  • open() 함수 : 요청의 초기화, GET/POST 방식 선택, 접속할 URL
  • send() 함수 : 웹 서버에 요청전송

2.1 open()함수의 인자

httpReqeust.open("GET", url, true);
순서대로
  1. HTTP 메소드(GET, POST)
  2. 접속할 URL
  3. 동기/비동기 방식 지정

2.2 GET방식 전달의 예

httpRequest = getXMLHttpRequest();
httpReqeust.open("GET", "/test.jsp?id=2&passwd=1111", true);
httpReqeust.send(null);

2.3 POST방식 전달의 예

httpRequest = getXMLHttpRequest();
httpReqeust.open("POST", "/test.jsp", true);
httpReqeust.send("id=2&passwd=1111");

3. 서버응답 처리하기

3.1 onreadystatechange, 콜백함수

httpRequest = getXMLHttpRequest();
httpRequest.onreadystatechange = callbackFunction;
httpReqeust.open("POST", "/test.jsp", true);
httpReqeust.send("id=2&passwd=1111");

// 콜백 함수 function callbackFunction() {
    ....
}

3.2 readStatus

바로위의 httpRequest.onreadystatechange에서 명시한 콜백함수는 readyStatus라는 프로퍼티의 값이 변경 될때마다 호출된다.

의 미 설 명
0 UNINITIALIZED 객체만 생성되고 아직 초기화되지 않은 상태(open메소드가 호출되지 않음)
1 LOADING open메소드가 호출되고 아직 send메소드가 불리지 않은 상태
2 LOADED send메소드가 불렸지만 status와 헤더는 도착하지 않은 상태
3 INTERACTIVE 데이터의 일부를 받은 상태
4 COMPLETED 데이터를 전부 받은 상태. 완전한 데이터의 이용 가능

 function callbackFunction() {
  if(httpRequest.readyState == 1 || httpRequest.readyState == 2 ||
   httpRequest.readyState == 3) {
   // 작업중임
  } else if(httpRequest.readyState == 4) {
   // 서버에서 완전한 응답이 도착한 경우
   // 응답결과에 따라 알맞은 작업 처리
  }
 }

readyState 값이 2, 3 인 경우 웹 브라우저에 따라 다르게 처리된다. 따라서 readyState의 값을 사용할 때는 1과 4를 사용하는 것이 크로스브라우저를 지원할 수 있는 가장 알맞은 밥법이다.

3.3 status/statusText

웹 서버로부터 응답이 도착하면 웹 서버에서 처리가 올바르게 수행되었는지 확인해야한다. XMLHpptRequest객체는 웹 서버가 전달한 상태코드를 status 프로퍼티에 저장한다.
텍스트 설 명
200 OK 요청 성공
403 Forbidden 접근 거부
404 Not Found 페이지 없음
500 Internal Server Error 서버 오류 발생
XMLHttpReqeust는 statusText프로퍼티도 제공하는데, 위의 표의 텍스트 문장을 저장한다. (오페라 8.51버전까지는 제공하지 않는다고 함.)

지금까지의 소스~
 function callbackFunction() {
  if(httpRequest.readyState == 1 || httpRequest.readyState == 2 || {
    httpRequest.readyState == 3) {
    // 작업중임
  } else if(httpRequest.readyState == 4) {
   // 서버에서 완전한 응답이 도착한 경우
   // 응답결과에 따라 알맞은 작업 처리
   if(httpRequest.status == 200) {
    //정상적으로 수행
   } else {
    alert("문제 발생 : " + httpRequest.status);
   }
  }
 }

3.4 responseText

서버로부터 응답이 도착한 것을 확인, 서버가 요청을 바르게 수행했을 경우 (readyState == 4 && status == 200) 단순 텍스트로 참조
posted by 나는너의힘
: