Ŭ¶óÀÌ¾ðÆ®°¡ ¸Þ½ÃÁö¸¦ ¿äûÇÏ°í ±×¸®°í HTTP¼¹ö°¡ ó¸®ÇÏ´Â °úÁ¤Àº ¸î´Ü°èÀÇ ÀýÂ÷¸¦ °ÅÄ¡°Ô µË´Ï´Ù. ÀÌ·¯ÇÑ ÀýÂ÷µéÀº À¥ºê¶ó¿ìÁ®³ª ¼ºí¸´ ÀÚü¿¡¼µµ ¼û°ÜÁ® ÀÖÁö¸¸ ÀÌ ÀýÂ÷¸¦ ÁöŰ¸é¼ ÇÁ·Î±×·¥À» ÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ¸Þ½ÃÁö¸¦ ¿äûÇÒ ¶§ HTTP¼¹ö°¡ ó¸®ÇÏ´Â °úÁ¤À» ±×¸²À¸·Î ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

¸ÕÀú ¿©·¯ºÐÀº Request ¸Þ½ÃÁö¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ±×¸®°í Request¸Þ½ÃÁö¸¦ HTTPÀ¥¼¹ö·Î º¸³»¸é Responseµ¥ÀÌÅ͸¦ ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀ» ÇÁ·Î±×·¥À¸·Î Áõ¸íÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
|
RequestMessage.java |
Request Message¿Í Response Message Áõ¸í |
|
| |
|
C:\jakarta\webapps\MySample\WEB-INF\classes\chap4>javac RequestMessage.java
| |
Åë½ÅÇϱâ À§ÇÑ ¼ÒÄÏÀ» »ý¼ºÇϰí ÀÖ½À´Ï´Ù. ÇöÀç ¿¬°áÇÏ·Á°í ÇÏ´Â ¼¹ö´Â http://kr.yahoo.com/index.htmlÀÔ´Ï´Ù. ŸÄÏ URLÀ» ÀÌ¿ëÇÏ¿© ¼ÒÄÏÀ» »ý¼ºÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
n InetAddress webServer = InetAddress.getByName("kr.yahoo.com");
n Socket httpPipe = new Socket(webServer, 80);//À¥¼¹öÆ÷Æ®:80
¼ÒÄÏÀÌ ¹«»çÈ÷ »ý¼ºµÇ¾ú´Ù¸é ¿©·¯ºÐµéÀº ÇØ´ç ¼ÒÄÏ¿¡ ÀԷ½ºÆ®¸²°ú Ãâ·Â½ºÆ®¸²À» »ý¼ºÇϽøé ÇØ´ç À¥¼¹ö·Î µ¥ÀÌÅ͸¦ º¸³»°Å³ª µ¥ÀÌÅ͸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½°ú °°Àº ±¸¹®À¸·Î »ý¼ºµÈ ¼ÒÄÏ¿¡ ½ºÆ®¸²À» ¿°í ÀÖ½À´Ï´Ù.
n InputStream is = httpPipe.getInputStream();
n PrintStream os = new PrintStream(httpPipe.getOutputStream());
½ºÆ®¸²ÀÌ »ý¼ºµÇ¾ú´Ù¸é Ãâ·Â½ºÆ®¸²À» ÀÌ¿ëÇÏ¿© ¿¬°áµÈ À¥¼¹ö¿¡ ¿äû¸Þ½ÃÁö¸¦ º¸³À´Ï´Ù. ¿äû¸Þ½ÃÁö¸¦ ¸¸µå´Â ¹æ¹ý¿¡ ´ëÇØ¼´Â ÀÌÀü Àý¿¡¼ ³íÇÏ¿´À¸´Ï Âü°íÇϽñ⠹ٶø´Ï´Ù. °ø¹éÀ» »ðÀÔÇØ¾ßÇÏ´Â °ÍÀ» ÀØÁö¸¶½Ã±â ¹Ù¶ø´Ï´Ù.
n os.println("GET " + "/index.html" + " HTTP/1.0\n");
Ãâ·Â ½ºÆ®¸²À¸·Î Request¸Þ½ÃÁö¸¦ º¸³½´Ù¸é ¼ÒÄÏ¿¡ ¿¬°áµÈ ÀԷ½ºÆ®¸²À¸·Î µ¥ÀÌÅͰ¡ µé¾î¿À°Ô µÉ °ÍÀÔ´Ï´Ù. µ¥ÀÌÅ͸¦ ByteArrayStream¿¡ ÀûÀçÇϰí ÀûÀçµÈ ¹ÙÀÌÆ®µéÀ» ¼ºí¸´ÀÇ out½ºÆ®¸²À¸·Î Ãâ·ÂÇØ¼ º¸³»°í ÀÖ½À´Ï´Ù.
n int temp;
n ByteArrayOutputStream baos = new ByteArrayOutputStream();
n while ( (temp = is.read())!=-1) {
n baos.write(temp);
n }
n out.write(baos.toByteArray());
Ŭ¶óÀÌ¾ðÆ®°¡ Àü¼ÛÇÏ´Â Response ¸Þ½ÃÁöÀÇ ±¸¼ºµµ´Â ´ÙÀ½°ú °°½À´Ï´Ù.

