HTTPs in java dev @IBM
×î½üÔÚ¿ª·¢Ò»¸öСµÄESBϵͳ£¬»áÔÚÕâÀïճһЩ¾õµÃ»áÓõĵ½µÄÎÄÕ¡£
³ö×Ô£ºwww.ibm.com.cn MattTowers 2002Äê10ÔÂ08ÈÕ
ÕªÒª
ʹÓà HTTPS£¨Hypertext Transfer Protocol Secure °²È«³¬Îı¾´«ÊäÐÒ飩²¢·ÇÄãËùÏëµÄÄÇÑù¼òµ¥Ö±½Ó¡£Èç¹ûÄãÔø¾³¢ÊÔÔÚ Java ¿Í»§¶ËºÍ HTTPS ·þÎñÆ÷Ö®¼ä½øÐа²È«µÄͨѶ£¬Ò²Ðí»á×¢Òâµ½±ê×¼µÄ java.net.URL Àಢ²»Ö§³Ö HTTPSÐÒé¡£ÕâÆªÎÄÕ½«ÏòÄãչʾ£¬ÈçºÎʹÓà JDK 1.2-compatible ÐéÄâ»ú»ò΢ÈíµÄ JDK 1.1-compatible JView À´¿Ë·þÕâЩÏÞÖÆ¡£
Èç¹ûÄãÔø¾³¢ÊÔÔÚ Java ¿Í»§»úºÍ HTTPS£¨°²È«³¬Îı¾´«ÊäÐÒ飩·þÎñÆ÷Ö®¼ä½øÐа²È«µÄͨѶ£¬Ò²Ðí»á×¢Òâµ½±ê×¼µÄ java.net.URL Àಢ²»Ö§³Ö HTTPS ÐÒé¡£·þÎñ¶Ë½â¾ö´ËÎÊÌâµÄ·½·¨ÊǷdz£¼òµ¥Ã÷Á˵ġ£ÒòΪÏÖ½ñ¼¸ºõËùÓеÄWeb·þÎñÆ÷¶¼Ê¹Óà HTTPS ÐÒéÀ´Ìṩ²éѯÊý¾ÝµÄ»úÖÆ¡£Ò»µ©ÅäÖúÃÄãµÄ·þÎñÆ÷£¬ÈκÎä¯ÀÀÆ÷Ö»Òª¼òµ¥µØ½« URL µØÖ·ÖеÄÐÒéÖ¸¶¨³É HTTPS £¬¾ÍÄܹ»ÔÚÄãµÄ·þÎñÆ÷Éϰ²È«µØ½øÐÐÐÅÏ¢²éѯ¡£Èç¹ûÄãûÓдÆð HTTPS ·þÎñÆ÷£¬Ôò¿ÉÒÔÔÚ»¥ÁªÍøÉϼ¸ºõËùÓÐ HTTPS ÍøÒ³ÖвâÊÔÄãµÄ¿Í»§¶Ë´úÂë¡£ÔÚ×ÊÁϲ¿·Ö¸ø³öÁËÒ»¸öÁÐ±í£¬ÀïÃæÁгöÈô¸É¿É¹©Äã½øÐÐ HTTPS ͨѶ²âÊԵķþÎñÆ÷µØÖ·¡£
È»¶ø´Ó¿Í»§¶ËµÄ½Ç¶ÈÀ´¿´£¬ÔÚÊìϤµÄ HTTP ºóÃæ¼òµ¥µÄ¼ÓÉÏ“S”¾ÍÄܹ»°²È«Í¨ÐÅ¡£ÕâÖÖ¼òµ¥ÐÔ³äÂúÁËÃÔ»óÐÔ¡£ÊÂʵÉÏ£¬ä¯ÀÀÆ÷ÔÚºǫ́×öÁË´óÁ¿µÄ¹¤×÷£¬ÒÔ±£Ö¤Ã»ÓÐÈκÎÈ˴۸ĻòÇÔÌýÄãËù·¢Ë͵ÄÇëÇóÊý¾Ý¡£È»¶ø HTTPS ÐÒéÓÃÀ´¼ÓÃܵÄËã·¨ÊÇ RSA Security ËùÓµÓеÄרÀû£¨ÕâÖÖ×´¿öÖÁÉÙ»¹Òª³ÖÐø¼¸¸öÔ£©¡£¸Ã¼ÓÃÜËã·¨µÃµ½ÁËä¯ÀÀÆ÷ÖÆÔìÉ̵ÄÐí¿É£¬µ« Sum Microsystems ¹«Ë¾È´²»Í¬Ò⽫Ëü°ó¶¨µ½±ê×¼µÄ Java URL ÀàʵÏÖÖС£Õâ¾Íµ¼Öµ±Äã´´½¨ URL ¶ÔÏóʱ£¬Èô½«ÐÒéÖ¸¶¨Îª HTTPS£¬¾Í»áÅ׳öÒ»¸ö MalformedURLException Òì³£¡£
ÐÒÔ˵ÄÊÇ£¬ÎªÁ˽â¾öÕâ¸ö¾ÖÏÞ£¬Java¹æ¸ñ˵Ã÷ÊéÌṩΪ URL ÀàÑ¡ÔñÒ»¸ö´úÌæµÄÁ÷¾ä±úµÄÄÜÁ¦¡£È»¶øµ±ÄãʹÓò»Í¬µÄÐéÄâ»ú( virtual machine )ʱ£¬´Ë¼¼ÊõµÄʵÏÖ·½·¨Ò²ÊDz»Í¬µÄ¡£ÔÚ΢ÈíµÄ JDK 1.1-compatible ÐéÄâ»ú JView ÖУ¬Î¢ÈíÐí¿É¸Ã¼ÓÃÜËã·¨²¢ÌṩÁËÒ»¸ö HTTPS Á÷¾ä±ú×÷ΪËüµÄ wininet °üµÄÒ»²¿·Ö¡£¶øSUN×î½üΪËüµÄ JDK 1.2-compatible ÐéÄâ»ú·¢²¼ÁË Java Secure Sockets Extension£¨JSSE£©£¬ÔÚ JSSE ÀïÐí¿É²¢ÌṩÁË HTTPS Á÷¾ä±ú¡£±¾ÎĽ«¾ßÌå²ûÊöÈçºÎʹÓà JSSE ºÍ΢ÈíµÄ wininet °üÀ´ÊµÏÖ HTTPS Á÷¾ä±ú¡£
JDK 1.2-compatible ÐéÄâ»ú
ÔÚ JDK 1.2-compatible ÐéÄâ»úÖÐʹÓà H
Ïà¹ØÎĵµ£º
//1.JavaÖÐ×Ö·û´®²»ÄܶàÐÐÊéд¡£¶àÐÐÊéдÓÃÒýºÅ¸ô¶Ï£¬¼ÓºÅÏàÁ¬¡£
//2.JavaµÄ±êʶ·û¿ÉÒÔÓÃÃÀÔª·ûºÅ¿ªÍ·¡£
//3.JavaÖÐûÓÐÎÞ·ûºÅ±äÁ¿»òÎÞ·ûºÅ³£Á¿µÄ¸ÅÄî¡£ËùÓеıäÁ¿¶¼ÊÇÓзûºÅµÄ¡£
//4.JavaÖбäÁ¿µÄ×Ö³¤Êǹ̶¨µÄ¡£²»´æÔÚcharºÍwcharÖ®·Ö¡£
//5.JavaÖбäÁ¿Î ......
// multi.MultiServer.java
package multi;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class MultiServer {
private int port = 8000;
private int backlog = 42;
private ServerSocket server_socket;
private Thread ......
¶ÔÓÚJava³ÌÐò£¬ÎÞÂÛÊÇδ´ò°üµÄ»¹ÊÇ´ò°üµÄJAR»òWARÎļþ£¬ÓÐʱºò¶¼ÐèÒª»ñÈ¡ËüÔËÐÐËùÔÚĿ¼ÐÅÏ¢£¬ÈçºÎ×öµ½ÕâÒ»µãÄØ£¿
ÔÚJava´¦ÀíµÄÎļþϵͳÖУ¬Ä¿Â¼µÄ±íʾ·½Ê½ÓÐÁ½ÖÖ£º
£¨1£©¾ø¶ÔĿ¼£¬ËüÒÔ"/"ΪÆðʼ×Ö·û£¬´ú±í´Ó¸ùĿ¼Ï¿ªÊ¼Ñ°ÕÒ¸ø³öµÄĿ¼£¬Èç/c:/java
£¨2£©Ïà¶Ô·¾¶£¬ËüÒÔ²»´ø“/”µÄĿ¼Ãû±íʾ£¬±íʾÒÔµ±Ç ......
ͨ³£Í¨¹ýrequest.getRemoteAddr()
È¡µÃ¿Í»§¶ËµÄIPµØÖ·£¬×ö¼øÈ¨ºÍУÑ飬Â߼ûÎÊÌ⣬ÄÇô¿Ï¶¨request.getRemoteAddr()³öÁËÎÊÌ⣬googleÏ£¬·¢ÏÖÓÐÈËÓöµ½ÀàËÆµÄÎÊÌâ¡£
×îÖÕ¶¨Î»Îªrequest.getRemoteAddr()ÕâÖÖ·½·¨Ôڴ󲿷ÖÇé¿ö϶¼ÊÇÓÐЧµÄ¡£µ«ÊÇÔÚͨ¹ýÁËApache,SquidµÈ·´Ïò´úÀíÈí¼þ¾Í²»ÄÜ»ñÈ¡µ½¿Í»§¶ËµÄÕæÊµIPµØÖ·ÁË¡£
......
ÃæÏò¶ÔÏó±à³ÌÓÐÈý¸öÌØÕ÷£¬¼´·â×°¡¢¼Ì³ÐºÍ¶à̬¡£
·â×°Òþ²ØÁËÀàµÄÄÚ²¿ÊµÏÖ»úÖÆ£¬´Ó¶ø¿ÉÒÔÔÚ²»Ó°ÏìʹÓÃÕßµÄǰÌáϸıäÀàµÄÄÚ²¿½á¹¹£¬Í¬Ê±±£»¤ÁËÊý¾Ý¡£
¼Ì³ÐÊÇΪÁËÖØÓø¸Àà´úÂ룬ͬʱΪʵÏÖ¶à̬ÐÔ×÷×¼±¸¡£ÄÇôʲôÊǶàÌ¬ÄØ£¿
·½·¨µÄÖØÐ´ ......