ʵսWEB ·þÎñÆ÷£¨JAVA±àдWEB·þÎñÆ÷£©
¡¡¡¡Ò»¡¢³¬Îı¾´«ÊäÐÒé
¡¡¡¡¡¡¡¡1.1 HTTPÇëÇó
¡¡¡¡¡¡¡¡1.2 HTTPÓ¦´ð
¡¡¡¡¶þ¡¢SocketÀà
¡¡¡¡Èý¡¢ServerSocketÀà
¡¡¡¡ËÄ¡¢Web·þÎñÆ÷ʵÀý
¡¡¡¡¡¡¡¡4.1 HttpServerÀà
¡¡¡¡¡¡¡¡4.2 RequestÀà
¡¡¡¡¡¡¡¡4.3 ResponseÀà
¡¡¡¡Îå¡¢±àÒëºÍÔËÐÐ
¡¡¡¡===================
¡¡¡¡ÕýÎÄ£º
¡¡¡¡===================
¡¡¡¡Web·þÎñÆ÷Óë¿Í»§¶ËµÄͨÐÅʹÓÃHTTPÐÒ飨³¬Îı¾´«ÊäÐÒ飩£¬ËùÒÔÒ²½Ð×öHTTP·þÎñÆ÷¡£ÓÃJava¹¹ÔìWeb·þÎñÆ÷Ö÷ÒªÓöþ¸öÀ࣬java.net.SocketºÍjava.net.ServerSocket£¬À´ÊµÏÖHTTPͨÐÅ¡£Òò´Ë£¬±¾ÎÄÊ×ÏÈÒªÌÖÂÛµÄÊÇHTTPÐÒéºÍÕâÁ½¸öÀ࣬ÔÚ´Ë»ù´¡ÉÏʵÏÖÒ»¸ö¼òµ¥µ«ÍêÕûµÄWeb·þÎñÆ÷¡£
¡¡¡¡Ò»¡¢³¬Îı¾´«ÊäÐÒé
¡¡¡¡Web·þÎñÆ÷ºÍä¯ÀÀÆ÷ͨ¹ýHTTPÐÒéÔÚInternetÉÏ·¢ËͺͽÓÊÕÏûÏ¢¡£HTTPÐÒéÊÇÒ»ÖÖÇëÇó-Ó¦´ðʽµÄÐÒé——¿Í»§¶Ë·¢ËÍÒ»¸öÇëÇ󣬷þÎñÆ÷·µ»Ø¸ÃÇëÇóµÄÓ¦´ð¡£HTTPÐÒéʹÓÿɿ¿µÄTCPÁ¬½Ó£¬Ä¬È϶˿ÚÊÇ80¡£HTTPµÄµÚÒ»¸ö°æ±¾ÊÇHTTP/0.9£¬ºóÀ´·¢Õ¹µ½ÁËHTTP/1.0£¬ÏÖÔÚ×îеİ汾ÊÇHTTP/1.1¡£HTTP/1.1ÓÉ RFC 2616 ¶¨Ò壨pdf¸ñʽ£©¡£
¡¡¡¡±¾ÎÄÖ»¼òÒª½éÉÜHTTP 1.1µÄÏà¹ØÖªÊ¶£¬µ«Ó¦¸Ã×ãÒÔÈÃÄãÀí½âWeb·þÎñÆ÷ºÍä¯ÀÀÆ÷·¢Ë͵ÄÏûÏ¢¡£Èç¹ûÄãÒªÁ˽â¸ü¶àµÄϸ½Ú£¬Çë²Î¿¼RFC 2616¡£
¡¡¡¡ÔÚHTTPÖУ¬¿Í»§¶Ë/·þÎñÆ÷Ö®¼äµÄ»á»°×ÜÊÇÓɿͻ§¶Ëͨ¹ý½¨Á¢Á¬½ÓºÍ·¢ËÍHTTPÇëÇóµÄ·½Ê½³õʼ»¯£¬·þÎñÆ÷²»»áÖ÷¶¯ÁªÏµ¿Í»§¶Ë»òÒªÇóÓë¿Í»§¶Ë½¨Á¢Á¬½Ó¡£ä¯ÀÀÆ÷ºÍ·þÎñÆ÷¶¼¿ÉÒÔËæÊ±ÖжÏÁ¬½Ó£¬ÀýÈ磬ÔÚä¯ÀÀÍøÒ³Ê±Äã¿ÉÒÔËæÊ±µã»÷“Í£Ö¹”°´Å¥Öжϵ±Ç°µÄÎļþÏÂÔØ¹ý³Ì£¬¹Ø±ÕÓëWeb·þÎñÆ÷µÄHTTPÁ¬½Ó¡£
¡¡¡¡1.1 HTTPÇëÇó
¡¡¡¡HTTPÇëÇóÓÉÈý¸ö²¿·Ö¹¹³É£¬·Ö±ðÊÇ£º·½·¨-URI-ÐÒé/°æ±¾£¬ÇëÇóÍ·£¬ÇëÇóÕýÎÄ¡£ÏÂÃæÊÇÒ»¸öHTTPÇëÇóµÄÀý×Ó£º
GET /servlet/default.jsp HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/ch8/SendDetails.htm
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
userName=JavaJava&userID=javaID
¡¡¡¡ÇëÇóµÄµÚÒ»ÐÐÊÇ“·½·¨-URI-ÐÒé/°æ±¾”£¬ÆäÖÐGET¾ÍÊÇÇëÇó·½·¨£¬/servlet/default.jsp±íʾURI£¬HTTP/1.1ÊÇÐÒéºÍÐÒéµÄ°æ±¾¡£¸ù¾ÝHTTP±ê×¼£¬HTTPÇëÇó¿ÉÒÔʹÓöàÖÖÇëÇó·½·¨¡£ÀýÈ磬HTTP 1.1Ö§³ÖÆß
Ïà¹ØÎĵµ£º
ºÃ¼¸Ììûд²©¿Í£¬Õ⼸Ì춼æ×Åд´úÂ룬ÖÐÆÚ¼ì²é¸Õ¹ý£¬ºóÃæÊ£ÏµÄʱ¼äʵ¼ÊºÜÉÙÁË£¬Òª×¥½ôʱ¼äÁË£¬ÂíÉϾ͵ñÏÒµ×ßÈËÁË¡£ÑÔ¹éÕý´«£¬ÔÚ±àÂë¹ý³ÌÖÐÓöµ½µÄÎÊÌ⣬ÎÒ¶¼¼Ç¼ÔÚ²©¿ÍÖУ¬·½±ãÒÔºó²éÔÄдÂÛÎÄ¡£Õâ´ÎÊǼÆËãÍøÂçµØÖ·£¬¸ø³öÒ»¸öipºÍËüµÄ×ÓÍøÑÚÂ룬ͨ¹ýÔËËãµÃµ½ÍøÂçµØÖ·£¨»òÕß˵ÊÇÍøÂçºÅ£©
public static ......
volatile¹Ø¼ü×ÖÓÐʲôÓã¿
¿ÖűȽÏÒ»ÏÂvolatileºÍsynchronizedµÄ²»Í¬ÊÇ×îÈÝÒ×½âÊÍÇå³þµÄ¡£volatileÊDZäÁ¿ÐÞÊηû£¬¶øsynchronizedÔò×÷ÓÃÓÚÒ»¶Î´úÂë»ò·½·¨£»¿´ÈçÏÂÈý¾äget´úÂ룺
int i1; ......
ÔÚͨ¹ýDNS²éÕÒÓòÃûµÄ¹ý³ÌÖУ¬¿ÉÄܻᾹý¶ą̀ÖмäDNS·þÎñÆ÷²ÅÄÜÕÒµ½Ö¸¶¨µÄÓòÃû£¬Òò´Ë£¬ÔÚDNS·þÎñÆ÷ÉϲéÕÒÓòÃûÊǷdz£°º¹óµÄ²Ù×÷¡£ÔÚJavaÖÐΪÁË»º½âÕâ¸öÎÊÌ⣬ÌṩÁËDNS»º´æ¡£µ±InetAddressÀàµÚÒ»´ÎʹÓÃij¸öÓòÃû£¨Èçwww.csdn.net£©´´½¨InetAddress¶ÔÏóºó£¬JVM¾Í»á½«Õâ¸öÓòÃûºÍËü´ÓDNSÉÏ»ñµÃµÄÐÅÏ¢£¨ÈçIPµØÖ·£©¶¼±£´æÔÚDNS»º´æÖ ......
×÷ΪJava³ÌÐòÔ±À´Ëµ£¬×îÍ´¿àµÄÊÂÇéιýÓÚ¿ÉÒÔÑ¡ÔñµÄ·¶Î§Ì«¹ã£¬¿ÉÒÔ¶ÁµÄÊéÌ«¶à£¬ÍùÍùÈÝÒ×ÎÞËùÊÊ´Ó¡£ÎÒÏë¾ÍÎÒ×Ô¼º¶Á¹ýµÄ¼¼ÊõÊé¼®ÖÐÌôÑ¡³öÀ´Ò»Ð©£¬°´ÕÕѧϰµÄÏȺó˳Ðò£¬ÍƼö¸ø´ó¼Ò£¬ÌرðÊÇÄÇЩÏë²»¶ÏÌá¸ß×Ô¼º¼¼ÊõˮƽµÄJava³ÌÐòÔ±ÃÇ¡£
¡¡¡¡Ò»¡¢Java±à³ÌÈëÃÅÀà
¡¡¡¡¶ÔÓÚûÓÐJava±à³Ì¾ÑéµÄJava³ÌÐòÔ±ÒªÈëÃÅ£¬Ëæ±ã¶ÁʲôÈëÃÅÊé ......
ͨ³£Çé¿öÏ£¬ÎÒÃÇÔÚ±àдjavaÎļþʱ£¬»áÓÐÒýÓõ½×ÔÒѶ¨ÒåµÄһЩÀ࣬Èç¹û°´Í¨³£µÄjavac *.javaµÄÐÎʽÀ´±àÒë»á³öÏÖÕÒ²»µ½·ûºÅµÄ´íÎó¡£
ÒÔÏÂÌṩÁËÁ½ÖÖ·½·¨£¬ÒÔ¹©²Î¿¼
¼ÙÈçÔÚd:\web\wshÏÂÓÐa.javaºÍb.javaÁ½¸öÎļþ£¬ÔÚb.javaÎļþÖÐÓÐÒýÓÃÁËa.java¡£ÏÂÃæÊDZàÒëµÄ·½·¨
·½·¨Ò»:
½øÈëd:\web\wshÏ£º javac a.java
È»ºóÍ˳öwshÄ ......