À¥ ÇÁ·Î±×·¡¹Ö¿¡¼´Â ºê¶ó¿ìÀúÀÇ ¿äû¿¡ ÀÀ´äÀ» ÇØ¾ß ÇÑ´Ù. Á¤»óÀûÀÎ ÀÀ´äÀÌµç ºñÁ¤»óÀÌµç ºê¶ó¿ìÀú´Â ±× °á°ú¸¦ Ç¥½ÃÇÑ´Ù. À̹ø ÁÖÁ¦´Â AJAX ¸¦ ÀÌ¿ëÇÏ¿© ¼¹öÀÇ »óŸ¸À» È®ÀÎÇØ º¼ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦½ÃÇϰíÀÚ ÇÑ´Ù. ¼¹öÀÇ »óŸ¦ È®ÀÎÇϱâ À§Çؼ´Â ƯÁ¤ ¸®¼Ò½º url ·Î ¿äûÀ» º¸³»¸é µÈ´Ù. ÇÏÁö¸¸ ¼¹ö´Â ÀÀ´äÁ¤º¸¸¦ ºê¶ó¿ìÀú¿¡ º¸³»°Ô µÇ´Âµ¥, ÀÌ·²°æ¿ì¿¡ ÀÀ´äÁ¤º¸ÀÇ ¸ðµç ºÎºÐÀÌ ÇÊ¿äÇÏÁö´Â ¾Ê´Â´Ù. ´ÜÁö Çì´õÁ¤º¸¸¸ ¾òÀ» ¼ö ÀÖÀ¸¸é ¼¹öÀÇ »óŸ¦ ÆÄ¾ÇÇÒ ¼ö ÀÖ´Ù.
Áö±Ý±îÁö XMLHttpRequest °´Ã¼ÀÇ open(method, url, asynch) ¸Þ¼ÒµåÀÇ method ¿¡´Â GET ¹× POST ¸¸À» »ç¿ëÇß¾ú´Ù. ÇÏÁö¸¸ HEAD À» »ç¿ëÇϸé, Áï ºê¶ó¿ìÀú°¡ HEAD ¿äûÀ» º¸³»¸é, HEAD ¿äûÀ» ¹ÞÀº ¼¹ö´Â ÀÀ´äÀ» º¸³¾¶§ body ÀÇ ³»¿ëÀº »©¹ö¸®°í Çì´õ Á¤º¸¸¸ ä¿ö¼ º¸³»°Ô µÈ´Ù. µû¶ó¼ ¿À°í°¡´Â Á¤º¸ÀÇ ¾çÀÌ ±ØÈ÷ Áٱ⶧¹®¿¡ ºê¶ó¿ìÀú¿¡¼ ½Ã°£°£°ÝÀ¸·Î ¼¹öÀÇ »óŸ¦ Á¡°ËÇϴµ¥ ¾ÆÁÖ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
À̹ø ÁÖÁ¦ÀÇ ¿¹Á¦¸¦ »ìÆìº¸ÀÚ.
[»ùÇñ¸Çöº¸±â]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Reading Response Headers</title>
<script type="text/javascript">
var xmlHttp;
var requestType = "";
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function doHeadRequest(request, url) {
requestType = request;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("HEAD", url, true);
xmlHttp.send(null);
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(requestType == "allResponseHeaders") {
getAllResponseHeaders();
}
else if(requestType == "lastModified") {
getLastModified();
}
else if(requestType == "isResourceAvailable") {
getIsResourceAvailable();
}
}
}
function getAllResponseHeaders() {
alert(xmlHttp.getAllResponseHeaders());
}
function getLastModified() {
alert("Last Modified: " + xmlHttp.getResponseHeader("Last-Modified"));
}
function getIsResourceAvailable() {
if(xmlHttp.status == 200) {
alert("Successful response");
}
else if(xmlHttp.status == 404) {
alert("Resource is unavailable");
}
else {
alert("Unexpected response status: " + xmlHttp.status);
}
}
</script>
</head>
<body>
<h1>Reading Response Headers</h1>
<a href="javascript:doHeadRequest('allResponseHeaders', 'example9.xml');">Read All Response Headers</a>
<br/>
<a href="javascript:doHeadRequest('lastModified', 'example9.xml');">Get Last Modified Date</a>
<br/>
<a href="javascript:doHeadRequest('isResourceAvailable', 'example9.xml');">Read Available Resource</a>
<br/>
<a href="javascript:doHeadRequest('isResourceAvailable', 'not-available.xml');">Read Unavailable Resource</a>
</body>
</html>
<example9.html ÀÇ Àüü ¼Ò½º>
<?xml version="1.0" encoding="UTF-8"?>
<readingResponseHeaders>
</readingResponseHeaders>
<example9.xml ÀÇ Àüü ¼Ò½º>
Áö±Ý±îÁö GET ȤÀº POST ¹æ½Ä¸¸À» »ç¿ëÇØ ¿¹Á¦¸¦ ÀÛ¼ºÇß´ø »ý°¢À» ¶°¿Ã·Á º¼¶§ À̹ø ¿¹Á¦ÀÇ À¯ÀÏÇÑ Â÷ÀÌÁ¡Àº xmlHttp.open("HEAD", url, true); ÀÌ´Ù. HEAD ´Â ¼¹ö¿¡ ¿äûÀ» º¸³¾¶§ HEAD ¿äûÀ» º¸³»´Â °ÍÀ¸·Î ¿äûÀ» ¹ÞÀº ¼¹ö´Â body ÀÇ Á¤º¸¸¦ ¾Æ¹«°Íµµ ä¿ìÁö ¾Ê°í ´ÜÁö Çì´õ Á¤º¸¸¸À» ³Ö¾î¼ ºê¶ó¿ìÀú·Î º¸³»°Ô µÇ´Ù.
ÀǽÉÀÌ °£´Ù¸é readingResponseHeaders.xml ÆÄÀÏ¿¡ ³»¿ëÀ» ä¿îÈÄ ¾Æ·¡¿Í °°ÀÌ Äڵ带 ¼öÁ¤Çؼ ½ÇÇàÇØº¸ÀÚ.
function getAllResponseHeaders() {
alert(xmlHttp.getAllResponseHeaders());
alert(xmlHttp.responseText);
alert(xmlHttp.responseXML.getElementsByTagName("readingResponseHeaders")[0].firstChild.nodeValue);
}
ù¹øÂ° alert() ¸¸ Çì´õÁ¤º¸¸¦ Ç¥½ÃÇÏ°í µÎ¹øÂ°, ¼¼¹øÂ°´Â ¾Æ¹«·± ¾Æ¹«·± °ªµµ ¾øÀ» °ÍÀÌ´Ù.(open ¸Þ¼ÒµåÀÇ HEAD ¸¦ GET À¸·Î ¼öÁ¤ÇÑ ÈÄ ´Ù½Ã ½ÇÇàÇØ º¸¸é µÎ¹øÂ°, ¼¼¹øÂ° ¸ðµÎ °ªÀ» Ãâ·ÂÇÒ °ÍÀÌ´Ù.)
µû¶ó¼ ¼¹öÀÇ »óŸ¸À» Á¡°ËÇÏ´Â °ÍÀ̶ó¸é HEAD ¿äûÀ» »ç¿ëÇÏ´Â °ÍÀÌ ºê¶ó¿ìÀú¿Í ¼¹ö°£ ¿À°í°¡´Â µ¥ÀÌÅÍÀÇ ¾çÀÌ ¸Å¿ì Àû¾îÁö±â ¶§¹®¿¡ ¼¹ö¿¡ ºÎÇϸ¦ ÃÖ¼ÒÈ ÇÏ´Â ¹æ½ÄÀ̶ó°í ÇϰڴÙ.
[»ùÇñ¸Çöº¸±â]