웹 주소의 존재 여부 확인 방법으로는 여러가지가 있겠으나
웹 서버로 HEAD 만을 요청함으로써 전송 데이터를 최소화 할 수 있다.

다음은 XMLHttpRequest 오브젝트를 이용한 자바스크립에서의 사용 예제이다.

<html>
<head>
<title>웹주소 존재 확인</title>

<script language="JavaScript">

    // XMLHttpRequest 객체 생성
    function newXMLHttpRequest()
    {
        var xmlReq = false;

        if(window.XMLHttpRequest)
        {
            xmlReq = new XMLHttpRequest();
        }
        else if(window.ActiveXObject)
        {
            try
            {
                xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e1)
            {
                try
                {
                    xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e2)
                {

                }
            }
        }

        return xmlReq;
  }

  function ConfirmURL(URL)
  {
    if (URL == "")
    {
        alert("URL 주소를 입력하세요.");
        return;
    }

    REQ = null;
    REQ = newXMLHttpRequest();

    // 헤더 요청 결과에 따른 처리 함수
    REQ.onreadystatechange = processReqChange;

    // 웹서버로 헤더만 요청함으로써 전송 데이터 최소화
    REQ.open("HEAD", URL, true);
    REQ.send(null);

    return true;
    }

    function processReqChange()
    {
        if(REQ.readyState == 4)
        {   // Complete : 모든 데이터가 전송. responseBody나 responseText를 사용한 모든 데이터 전송 완료
            if(REQ.status == 200)
            {
                // 정상적으로 헤더를 받으면 OK
                alert( "존재하는 URL 입니다.");
                return;
            }
            else
            {
                alert( "존재하지 않는 URL 입니다. state=" + REQ.status);
                return;
            }
        }
    }
</script>
</head>
<body>

<input type="text" name="URL" value="<A href='http://www.korea.com"><br'>http://www.korea.com"><br</A>>
<input type="button" value="URL 존재 확인" onclick="ConfirmURL(document.all.URL.value)">

</body>
</html>

2006/06/09 11:42 2006/06/09 11:42

트랙백 주소 :: http://optant.ismine.net/blog/trackback/5

댓글을 달아 주세요

  1. 용재님 2006/06/10 04:50  댓글주소  수정/삭제  댓글쓰기

    쩝... 이건 로컬피씨에서 실행 할 때만 된단다.
    XMLHTTPRequest로 작업 할 때 외부주소로 접근하면 권한 오류 발생.
    그래서 ASP로 변경해야하는데,,
    XMLHTTPRequest는 Single User Base라 ASP에서는 ServerXMLHTTP를 사용하라네..

    암튼,, 수정해서 다시 올려야겠다.