Response ¸Þ½ÃÁö´Â Response »óÅ ¶óÀΰú Çì´õºÎºÐ ±×¸®°í µ¥ÀÌÅÍ ºÎºÐÀ¸·Î ³ª´µ¾î Áý´Ï´Ù.
Response ¸Þ½ÃÁöÀÇ ±¸¼º¿ä¼Ò
n Response Status Line
n Header Line
n Body(data)
Response »óŶóÀÎÀº Version°ú »óŸ¦ ³ªÅ¸³»´Â Ç¥½Ã°¡ µé¾î ÀÖ½À´Ï´Ù.
n HTTP/1.1 200 OK
ÇöÀç´Â 200 OK¸¦ Ç¥½ÃÇϰí ÀÖÁö¸¸ ´Ù¾çÇÑ »óŸ¦ Ç¥½ÃÇϱâ À§ÇÑ ¹øÈ£¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌ ¹øÈ£´Â »óÅ¿¡ µû¶ó¼ ´Ù¸£°Ô Ç¥½ÃµÇ´Âµ¥ ´ëÇ¥ÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â »óŹøÈ£¸¦ »ìÆìº¸¸é ´ÙÀ½°ú °°½À´Ï´Ù.
n 200 OK: Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀÌ ¼º°øÀûÀ¸·Î ¼öÇàµÊ
n 301 Moved Permanently: ¿äû URLÀÌ À̵¿µÇ¾úÀ¸¸ç »õ·Î¿î À§Ä¡°¡ Á¤ÇØÁü
n 400 Bad Request: ¼¹ö°¡ ÀÌÇØÇÒ ¼ö ¾ø´Â ¿äû ¸Þ½ÃÁö
n 404 Not Found : ÇØ´ç À¥¼¹ö¿¡¼ ¿äû URLÀ» ãÀ» ¼ö ¾øÀ½
n 505 HTTP Version Not Supported: ÇöÀçÀÇ ¹öÁ¯¿¡¼´Â Áö¿øÇÏÁö ¾ÊÀ½
±×¸®°í HeaderºÎºÐÀº RequestÀÇ Çì´õºÎºÐ°ú ¸¶Âù°¡Áö·Î ÇìµåÀ̸§°ú °ªÀ¸·Î ±¸ºÐµÇ¾î ÀÖÀ¸¸ç Response¿¡ ÇÊ¿äÇÑ Çì´õµéÀ» Æ÷ÇÔÇϰí ÀÖ½À´Ï´Ù.
n Date: Wed, 06 Mar 2002 17:25:03 GMT
n P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
n Last-Modified: Wed, 06 Mar 2002 13:42:14 GMT
n ETag: "34b842-93d0-3c861cb6"
n Accept-Ranges: bytes
n Content-Length: 37840
n Connection: close
n Content-Type: text/html
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºJSP1ºÎ ÀúÀÚ:ÃÖ¿µ°ü |