Let's Go!

·¢²¼ÐÂÈÕÖ¾

  • javaʱ¼ä²Ù×÷º¯Êý»ã×Ü

    2011-07-28 17:10:04

     

    javaʱ¼ä²Ù×÷º¯Êý»ã×Ü

    ¾­³£Óõ½Ê±¼äÈÕÆÚÀ࣬ËùÒԾͽ«³£ÓõÄÈÕÆÚ·½·¨ºÍÊôÐÔ¶¼¹éÄÉ×ܽáÈçÏ£¬·½±ã´ó¼Ò²éÕÒ
    1.¼ÆËãijһÔ·ݵÄ×î´óÌìÊý
    Calendar time=Calendar.getInstance();
    time.clear();
    time.set(Calendar.YEAR,year);
    time.set(Calendar.MONTH,i-1);//×¢Òâ,Calendar¶ÔÏóĬÈÏÒ»ÔÂΪ0
    int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//±¾Ô·ݵÄÌìÊý
    ×¢£ºÔÚʹÓÃset·½·¨Ö®Ç°£¬×îºÃÏÈclearһϣ¬·ñÔòºÜ¶àÐÅÏ¢»á¼Ì³Ð×Ôϵͳµ±Ç°Ê±¼ä
    2.CalendarºÍDateµÄת»¯
    (1) Calendarת»¯ÎªDate
    Calendar cal=Calendar.getInstance();
    Date date=cal.getTime();
    (2) Dateת»¯ÎªCalendar
    Date date=new Date();
    Calendar cal=Calendar.getInstance();
    cal.setTime(date);
    3.¸ñʽ»¯Êä³öÈÕÆÚʱ¼ä
    Date date=new Date();
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    System.out.println(df.format(date));
    4.¼ÆËãÒ»ÄêÖеĵڼ¸ÐÇÆÚ
    (1)¼ÆËãijһÌìÊÇÒ»ÄêÖеĵڼ¸ÐÇÆÚ
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH, 9);
    cal.set(Calendar.DAY_OF_MONTH, 3);
    int weekno=cal.get(Calendar.WEEK_OF_YEAR);
    (2)¼ÆËãÒ»ÄêÖеĵڼ¸ÐÇÆÚÊǼ¸ºÅ
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.WEEK_OF_YEAR, 1);
    cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    System.out.println(df.format(cal.getTime()));
    Êä³ö:
    2006-01-02
    5.add()ºÍroll()µÄÓ÷¨
    (1)add()·½·¨
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal=Calendar.getInstance();
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH, 9);
    cal.set(Calendar.DAY_OF_MONTH, 3);
    cal.add(Calendar.DATE, -4);
    Date date=cal.getTime();
    System.out.println(df.format(date));
    cal.add(Calendar.DATE, 4);
    date=cal.getTime();
    System.out.println(df.format(date));
    Êä³ö£º
    2006-08-30
    2006-10-03
    (2)roll·½·¨
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.MONTH, 9);
    cal.set(Calendar.DAY_OF_MONTH, 3);
    cal.roll(Calendar.DATE, -4);
    date=cal.getTime();
    System.out.println(df.format(date));
    cal.roll(Calendar.DATE, 4);
    date=cal.getTime();
    System.out.println(df.format(date));
    Êä³ö£º
    2006-10-29
    2006-10-03
    ¿É¼û£¬roll()·½·¨ÔÚ±¾ÔÂÄÚÑ­»·£¬Ò»°ãʹÓÃadd()·½·¨£»
    6.¼ÆËãÁ½¸öÈÎÒâʱ¼äÖмäµÄ¼ä¸ôÌìÊý
    (1)´«½øCalendar¶ÔÏó
    /** *//**¼ÆËãÁ½¸öʱ¼äÖ®¼äÏà¸ôÌìÊý
    * @param startday ¿ªÊ¼Ê±¼ä
    * @param endday ½áÊøʱ¼ä
    * @return
    */
    public int getIntervalDays(Calendar startday,Calendar endday)...{
    //È·±£startdayÔÚendday֮ǰ
    if(startday.after(endday))...{
    Calendar cal=startday;
    startday=endday;
    endday=cal;
    }
    //·Ö±ðµÃµ½Á½¸öʱ¼äµÄºÁÃëÊý
    long sl=startday.getTimeInMillis();
    long el=endday.getTimeInMillis();

    long ei=el-sl;
    //¸ù¾ÝºÁÃëÊý¼ÆËã¼ä¸ôÌìÊý
    return (int)(ei/(1000*60*60*24));
    }
    (2)´«½øDate¶ÔÏó
    /** *//**¼ÆËãÁ½¸öʱ¼äÖ®¼äÏà¸ôÌìÊý
    * @param startday ¿ªÊ¼Ê±¼ä
    * @param endday ½áÊøʱ¼ä
    * @return
    */
    public int getIntervalDays(Date startday,Date endday)...{
    //È·±£startdayÔÚendday֮ǰ
    if(startday.after(endday))...{
    Date cal=startday;
    startday=endday;
    endday=cal;
    }
    //·Ö±ðµÃµ½Á½¸öʱ¼äµÄºÁÃëÊý
    long sl=startday.getTime();
    long el=endday.getTime();

    long ei=el-sl;
    //¸ù¾ÝºÁÃëÊý¼ÆËã¼ä¸ôÌìÊý
    return (int)(ei/(1000*60*60*24));
    }ͬÀí£¬¿ÉÒÔÓÃÏàͬµÄ·½·¨¼ÆËã³öÈÎÒâÁ½¸öʱ¼äÏà¸ôµÄСʱÊý£¬·ÖÖÓÊý£¬ÃëÖÓÊýµÈ
    ×¢£ºÒÔÉÏ·½·¨ÊÇÍêÈ«°´Ê±¼ä¼ÆË㣬ÓÐʱ²¢²»ÄÜÁîÈËÂúÒ⣬È磺
    startday="2006-10-11 20:00:00"
    endday="2006-10-12 8:00:00"
    ¼ÆËã½á¹ûΪ0£¬µ«ÊÇÎÒÃÇÒ²ÐíÏàÈüÆËã½á¹û±äΪ1£¬´Ëʱ¿ÉÒÔÓÃÈçÏ·½·¨ÊµÏÖ£º
    ÔÚ´«²Î֮ǰ£¬ÏÈÉ趨enddayµÄʱ¼ä£¬È磺
    endday.set(Calendar.HOUR_OF_DAY, 23);
    endday.set(Calendar.MINUTE, 59);
    endday.set(Calendar.SECOND, 59);
    endday.set(Calendar.MILLISECOND, 59);
    ÕâÑùÔÙ´«½øÈ¥startday,endday£¬Ôò½á¹û¾ÍÈçÎÒÃÇËùÔ¸ÁË¡£²»¹ý£¬Èç¹ûÏÓÒÔÉÏ·½·¨Âé·³£¬¿ÉÒԲο¼ÒÔÏ·½·¨£º
    (3)¸Ä½ø¾«È·¼ÆËãÏà¸ôÌìÊýµÄ·½·¨
    public int getDaysBetween (Calendar d1, Calendar d2) ...{
    if (d1.after(d2)) ...{ // swap dates so that d1 is start and d2 is end
    java.util.Calendar swap = d1;
    d1 = d2;
    d2 = swap;
    }
    int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
    int y2 = d2.get(Calendar.YEAR);
    if (d1.get(Calendar.YEAR) != y2) ...{
    d1 = (Calendar) d1.clone();
    do ...{
    days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//µÃµ½µ±ÄêµÄʵ¼ÊÌìÊý
    d1.add(Calendar.YEAR, 1);
    } while (d1.get(Calendar.YEAR) != y2);
    }
    return days;
    }


    »ñȡϵͳµ±Ç°Ê±¼ä£º
    public static String getSystemTime(){
    Date date=new Date();
    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return df.format(date);
    }

    //×Ö·û´®×ª»¯³Éʱ¼äÀàÐÍ£¨×Ö·û´®¿ÉÒÔÊÇÈÎÒâÀàÐÍ£¬Ö»ÒªºÍSimpleDateFormatÖеĸñʽһÖ¼´¿É£©

    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US);

    java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM");


    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    String mDateTime1=formatter.format(d);


       //µ±Ç°Ê±¼ä

       Calendar cal = Calendar.getInstance();

    // SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss G E D F w W a E F");

       String mDateTime=formatter.format(cal.getTime());



       //1ÄêÇ°ÈÕÆÚ

       java.util.Date myDate=new java.util.Date();

       long myTime=(myDate.getTime()/1000)-60*60*24*365;

       myDate.setTime(myTime*1000);

       String mDate=formatter.format(myDate);

      

       //Ã÷ÌìÈÕÆÚ

       myDate=new java.util.Date();

       myTime=(myDate.getTime()/1000)+60*60*24;

       myDate.setTime(myTime*1000);

       mDate=formatter.format(myDate);



    //Á½¸öʱ¼äÖ®¼äµÄÌìÊý

       SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

       java.util.Date date= myFormatter.parse("2003-05-1");

       java.util.Date mydate= myFormatter.parse("1899-12-30");

       long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);





    //¼Ó°ëСʱ

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    java.util.Date date1 = format.parse("2002-02-28 23:16:00");

    long Time=(date1.getTime()/1000)+60*30;

    date1.setTime(Time*1000);

    String mydate1=formatter.format(date1);







    //ÄêÔÂÖÜÇóÈÕÆÚ

    SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");

    java.util.Date date2= formatter2.parse("2003-05 5 ÐÇÆÚÎå");

    SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");

    String mydate2=formatter3.format(date2);



    //ÇóÊÇÐÇÆÚ¼¸

    mydate= myFormatter.parse("2001-1-1");

    SimpleDateFormat formatter4 = new SimpleDateFormat("E");

    String mydate3=formatter4.format(mydate);

    ÔÚ ¿ª·¢webÓ¦ÓÃÖУ¬Õë¶Ô²»Í¬µÄÊý¾Ý¿âÈÕÆÚÀàÐÍ£¬ÎÒÃÇÐèÒªÔÚÎÒÃǵijÌÐòÖжÔÈÕÆÚÀàÐÍ×ö¸÷ÖÖ²»Í¬µÄת»»¡£Èô¶ÔÓ¦Êý¾Ý¿âÊý¾ÝÊÇoracleµÄDateÀàÐÍ£¬¼´Ö» ÐèÒªÄêÔÂÈյģ¬¿ÉÒÔÑ¡ÔñʹÓÃjava.sql.DateÀàÐÍ£¬Èô¶ÔÓ¦µÄÊÇMSsqlserverÊý¾Ý¿âµÄDateTimeÀàÐÍ£¬¼´ÐèÒªÄêÔÂÈÕʱ·ÖÃëµÄ£¬Ñ¡ Ôñjava.sql.TimestampÀàÐÍ
    Äã¿ÉÒÔʹÓÃdateFormat¶¨Òåʱ¼äÈÕÆڵĸñʽ£¬×ªÒ»¸ö×Ö·û´®¼´¿É

    package personal.jessica;
    import java.util.Date;
    import java.util.Calendar;
    import java.sql.Timestamp;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Locale;
    class Datetest{
    /**
    *method ½«×Ö·û´®ÀàÐ͵ÄÈÕÆÚת»»ÎªÒ»¸ötimestamp£¨Ê±¼ä´Á¼Çjava.sql.Timestamp£©
    *@param dateString ÐèҪת»»ÎªtimestampµÄ×Ö·û´®
    *@return dataTime timestamp
    */
    public final static java.sql.Timestamp string2Time(String dateString)
    throws java.text.ParseException {
    DateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//É趨¸ñʽ
    //dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date timeDate = dateFormat.parse(dateString);//utilÀàÐÍ
    java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//TimestampÀàÐÍ,timeDate.getTime()·µ»ØÒ»¸ölongÐÍ
    return dateTime;
    }
    /**
    *method ½«×Ö·û´®ÀàÐ͵ÄÈÕÆÚת»»ÎªÒ»¸öDate£¨java.sql.Date£©
    *@param dateString ÐèҪת»»ÎªDateµÄ×Ö·û´®
    *@return dataTime Date
    */
    public final static java.sql.Date string2Date(String dateString)
    throws java.lang.Exception {
    DateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date timeDate = dateFormat.parse(dateString);//utilÀàÐÍ
    java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sqlÀàÐÍ
    return dateTime;
    }

    public static void main(String[] args){
    Date da = new Date();
    //×¢Ò⣺Õâ¸öµØ·½da.getTime()µÃµ½µÄÊÇÒ»¸ölongÐ͵ÄÖµ
    System.out.println(da.getTime());

    //ÓÉÈÕÆÚdateת»»Îªtimestamp

    //µÚÒ»ÖÖ·½·¨£ºÊ¹ÓÃnew Timestamp(long)
    Timestamp t = new Timestamp(new Date().getTime());
    System.out.println(t);

    //µÚ¶þÖÖ·½·¨£ºÊ¹ÓÃTimestamp(int year,int month,int date,int hour,int minute,int second,int nano)
    Timestamp tt = new Timestamp(Calendar.getInstance().get(
    Calendar.YEAR) - 1900, Calendar.getInstance().get(
    Calendar.MONTH), Calendar.getInstance().get(
    Calendar.DATE), Calendar.getInstance().get(
    Calendar.HOUR), Calendar.getInstance().get(
    Calendar.MINUTE), Calendar.getInstance().get(
    Calendar.SECOND), 0);
    System.out.println(tt);

    try {
    String sToDate = "2005-8-18";//ÓÃÓÚת»»³Éjava.sql.DateµÄ×Ö·û´®
    String sToTimestamp = "2005-8-18 14:21:12.123";//ÓÃÓÚת»»³Éjava.sql.TimestampµÄ×Ö·û´®
    Date date1 = string2Date(sToDate);
    Timestamp date2 = string2Time(sToTimestamp);
    System.out.println("Date:"+date1.toString());//½á¹ûÏÔʾ
    System.out.println("Timestamp:"+date2.toString());//½á¹ûÏÔʾ
    }catch(Exception e) {
    e.printStackTrace();
    }
    }
    }

    ÏÂÃæÊÇÀý×Ó£º

    package test;

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;

    import java.util.Calendar;
    import java.util.Date;
    import java.util.Hashtable;

    import javax.swing.JOptionPane;

     

    public class Test2{

     public static boolean isdate(String s){
      String a[]=s.split("-");
      boolean flg=true;
      if(!(Integer.parseInt(a[0])>=1950 && Integer.parseInt(a[0])<=2050)){
        flg=false;
      }
      return flg;
     }
     
     public static boolean checkDate(String s){  
            boolean ret = true;  
            try{  
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
                ret = df.format(df.parse(s)).equals(s);  
            }  
            catch(ParseException e){  
                ret = false;  
            }  
            return ret;  
        }
     
     public Object dateinfo(String s){
      String a[]=s.split("-",2);
      Hashtable fest =new Hashtable();
      fest.put("01-01","Ôªµ©½Ú");
      fest.put("02-14","ÇéÈ˽Ú");
      fest.put("03-12","Ö²Ê÷½Ú");
      fest.put("03-15","Ïû·ÑÕß½Ú");
      fest.put("04-01","ÓÞÈ˽Ú");
      fest.put("04-05","ÇåÃ÷½Ú");
      fest.put("05-01","ÀͶ¯½Ú");
      fest.put("06-01","¶ùͯ½Ú");
      fest.put("07-01","½¨µ³½Ú");
      fest.put("08-01","½¨¾ü½Ú");
      fest.put("09-10","½Ìʦ½Ú");
      fest.put("10-01","¹úÇì½Ú");
      fest.put("12-25","Ê¥µ®½Ú");
      if(fest.containsKey(a[1])){
      return fest.get(a[1]);
      }
      else{
      return "ÎÞ½ÚÈÕ";
      }
     }
     
     public String xingzuo(Date s){
      Calendar cal = Calendar.getInstance();
      cal.setTime(s);
      String xingzuo="ÎÞ";
      int day=cal.get(Calendar.DAY_OF_YEAR);
      if((cal.get(Calendar.YEAR)%4==0)&&(cal.get(Calendar.YEAR)%100!=0)||(cal.get(Calendar.YEAR)%400==0)){
       if((day>=1 &&day<=19)||(day>=357&&day<=366)){
        xingzuo= "ħЫ×ù";
       }
       else if(day>=20 &&day<=49){
        xingzuo= "ˮƿ×ù";
       }
       else if(day>=50 &&day<=80){
        xingzuo= "Ë«Óã×ù";
       }
       else if(day>=81 &&day<=110){
        xingzuo= "°×Ñò×ù";
       }
       else if(day>=111 &&day<=141){
        xingzuo= "½ðÅ£×ù";
       }
       else if(day>=142 &&day<=173){
        xingzuo= "Ë«×Ó×ù";
       }
       else if(day>=174 &&day<=203){
        xingzuo= "¾Þз×ù";
       }
       else if(day>=204 &&day<=235){
        xingzuo= "ʨ×Ó×ù";
       }
       else if(day>=236 &&day<=266){
        xingzuo= "´¦Å®×ù";
       }
       else if(day>=267 &&day<=296){
        xingzuo= "Ìì³Ó×ù";
       }
       else if(day>=297 &&day<=326){
        xingzuo= "ÌìЫ×ù";
       }
       else if(day>=327 &&day<=356){
        xingzuo= "ÉäÊÖ×ù";
       }
      }
      else{
       if((day>=1 &&day<=19)||(day>=357&&day<=366)){
        xingzuo= "ħЫ×ù";
       }
       else if(day>=20 &&day<=48){
        xingzuo= "ˮƿ×ù";
       }
       else if(day>=49 &&day<=79){
        xingzuo= "Ë«Óã×ù";
       }
       else if(day>=80 &&day<=109){
        xingzuo= "°×Ñò×ù";
       }
       else if(day>=110 &&day<=140){
        xingzuo= "½ðÅ£×ù";
       }
       else if(day>=141 &&day<=172){
        xingzuo= "Ë«×Ó×ù";
       }
       else if(day>=173 &&day<=202){
        xingzuo= "¾Þз×ù";
       }
       else if(day>=203 &&day<=234){
        xingzuo= "ʨ×Ó×ù";
       }
       else if(day>=235 &&day<=265){
        xingzuo= "´¦Å®×ù";
       }
       else if(day>=266 &&day<=295){
        xingzuo= "Ìì³Ó×ù";
       }
       else if(day>=296 &&day<=325){
        xingzuo= "ÌìЫ×ù";
       }
       else if(day>=326 &&day<=355){
        xingzuo= "ÉäÊÖ×ù";
       }
      }
      return xingzuo;
     }
     
     public Date parseDate(String s){
      SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd");
       try {
        Date date3 = bartDateFormat.parse(s);
        date3=bartDateFormat.parse(s);
        return date3;
       }
       catch (Exception ex) {
        return null;
       }
     }

     public static void main(String[] args) {
      Calendar cal = Calendar.getInstance();
      Test2 test2=new Test2();
      String date1=JOptionPane.showInputDialog("ÇëÄãÊäÈëÈÕÆÚ£¬¸ñʽÈç2000-10-15");
      
      while(!(Test2.checkDate(date1)&&Test2.isdate(date1))){
       date1=JOptionPane.showInputDialog("ÇëÄãÊäÈëÈÕÆÚ£¬¸ñʽÈç2000-10-15");
      }
       SimpleDateFormat bartDateFormat1 = new SimpleDateFormat("yyyy,MM,dd,EEEE");
       SimpleDateFormat bartDateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
       Date date2=test2.parseDate(date1);
       String festinfo=(String)test2.dateinfo(date1);
       System.out.println(bartDateFormat1.format(date2) +","+ festinfo+","+ test2.xingzuo(date2));
      
       
       
       String day=JOptionPane.showInputDialog("ÇëÄãÊäÈëÒª²éѯNÌìºóµÄÈÕÆÚÐÅÏ¢");
       cal.setTime(date2);
       cal.add(Calendar.DATE, Integer.parseInt(day));
       String date5=bartDateFormat2.format(cal.getTime());
       festinfo=(String)test2.dateinfo(date5);
       System.out.println(bartDateFormat1.format(cal.getTime())+","+ festinfo+","+ test2.xingzuo(cal.getTime())); 
     }
    }

     

     

    ת×Ô£ºhttp://www.iteye.com/topic/256420

     

     

  • java -DµÄ²ÎÊý

    2011-07-28 10:04:38

    -D   set a system property(ÉèÖÃϵͳÊôÐÔ)

    ¿Éͨ¹ýÓï¾äSystem.getProperties().list(System.out);²é¿´ÓÐÄÄЩ²ÎÊý¿ÉÒÔÉèÖá£

    ¿ÉÉèÖõIJÎÊý:

    -- listing properties --
    java.runtime.name=Java(TM) 2 Runtime Environment, Stand...
    sun.boot.library.path=C:\Program Files\Java\jre1.5.0_08\bin
    java.vm.version=1.5.0_08-b03
    java.vm.vendor=Sun Microsystems Inc.
    java.vendor.url=http://java.sun.com/
    path.separator=;
    java.vm.name=Java HotSpot(TM) Client VM
    file.encoding.pkg=sun.io
    user.country=CN
    sun.os.patch.level=Service Pack 2
    java.vm.specification.name=Java Virtual Machine Specification
    user.dir=D:\wapSearchLogService
    java.runtime.version=1.5.0_08-b03
    java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
    java.endorsed.dirs=C:\Program Files\Java\jre1.5.0_08\lib...
    os.arch=x86
    java.io.tmpdir=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
    line.separator=

    java.vm.specification.vendor=Sun Microsystems Inc.
    user.variant=
    os.name=Windows XP
    sun.jnu.encoding=GBK
    java.library.path=C:\Program Files\Java\jre1.5.0_08\bin...
    java.specification.name=Java Platform. API Specification
    java.class.version=49.0
    sun.management.compiler=HotSpot Client Compiler
    os.version=5.1
    user.home=C:\Documents and Settings\Administrator
    user.timezone=Asia/Shanghai
    java.awt.printerjob=sun.awt.windows.WPrinterJob
    file.encoding=GBK
    java.specification.version=1.5
    user.name=Administrator
    java.class.path=D:\wapSearchLogService\bin;D:\wapSear...
    java.vm.specification.version=1.0
    sun.arch.data.model=32
    java.home=C:\Program Files\Java\jre1.5.0_08
    java.specification.vendor=Sun Microsystems Inc.
    user.language=zh
    awt.toolkit=sun.awt.windows.WToolkit
    java.vm.info=mixed mode, sharing
    java.version=1.5.0_08
    java.ext.dirs=C:\Program Files\Java\jre1.5.0_08\lib...
    sun.boot.class.path=C:\Program Files\Java\jre1.5.0_08\lib...
    java.vendor=Sun Microsystems Inc.
    file.separator=\
    java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
    sun.cpu.endian=little
    sun.io.unicode.encoding=UnicodeLittle
    sun.desktop=windows
    sun.cpu.isalist=

  • תÔØ£º²âÊÔÁ÷³Ì¡ª¡ªÑÛÊì

    2011-07-24 22:41:28

    ÔÚ¹úÍâ×öÈí¼þ²âÊÔ¹¤×÷µÄÌå»á



    ¾­³£ÔÚÍøÉÏ¿´µ½ÓÐÔÚ¹úÄÚ´ÓÊÂÈí¼þ²âÊÔµÄͬÐб§Ô¹£º²âÊÔ²»ÊÜÖØÊÓ£¬²âÊÔ¹ÜÀí»ìÂÒ£¬²úÆ·ÖÊÁ¿²îµÈÎÊÌ⡣˵µ½µ×ÕⶼÊǹÜÀíÉϵÄÎÊÌâ¡£

    ¡¡¡¡ÎÒÏë̸̸×ÔÉíµÄ¾­Àú¡£

    ¡¡¡¡ÎÒ±ÏÒµºóÔÚÍâ°ü¹«Ë¾¹¤×÷£¬¿Í»§ÊÇÒ»¼ÒÃÀ¹ú¹«Ë¾£¬²úÆ··¢Õ¹Ç°¾°Í¦ºÃ£¬Ò²ÓÐÒ»±Ê²»·ÆµÄ·çÏÕͶ×Ê¡£ÎÒÏë˵˵ËûÃǵIJâÊÔ¹ÜÀíÖƶȡ£

    ¡¡¡¡Ê×ÏÈ£¬ËûÃÇÓÐÒ»¸öºÜºÃµÄ×ÊÔ´¹²Ïíƽ̨£¬ÎÒÃǽÐWiki£¬ÉÏÃæ°üÀ¨Ã¿Ò»¸ö°æ±¾µÄÈÎÎñ£¬Ã¿Ò»ÏîÈÎÎñµÄ¿ª·¢¸ºÔðÈ˼°²âÊÔ¸ºÔðÈË£¬Ïà¹ØµÄSpecÒÔ¼°ÆäËû¿ª·ÅÎĵµ¡£¶øÇÒ£¬Ã¿µ±ÕâÒ»°æ±¾µÄÈÎÎñ¿ìÍê³Éʱ£¬ÏÂÒ»°æ±¾µÄÈÎÎñµÄ³ûÐξͳöÀ´ÁË¡£

    ¡¡¡¡Æä´Î£¬¿ª·¢ºÍ²âÊÔÑϸñ°´ÕÕÈí¼þÉúÃüÖÜÆÚÖ´ÐС£

    ¡¡¡¡µÚÒ»½×¶Î£º

    ¡¡¡¡ÐèÇó³öÀ´ºó£¬¿ª·¢ºÍ²âÊÔͬ²½½øÐУ¬¿ª·¢Íê³É´úÂëʵÏÖ£¬²âÊÔÍê³Étest outlineºÍtest case£¬ÕâЩÎĵµ¶¼»áÉÏ´«µ½WikiÉÏ¡£ÎÒÃÇÔÚÀí½âSpecºÍÍê³ÉtestcaseµÄʱºò£¬»á¼°Ê±Ìá³ö×Ô¼ºµÄÎÊÌ⣬ÕâЩÎÊÌâÒ»°ãÔÚµÚ¶þÌì¾ÍÄÜ´Ó¿ª·¢ÈËÔ± µÃµ½·´À¡¡£¶øtest outlineºÍtest case×îÖÕÍê³ÉºóÒ²Òª¾­¹ý¿ª·¢ÈËÔ±µÄÑéÖ¤£¬ÓÐʱËûÃÇ»áÌá³ö×Ô¼ºµÄÒâ¼û£¬²âÊÔÒªµãºÍһЩÄãδÔøÏëµ½µÄcase¡£

    ¡¡¡¡µÚ¶þ½×¶Î£º

    ¡¡¡¡Ð¹¦ÄܵIJâÊԽ׶Σ¬²âÊÔÌá½»bug£¬¿ª·¢ÐÞ¸Äbug£¬ÕâÒ»¹ý³ÌÓÉJIRA¹ÜÀí¡£

    ¡¡¡¡µÚÈý½×¶Î£º

    ¡¡¡¡»Ø¹é²âÊÔ£º

    ¡¡ ¡¡Ã¿Ò»¸ö°æ±¾µÄÏ°ë½×¶Î¶¼ÊÇ×ö»Ø¹é²âÊÔ£¬ÕâÊÇÒ»¸ö±È½ÏÂþ³¤µÄ¹ý³Ì£¬Ò»°ã·ÖÁ½²¿·Ö£¬Ò»ÊÇÖ´ÐÐËùÓеÄcase£¨Ò»ÍòÖ®¶à£¬Óиϳ¬Á½ÍòÖ®ÊÆ£©£¬¶þÊÇÖ´ÐÐÈÎÒâ²â ÊÔ¡£ÔÚÖ´ÐÐcaseµÄʱºò£¬ÎÒÃÇ»¹ÒªÍ¬Ê±¸üÐÂcase£¬ÓÐЩÊǸüÐÂÄÚÈÝ£¬ÓÐЩÊÇÌí¼ÓеÄbug£¬ÓÐЩcase¿ÉÄÜ»á¹ýʱ¡£µ±È»£¬ÐµÄbugÒ²»áÌá½»µ½ JIRA¡£ÔÚÕâ¸ö½×¶Î£¬²âÊÔÈËÔ±»á°²ÅÅÔÚ²»Í¬µÄƽ̨ÉϲâÊÔ¡£¿ÉÒÔ˵£¬ÔÚ×ö»Ø¹é²âÊÔµÄʱºò£¬²âÊÔ¸²¸ÇÂʼ«¸ß¡£

    ¡¡¡¡µÚËĽ׶Σº

    ¡¡¡¡Ô¤·¢²¼°æ±¾²âÊÔ£º

    ¡¡ ¡¡×öÍê»Ø¹é²âÊÔ»áÐγÉÒ»¸ö½ÏÎȶ¨µÄ°æ±¾×÷ΪԤ·¢²¼°æ±¾£¬Ô¤·¢²¼°æ±¾»á±»²¿Êðµ½Áíһ̨²âÊÔ·þÎñÆ÷ÉÏ¡£ÕâʱºòÐèÒªÔÚ²»Í¬Æ½Ì¨ÉÏ×öÒ»´ÎQL£¨Quick Look£©¼°ÈÎÒâ²âÊÔ¡£Ô¤·¢²¼°æ±¾ÉÏÒ»°ã²»»áÔÙǨÈëchanglist£¬³ý·ÇÔÚ´ËÖ®ÉÏ·¢ÏÖÁ˽ÏÑÏÖصÄbug£¬¾Í»áÓÐеÄr2µÄÔ¤·¢²¼°æ±¾ÒÔ¼°ÔÙÒ»´ÎµÄ²â ÊÔ¡£

    ¡¡¡¡µÚÎå½×¶Î£º

    ¡¡¡¡ÄÚ²¿²âÊÔ£º

    ¡¡¡¡Ð°汾·¢²¼Ç°Ò»Á½Ìì¿ÉÒÔ˵ÊÇÈ«Ãñ½Ô±ø£¬¹«Ë¾Àï´ó´óССËùÓÐÈ˶¼½øÐвâ ÊÔ£¬°üÀ¨CEO¡££¨µ±È»CEO²»»á×Ô¼ºÀ´±¨bug£¬Ëý»á°ÑÎÊÌâ·´À¡¸øÎÒÃǵļ¼Êõ¸±×ܲã©¡£µ±È»ËûÃÇËù±¨µÄbugÒ²»á³ÉΪÎÒÃǵÄ̸×Ê¡£×÷Ϊ²âÊÔÈËÔ±£¬ÎÒÃDz» ½ö×·ÇóbugÊýÁ¿£¬¸üҪ׷Çóbug±»fixµÄ¸ÅÂÊ¡£µ±·¢ÏÖÒ»¸öbugʱ£¬Ê×ÏÈÎÒÃǵÃÈ·¶¨Ëü²»»á³ÉΪwon't fix»òinvalidµÄÎÊÌ⣬²¢ÇÒËücan be reproduced£¬È»ºóËü²»»áduplicateij¸öÒÑÓеÄbug£¬Èç¹ûÕâ¸öÒÑÓеÄbugÒѾ­±»closeÁË£¬¾ÍÓ¦¸ÃreopenËü¡£¶øÕâЩ·Ç²âÊÔ²¿ µÄÈ˲»¹ÜÈýÆ߶þʮһ£¬¿´µ½ÊǸöÎÊÌâµÄ¾Í±¨£¬Ò»ÌìÏÂÀ´Ð¼ӵÄbugÊý¾Í¸ÃÈÃÏà¹ØµÄ¿ª·¢ÈËԱͷÌÛËÀÁË¡£ºÃÔÚÕâЩÎÊÌⶼ»áÒ»¸ö¸öµØµÃµ½ËüÃÇÓ¦ÓеĽâ¾ö·½Ê½¡£

    ¡¡¡¡µÚÁù½×¶Î£º

    ¡¡¡¡²úÆ··¢²¼²âÊÔ£º

    ¡¡¡¡²úÆ··¢²¼Ç°»áÔںͲúÆ·»·¾³ÏàͬµÄ·þÎñÆ÷ÉÏ×öÒ»´ÎQL£¨Quick Look£©ºÍÈÎÒâ²âÊÔ£¬²úÆ··¢²¼ºóÓÖ»áÔÚ²úÆ··þÎñÆ÷ÉÏ×öÒ»´ÎQL£¨Quick Look£©ºÍÈÎÒâ²âÊÔ¡£

    ¡¡¡¡µÚÆ߽׶Σº

    ¡¡¡¡²âÊÔÕûÀí£º

    ¡¡¡¡ÕâÒ»½×¶ÎÖ÷ÒªÊÇÕûÀíÔÚÕâÒ»°æ±¾Éú³ÉµÄ²âÊÔÎĵµºÍ²âÊÔÓÃÀý£¬Ð¹¦ÄܵÄÓÃÀýºÍһЩ֮ǰδ¸²¸ÇµÄÓÃÀý»á±»µ¼Èë²âÊÔÓÃÀý¹ÜÀí¹¤¾ß¡£

    ¡¡¡¡----------------------------------------------------

    ¡¡¡¡¿ÉÒÔ˵£¬ÒÔÉϲâÊÔÁ÷³Ì¶¼ÊǾ­¹ý¼Æ»®²¢ÇÒÑϸñÖ´Ðеģ¬ºÍ´ó¼ÒÒ»Æð·ÖÏí£¬Ò²ÐíÄã»á´ÓÖÐÓÐËùÊÕ»ñ¡£


    http://www.51testing.com/html/69/n-240369.html



  • loadrunner_http³¤Á¬½ÓÉèÖÃ

    2011-07-22 17:54:50

    ×î½üЭÖúͬʽâ¾öÁ˼¸¸öÎÊÌ⣬Ҳ¶ÔloadrunnerµÄһЩÉèÖüÓÉîÁËÀí½â£¬¹Ø¼üÊǸü¼ÓÖªÆäËùÒÔÈ»¡£

     

    1. loadrunner_internetÔËÐÐʱÉèÖà ×ÜÀÀ:

    2. ÖÐÎÄÂÒÂë_ÉèÖÃ×Ô¶¯×Ö·û¼¯×ª»»


    3.loadrunner_Á¬½ÓÏÂÔس¬Ê±_tcpÊÇ·ñʹÓó¤Á¬½ÓÉèÖÃ

     

    °ïÖúÎĵµÖеÄ˵Ã÷£º


    ËæºóÔڽű¾ÖнøÐÐÁ˲»Í¬µÄÉèÖ㬽øÐÐÁ˽á¹ûÑéÖ¤£º

    3.1 ĬÈÏÖµ£ºÉèÖà Keep-Alive HTTP connections ---> Yes
    ÔÚ´ËÉèÖÃÇé¿öÏ·ÃÎÊbaiduÊ×Ò³£¬ÇëÇóÍ·ÈçÏÂͼ£º


    3.2 Ëæºó£¬ÐÞ¸Ä ÉèÖà Keep-Alive HTTP connections ---> No
    ÔÚ´ËÉèÖÃÇé¿öÏ·ÃÎÊbaiduÊ×Ò³£¬ÇëÇóÍ·ÈçÏÂͼ£º

    3.3ͨ¹ý¶Ô±È£¬¿ÉÒÔ·¢ÏÖ£º
    ´ËÉèÖÃÉúЧÁË£¬¶øÇÒÊÇͨ¹ýÉèÖÃHTTPÇëÇóÍ·ÖеIJÎÊýʵÏֵģ¬ºÍÏÂÊöµÄÎÄÕÂËù˵Ïà·û¡£

     

    4.ÖÁÓÚtcpÁ¬½Ó½¨Á¢Á¬½Ó3´ÎÎÕÊÖ£¬¹Ø±ÕÁ¬½Ó4´ÎÎÕÊÖ¡£ÓÐÐËȤµÄ¿ÉÒÔÑé֤ϡ£
      ¸½TCP״̬±ä»¯Í¼£º


    ÏÂÃæÁÐһЩ²Î¿¼ÎÄÕ£¬¸Ð¾õ»¹ÊÇÂùÓÐÊÕ»ñµÄ¡£


    HTTP³¤Á¬½Ó¶¨Ò壺
    What is HTTP Persistent Connections?
    HTTP persistent connections, also called HTTP keep-alive, or HTTP connection reuse, is the idea of using the same TCP connection to send and receive multiple HTTP requests/responses, as opposed to opening a new one for every single request/response pair. Using persistent connections is very important for improving HTTP performance.

    ʲôÊÇHTTP³¤Á¬½Ó£¿
    HTTP³¤Á¬½Ó£¬ÓëÒ»°ãÿ´Î·¢ÆðhttpÇëÇó»òÏìÓ¦¶¼Òª½¨Á¢Ò»¸ötcpÁ¬½Ó²»Í¬£¬http³¤Á¬½ÓÀûÓÃͬһ¸ötcpÁ¬½Ó´¦Àí¶à¸öhttpÇëÇóºÍÏìÓ¦£¬Ò²½ÐHTTP keep-alive£¬»òÕßhttpÁ¬½ÓÖØÓá£Ê¹ÓÃhttp³¤Á¬½Ó¿ÉÒÔÌá¸ßhttpÇëÇó/ÏìÓ¦µÄÐÔÄÜ¡£


    5.HTTPÎÞ״̬ЭÒéºÍConnection:Keep-AliveÈÝÒ×·¸µÄÎóÇø
    http://liuzhigong.blog.163.com/blog/static/178272375201141344312315/

    Ãû´Ê½âÊÍ£º
    HTTPÎÞ״̬£ºÎÞ״̬ÊÇָЭÒé¶ÔÓÚÊÂÎñ´¦ÀíûÓмÇÒäÄÜÁ¦£¬·þÎñÆ÷²»ÖªµÀ¿Í»§¶ËÊÇʲô״̬¡£´ÓÁíÒ»·½Ãæ½²£¬´ò¿ªÒ»¸ö·þÎñÆ÷ÉϵÄÍøÒ³ºÍÄã֮ǰ´ò¿ªÕâ¸ö·þÎñÆ÷ÉϵÄÍøÒ³Ö®¼äûÓÐÈκÎÁªÏµ
    Èç¹ûÄãҪʵÏÖÒ»¸ö¹ºÎï³µ£¬ÐèÒª½èÖúÓÚCookie»òSession»ò·þÎñÆ÷¶ËAPI£¨ÈçNSAPI and ISAPI£©¼Ç¼ÕâЩÐÅÏ¢£¬ÇëÇó·þÎñÆ÷½áËãÒ³Ãæʱͬʱ½«ÕâЩÐÅÏ¢Ìá½»µ½·þÎñÆ÷
    µ±ÄãµÇ¼µ½Ò»¸öÍøվʱ£¬ÄãµÄµÇ¼״̬ҲÊÇÓÉCookie»òSessionÀ´¡°¼ÇÒ䡱µÄ£¬ÒòΪ·þÎñÆ÷²¢²»ÖªµÀÄãÊÇ·ñµÇ¼
    Óŵ㣺·þÎñÆ÷²»ÓÃΪÿ¸ö¿Í»§¶ËÁ¬½Ó·ÖÅäÄÚ´æÀ´¼ÇÒä´óÁ¿×´Ì¬£¬Ò²²»ÓÃÔÚ¿Í»§¶ËʧȥÁ¬½ÓʱȥÇåÀíÄڴ棬ÒÔ¸ü¸ßЧµØÈ¥´¦ÀíWEBÒµÎñ
    ȱµã£º¿Í»§¶ËµÄÿ´ÎÇëÇó¶¼ÐèҪЯ´øÏàÓ¦²ÎÊý£¬·þÎñÆ÷ÐèÒª´¦ÀíÕâЩ²ÎÊý
     
    Keep-Alive£º²Î¿¼ÁíÍâһƪÎÄÕÂHTTP Keep-Alive Ïê½â
     
    ÈÝÒ×·¸µÄÎóÇø£º
    1¡¢HTTPÊÇÒ»¸öÎÞ״̬µÄÃæÏòÁ¬½ÓµÄЭÒ飬ÎÞ״̬²»´ú±íHTTP²»Äܱ£³ÖTCPÁ¬½Ó£¬¸ü²»ÄÜ´ú±íHTTPʹÓõÄÊÇUDPЭÒ飨ÎÞÁ¬½Ó£©
    2¡¢´ÓHTTP/1.1Æð£¬Ä¬È϶¼¿ªÆôÁËKeep-Alive£¬±£³ÖÁ¬½ÓÌØÐÔ£¬¼òµ¥µØ˵£¬µ±Ò»¸öÍøÒ³´ò¿ªÍê³Éºó£¬¿Í»§¶ËºÍ·þÎñÆ÷Ö®¼äÓÃÓÚ´«ÊäHTTPÊý¾ÝµÄTCPÁ¬½Ó²»»á¹Ø±Õ£¬Èç¹û¿Í»§¶ËÔٴηÃÎÊÕâ¸ö·þÎñÆ÷ÉϵÄÍøÒ³£¬»á¼ÌÐøʹÓÃÕâÒ»ÌõÒѾ­½¨Á¢µÄÁ¬½Ó
    3¡¢Keep-Alive²»»áÓÀ¾Ã±£³ÖÁ¬½Ó£¬ËüÓÐÒ»¸ö±£³Öʱ¼ä£¬¿ÉÒÔÔÚ²»Í¬µÄ·þÎñÆ÷Èí¼þ£¨ÈçApache£©ÖÐÉ趨Õâ¸öʱ¼ä

    6. http³¤Á¬½ÓÓë¶ÌÁ¬½Ó
    http://www.cnblogs.com/Roberts/archive/2010/12/05/1986550.html
    ¿ÉÒÔÁ˽âϳ£¼ûµÄͨÐų¡¾°£º

    Ò»¡¢³¤Á¬½ÓÓë¶ÌÁ¬½Ó£º

    ³¤Á¬½Ó£ºclient·½Óëserver·½ÏȽ¨Á¢Á¬½Ó£¬Á¬½Ó½¨Á¢ºó²»¶Ï¿ª£¬È»ºóÔÙ½øÐб¨ÎÄ·¢ËͺͽÓÊÕ¡£
    ÕâÖÖ·½Ê½ÏÂÓÉÓÚͨѶÁ¬½ÓÒ»Ö±´æÔÚ¡£´ËÖÖ·½Ê½³£ÓÃÓÚP2PͨÐÅ¡£
    ¶ÌÁ¬½Ó£ºClient·½Óëserverÿ½øÐÐÒ»´Î±¨ÎÄÊÕ·¢½»Ò×ʱ²Å½øÐÐͨѶÁ¬½Ó£¬½»Ò×Íê±ÏºóÁ¢¼´¶Ï¿ªÁ¬½Ó¡£
    ´Ë·½Ê½³£ÓÃÓÚÒ»µã¶Ô¶àµãͨѶ¡£C/SͨÐÅ¡£

    ¶þ¡¢³¤Á¬½ÓÓë¶ÌÁ¬½ÓµÄ²Ù×÷¹ý³Ì£º

    ¶ÌÁ¬½ÓµÄ²Ù×÷²½ÖèÊÇ£º
    ½¨Á¢Á¬½Ó¡ª¡ªÊý¾Ý´«Ê䡪¡ª¹Ø±ÕÁ¬½Ó...½¨Á¢Á¬½Ó¡ª¡ªÊý¾Ý´«Ê䡪¡ª¹Ø±ÕÁ¬½Ó
    ³¤Á¬½ÓµÄ²Ù×÷²½ÖèÊÇ£º
    ½¨Á¢Á¬½Ó¡ª¡ªÊý¾Ý´«Êä...£¨±£³ÖÁ¬½Ó£©...Êý¾Ý´«Ê䡪¡ª¹Ø±ÕÁ¬½Ó

    Èý¡¢³¤Á¬½ÓÓë¶ÌÁ¬½ÓµÄʹÓÃʱ»ú£º

    ³¤Á¬½Ó£º¶ÌÁ¬½Ó¶àÓÃÓÚ²Ù×÷Ƶ·±£¬µã¶ÔµãµÄͨѶ£¬¶øÇÒÁ¬½ÓÊý²»ÄÜÌ«¶àµÄÇé¿ö¡£
    ÿ¸öTCPÁ¬½ÓµÄ½¨Á¢¶¼ÐèÒªÈý´ÎÎÕÊÖ£¬Ã¿¸öTCPÁ¬½ÓµÄ¶Ï¿ªÒªËÄ´ÎÎÕÊÖ¡£
    Èç¹ûÿ´Î²Ù×÷¶¼Òª½¨Á¢Á¬½ÓÈ»ºóÔÙ²Ù×÷µÄ»°´¦ÀíËٶȻήµÍ£¬ËùÒÔÿ´Î²Ù×÷
    Ï´βÙ×÷ʱֱ½Ó·¢ËÍÊý¾Ý¾Í¿ÉÒÔÁË£¬²»ÓÃÔÙ½¨Á¢TCPÁ¬½Ó¡£ÀýÈ磺Êý¾Ý¿âµÄÁ¬½ÓÓó¤Á¬½Ó£¬
    Èç¹ûÓöÌÁ¬½ÓƵ·±µÄͨÐÅ»áÔì³Ésocket´íÎó£¬Æµ·±µÄsocket´´½¨Ò²ÊǶÔ×ÊÔ´µÄÀË·Ñ¡£
    ¶ÌÁ¬½Ó£ºwebÍøÕ¾µÄhttp·þÎñÒ»°ã¶¼ÓöÌÁ¬½Ó¡£ÒòΪ³¤Á¬½Ó¶ÔÓÚ·þÎñÆ÷À´ËµÒªºÄ·ÑÒ»¶¨µÄ×ÊÔ´¡£
    ÏñwebÍøÕ¾ÕâôƵ·±µÄ³ÉǧÉÏÍòÉõÖÁÉÏÒÚ¿Í»§¶ËµÄÁ¬½ÓÓöÌÁ¬½Ó¸üʡһЩ×ÊÔ´¡£ÊÔÏëÈç¹û¶¼Óó¤Á¬½Ó£¬
    ¶øÇÒͬʱÓóÉǧÉÏÍòµÄÓû§£¬Ã¿¸öÓû§¶¼Õ¼ÓÐÒ»¸öÁ¬½ÓµÄ»°£¬¿ÉÏë¶øÖª·þÎñÆ÷µÄѹÁ¦Óжà´ó¡£
    ËùÒÔ²¢·¢Á¿´ó£¬µ«ÊÇÿ¸öÓû§ÓÖ²»ÐèƵ·±²Ù×÷µÄÇé¿öÏÂÐèÒª¶ÌÁ¬½Ó¡£
    ×ÜÖ®£º³¤Á¬½ÓºÍ¶ÌÁ¬½ÓµÄÑ¡ÔñÒªÊÓÐèÇó¶ø¶¨¡£

    ËÄ¡¢·¢ËͽÓÊÕ·½Ê½£º

    1¡¢Òì²½£º±¨ÎÄ·¢ËͺͽÓÊÕÊÇ·Ö¿ªµÄ£¬Ï໥¶ÀÁ¢£¬»¥²»Ó°ÏìµÄ¡£ÕâÖÖ·½Ê½ÓÖ·ÖÁ½ÖÖÇé¿ö£º
    Ò첽˫¹¤£º½ÓÊպͷ¢ËÍÔÚͬһ¸ö³ÌÐòÖУ¬ÓÐÁ½¸ö²»Í¬µÄ×Ó½ø³Ì·Ö±ð¸ºÔð·¢ËͺͽÓËÍ¡£
    Òì²½µ¥¹¤£º½ÓËͺͷ¢ËÍʹÓÃÁ½¸ö²»Í¬µÄ³ÌÐòÀ´Íê³É¡£
    2¡¢Í¬²½£º±¨ÎÄ·¢ËͺͽÓÊÕÊÇͬ²½½øÐУ¬¼´±¨ÎÄ·¢ËͺóµÈ´ý½ÓËÍ·µ»Ø±¨ÎÄ¡£Í¬²½·½Ê½
    Ò»°ãÐèÒª¿¼Âdz¬Ê±ÎÊÌ⣬ÊÔÏëÎÒÃÇ·¢Ëͱ¨ÎÄÒÔºóÒ²²»ÄÜÎÞÏ޵ȴý°¡£¬ËùÒÔÎÒÃÇÒªÉ趨һ¸öµÈ´ý
    ʱºò¡£³¬¹ýµÈ´ýʱ¼ä·¢ËÍ·½²»Ôٵȴý¶Á·µ»Ø±¨ÎÄ¡£Ö±½Ó֪ͨ³¬Ê±·µ»Ø¡£

    Îå¡¢±¨Îĸñʽ£º

    ͨÐű¨Îĸñʽ¶àÑùÐÔ¸ü¶à£¬ÏàÓ¦µØ¾Í±ØÐëÉè¼Æ¶ÔÓ¦µÄ¶Áд±¨ÎÄµÄ½Ó 
    Êպͷ¢Ëͱ¨Îĺ¯Êý¡£

    ×èÈûÓë·Ç×èÈû·½Ê½

    1¡¢·Ç×èÈû·½Ê½£º¶Áº¯Êý²»Í£µÄ½øÐжÁ¶¯×÷£¬Èç¹ûûÓб¨ÎĽÓÊÕµ½£¬µÈ´ýÒ»¶Îʱ¼äºó³¬Ê±·µ»Ø£¬
    ÕâÖÖÇé¿öÒ»°ãÐèÒªÖ¸¶¨³¬Ê±Ê±¼ä¡£
    2¡¢×èÈû·½Ê½£ºÈç¹ûûÓнÓÊÕµ½±¨ÎÄ£¬Ôò¶Áº¯ÊýÒ»Ö±´¦Óڵȴý״̬£¬ÖªµÀ±¨Îĵ½´ï¡£

    Ñ­»·¶Áд·½Ê½

    1¡¢Ò»´ÎÖ±½Ó¶Áд±¨ÎÄ£ºÔÚÒ»´Î½ÓÊÕ»ò·¢Ëͱ¨ÎĶ¯×÷ÖÐÒ»´ÎÐÔ²»¼Ó·Ö±ðµØÈ«²¿¶ÁÈ¡»òÈ«²¿·¢Ëͱ¨ÎÄ×Ö½Ú¡£
    2¡¢²»Ö¸¶¨³¤¶ÈÑ­»·¶Áд£ºÕâÒ»°æ·¢ÉúÔÚ¶ÌÁ¬½Ó½ø³ÌÖУ¬ÊÜÍøÂç·ÓɵÈÏÞÖÆ£¬Ò»´Î½Ï³¤µÄ±¨ÎÄ¿ÉÄÜ
    ÔÚÍøÂç´«Êä¹ý³ÌÖб»·Ö½â³ÉºÜ¶à¸ö°ü£¬Ò»´Î¶ÁÈ¡¿ÉÄܲ»ÄÜÈ«²¿¶ÁÍêÒ»´Î±¨ÎÄ£¬Õâ¾ÍÐèҪѭ»·¶ÁÈ¡±¨ÎÄ£¬
    ÖªµÀ¶ÁÍêΪֹ¡£
    3¡¢´ø³¤¶È±¨ÎÄÍ·Ñ­»·¶Áд£ºÕâÖÖÇé¿öÒ»°ãÔÚ³¤Á¬½ÓÖУ¬ÓÉÓÚÔÚ³¤Á¬½ÓÖÐûÓÐÌõ¼þÄܹ»ÅжÏÑ­»·¶Áдʲôʱºò½áÊø¡£
    ±ØÐëÒª¼Ó³¤¶È±¨ÎÄÍ·¡£¶Áº¯ÊýÏÈÊǶÁÈ¡±¨ÎÄÍ·µÄ³¤¶È£¬ÔÙ¸ù¾ÝÕâ¸ö³¤¶ÈÈ¥¶Á±¨ÎÄ£¬Êµ¼ÊÇé¿öÖУ¬±¨Í·ÂëÖƸñʽ»¹¾­³£²»Ò»Ñù£¬
    Èç¹ûÊÇ·ÇASCIIµÄ±¨ÎÄÍ·£¬»¹±ØÐëת»»³ÉASCII³£¼ûµÄ±¨ÎÄÍ·±àÖÆÓУº
    1¡¢n¸ö×Ö½ÚµÄASCIIÂë¡£
    2¡¢n¸ö×Ö½ÚµÄBCDÂë¡£
    3¡¢n¸ö×Ö½ÚµÄÍøÂçÕûÐÍÂë¡£

    ÒÔÉÏÊǼ¸ÖֱȽϵäÐ͵ĶÁд±¨ÎÄ·½Ê½£¬¿ÉÒÔÓëͨÐÅ·½Ê½Ä£°åÒ»Æð Ô¤ÏÈÌṩһЩµäÐ͵ÄAPI¶Áдº¯Êý¡£

    µ±È»ÔÚʵ¼ÊÎÊÌâÖУ¬¿ÉÄÜ»¹±ØÐë±àдÓë¶Ô·½±¨ÎĸñʽÅäÌ׵ĶÁдAPI. ÔÚʵ¼ÊÇé¿öÖУ¬ÍùÍùÐèÒª

    °ÑÎÒÃÇ×Ô¼ºµÄϵͳÓë±ðÈ˵Äϵͳ½øÐÐÁ¬½Ó£¬ ÓÐÁËÒÔÉÏÄ£°åÓëAPI,¿ÉÒÔ˵Á¬½ÓÈκη½Ê½µÄͨÐųÌÐò

    ¶¼²»´æÔÚÎÊÌâ¡£

     

    7.  http³¤Á¬½Ó¼¼ÊõÎÄÕ·­Ò롪¡ª¹ØÓÚhttp³¤Á¬½ÓÓкܶàÖØÒªµÄ¸ÅÄî
    http://www.blogjava.net/xjacker/articles/334709.html

    ³¢ÊÔ·­ÒëƬ¼¼ÊõÎÄÕ¡£

    What is HTTP Persistent Connections?
    HTTP persistent connections, also called HTTP keep-alive, or HTTP connection reuse, is the idea of using the same TCP connection to send and receive multiple HTTP requests/responses, as opposed to opening a new one for every single request/response pair. Using persistent connections is very important for improving HTTP performance.

    ʲôÊÇHTTP³¤Á¬½Ó£¿
    HTTP³¤Á¬½Ó£¬ÓëÒ»°ãÿ´Î·¢ÆðhttpÇëÇó»òÏìÓ¦¶¼Òª½¨Á¢Ò»¸ötcpÁ¬½Ó²»Í¬£¬http³¤Á¬½ÓÀûÓÃͬһ¸ötcpÁ¬½Ó´¦Àí¶à¸öhttpÇëÇóºÍÏìÓ¦£¬Ò²½ÐHTTP keep-alive£¬»òÕßhttpÁ¬½ÓÖØÓá£Ê¹ÓÃhttp³¤Á¬½Ó¿ÉÒÔÌá¸ßhttpÇëÇó/ÏìÓ¦µÄÐÔÄÜ¡£

    There are several advantages of using persistent connections, including:

    Network friendly. Less network traffic due to fewer setting up and tearing down of TCP connections.
    Reduced latency on subsequent request. Due to avoidance of initial TCP handshake
    Long lasting connections allowing TCP sufficient time to determine the congestion state of the network, thus to react appropriately.

    ʹÓÃhttp³¤Á¬½ÓÓкܶàºÃ´¦£¬°üÀ¨£º

    ¸üÉٵĽ¨Á¢ºÍ¹Ø±ÕtcpÁ¬½Ó£¬¿ÉÒÔ¼õÉÙÍøÂçÁ÷Á¿¡£
    ÒòΪÒѽ¨Á¢µÄtcpÎÕÊÖ£¬¼õÉÙºóÐøÇëÇóµÄÑÓʱ¡£
    ³¤Ê±¼äµÄÁ¬½ÓÈÃtcpÓгä×ãµÄʱ¼äÅжÏÍøÂçµÄÓµÈûÇé¿ö£¬·½±ã×ö³öϲ½²Ù×÷¡£

    The advantages are even more obvious with HTTPS or HTTP over SSL/TLS. There, persistent connections may reduce the number of costly SSL/TLS handshake to establish security associations, in addition to the initial TCP connection set up.
    In HTTP/1.1, persistent connections are the default behavior. of any connection. That is, unless otherwise indicated, the client SHOULD assume that the server will maintain a persistent connection, even after error responses from the server. However, the protocol provides means for a client and a server to signal the closing of a TCP connection.

    ÕâЩÓŵãÔÚʹÓÃhttpsÁ¬½Óʱ¸üÏÔÖø¡£¿ÉÒÔ¼õÉÙ¶à´Î½¨Á¢¸ßÏûºÄµÄSSL/TLSÎÕÊÖ¡£
    ÔÚHTTP/1.1ÖУ¬Ä¬ÈÏʹÓõÄÊdz¤Á¬½Ó·½Ê½¡£¿Í»§¶ËĬÈÏ·þÎñ¶Ë»á±£³Ö³¤Á¬½Ó£¬¼´±ã·µ»Ø´íÎóÏìÓ¦£»³ý·ÇÃ÷ȷָʾ²»Ê¹Óó¤Á¬½Ó¡£Í¬Ê±£¬Ð­ÒéÖÐÒ²Ö¸¶¨ÁË¿Í»§¶Ë¿ÉÒÔ·¢Ë͹رÕÐźŵ½·þÎñ¶ËÀ´¹Ø±ÕTCPÁ¬½Ó¡£

    What makes a connection reusable?
    Since TCP by its nature is a stream based protocol, in order to reuse an existing connection, the HTTP protocol has to have a way to indicate the end of the previous response and the beginning of the next one. Thus, it is required that all messages on the connection MUST have a self-defined message length (i.e., one not defined by closure of the connection). Self demarcation is achieved by either setting the Content-Length header, or in the case of chunked transfer encoded entity body, each chunk starts with a size, and the response body ends with a special last chunk.

    ÔõÑùÊÇÁ¬½Ó¿ÉÒÔÖØÓã¿
    ÒòΪTCPÊÇ»ùÓÚÁ÷µÄЭÒ飬ËùÒÔHTTPЭÒéÐèÒªÓÐÒ»ÖÖ·½Ê½À´Ö¸Ê¾Ç°Ò»¸öÏìÓ¦µÄ½áÊøºÍºóÒ»¸öÏìÓ¦µÄ¿ªÊ¼À´ÖØÓÃÒѽ¨Á¢µÄÁ¬½Ó¡£ËùÒÔ£¬ËüÒªÇóÁ¬½ÓÖд«ÊäµÄÐÅÏ¢±ØÐëÓÐ×Ô¶¨ÒåµÄÏûÏ¢³¤¶È¡£×Ô¶¨ÒåÏûÏ¢³¤¶È¿ÉÒÔͨ¹ýÉèÖàContent-Length ÏûϢͷ£¬Èô´«Êä±àÂëµÄʵÌåÄÚÈݿ飬Ôòÿ¸öÊý¾Ý¿éµÄ±êÃ÷Êý¾Ý¿éµÄ´óС£¬¶øÇÒÏìÓ¦ÌåÒ²ÊÇÒÔÒ»¸öÌØÊâµÄÊý¾Ý¿é½áÊø¡£

    What happens if there are proxy servers in between?
    Since persistent connections applies to only one transport link, it is important that proxy servers correctly signal persistent/or-non-persistent connections separately with its clients and the origin servers (or to other proxy servers). From a HTTP client or server's perspective, as far as persistence connection is concerned, the presence or absence of proxy servers is transparent.

    ÈôÖмä´æÔÚ´úÀí·þÎñÆ÷½«»áÈçºÎ?
    ÒòΪ³¤Á¬½Ó½öÕ¼ÓÃÒ»Ìõ´«ÊäÁ´Â·£¬ËùÒÔ´úÀí·þÎñÆ÷ÄÜ·ñÕýÈ·µÃÓë¿Í»§¶ËºÍ·þÎñÆ÷¶Ë£¨»òÕßÆäËû´úÀí·þÎñÆ÷£©·¢Ëͳ¤Á¬½Ó»ò·Ç³¤Á¬½ÓµÄÐźÅÓÈΪÖØÒª¡£µ«ÊÇHTTPµÄ¿Í»§¶Ë»ò·þÎñÆ÷¶ËÀ´¿´£¬´úÀí·þÎñÆ÷¶ÔËûÃÇÀ´ËµÊÇ͸Ã÷µÄ£¬¼´±ã³¤Á¬½ÓÊÇÐèÒª¹Ø×¢µÄ¡£

    What does the current JDK do for Keep-Alive?
    The JDK supports both HTTP/1.1 and HTTP/1.0 persistent connections.

    When the application finishes reading the response body or when the application calls close() on the InputStream returned by URLConnection.getInputStream(), the JDK's HTTP protocol handler will try to clean up the connection and if successful, put the connection into a connection cache for reuse by future HTTP requests.

    The support for HTTP keep-Alive is done transparently. However, it can be controlled by system properties http.keepAlive, and http.maxConnections, as well as by HTTP/1.1 specified request and response headers.

    µ±Ç°µÄJDKÈçºÎ´¦ÀíKeep-Alive£¿
    JDKͬʱ֧³ÖHTTP/1.1 ºÍ HTTP/1.0¡£
    µ±Ó¦ÓóÌÐò¶ÁÈ¡ÍêÏìÓ¦ÌåÄÚÈݺó»òÕßµ÷Óàclose() ¹Ø±ÕÁËURLConnection.getInputStream()·µ»ØµÄÁ÷£¬JDKÖеÄHTTPЭÒé¾ä±ú½«¹Ø±ÕÁ¬½Ó£¬²¢½«Á¬½Ó·Åµ½Á¬½Ó»º´æÖУ¬ÒÔ±ãºóÃæµÄHTTPÇëÇóʹÓá£
    ¶ÔHTTP keep-Alive µÄÖ§³ÖÊÇ͸Ã÷µÄ¡£µ«ÊÇ£¬ÄãÒ²¿ÉÒÔͨ¹ýϵͳÊôÐÔhttp.keepAliveºÍhttp.maxConnectionsÒÔ¼°HTTP/1.1ЭÒéÖеÄÌض¨µÄÇëÇóÏìӦͷÀ´¿ØÖÆ¡£

    The system properties that control the behavior. of Keep-Alive are:
    http.keepAlive=<boolean>
    default: true

    Indicates if keep alive (persistent) connections should be supported.
    http.maxConnections=<int>
    default: 5

    Indicates the maximum number of connections per destination to be kept alive at any given time

    HTTP header that influences connection persistence is:
    Connection: close

    If the "Connection" header is specified with the value "close" in either the request or the response header fields, it indicates that the connection should not be considered 'persistent' after the current request/response is complete.

    ¿ØÖÆKeep-Alive±íÏÖµÄϵͳÊôÐÔÓУº

    http.keepAlive=<²¼¶ûÖµ>
    ĬÈÏ: true
    Ö¸¶¨³¤Á¬½ÓÊÇ·ñÖ§³Ö

    http.maxConnections=<ÕûÊý>
    ĬÈÏ: 5
    Ö¸¶¨¶Ôͬһ¸ö·þÎñÆ÷±£³ÖµÄ³¤Á¬½ÓµÄ×î´ó¸öÊý¡£

    Ó°Ï쳤Á¬½ÓµÄHTTP headerÊÇ£º
    Connection: close
    Èç¹ûÇëÇó»òÏìÓ¦ÖеÄConnection header±»Ö¸¶¨Îªclose£¬±íʾÔÚµ±Ç°ÇëÇó»òÏìÓ¦Íê³Éºó½«¹Ø±ÕTCPÁ¬½Ó¡£

    The current implementation doesn't buffer the response body. Which means that the application has to finish reading the response body or call close() to abandon the rest of the response body, in order for that connection to be reused. Furthermore, current implementation will not try block-reading when cleaning up the connection, meaning if the whole response body is not available, the connection will not be reused.

    JDKÖеĵ±Ç°ÊµÏÖ²»Ö§³Ö»º´æÏìÓ¦Ì壬ËùÒÔÓ¦ÓóÌÐò±ØÐë¶ÁÈ¡ÍêÏìÓ¦ÌåÄÚÈÝ»òÕßµ÷ÓÃclose()¹Ø±ÕÁ÷²¢¶ªÆúδ¶ÁÄÚÈÝÀ´ÖØÓÃÁ¬½Ó¡£´ËÍ⣬µ±Ç°ÊµÏÖÔÚÇåÀíÁ¬½Óʱ²¢Î´Ê¹ÓÃ×èÈû¶Á£¬Õâ¾ÍÒâζÕâÈç¹ûÏìÓ¦Ìå²»¿ÉÓã¬Á¬½Ó½«²»Äܱ»ÖØÓá£

    What's new in Tiger?
    When the application encounters a HTTP 400 or 500 response, it may ignore the IOException and then may issue another HTTP request. In this case, the underlying TCP connection won't be Kept-Alive because the response body is still there to be consumed, so the socket connection is not cleared, therefore not available for reuse. What the application needs to do is call HttpURLConnection.getErrorStream() after catching the IOException , read the response body, then close the stream. However, some existing applications are not doing this. As a result, they do not benefit from persistent connections. To address this problem, we have introduced a workaround.

    The workaround involves buffering the response body if the response is >=400, up to a certain amount and within a time limit, thus freeing up the underlying socket connection for reuse. The rationale behind this is that when the server responds with a >=400 error (client error or server error. One example is "404: File Not Found" error), the server usually sends a small response body to explain whom to contact and what to do to recover.

    JDK1.5ÖеÄÐÂÌØÐÔ
    µ±Ó¦ÓýÓÊÕµ½400»ò500µÄHTTPÏìӦʱ£¬Ëü½«ºöÂÔIOException ¶øÁí·¢Ò»¸öHTTP ÇëÇó¡£ÕâÖÖÇé¿öÏ£¬µ×²ãµÄTCPÁ¬½Ó½«²»»áÔÙ±£³Ö£¬ÒòΪÏìÓ¦ÄÚÈÝ»¹Ôڵȴý±»¶ÁÈ¡£¬socket Á¬½ÓδÇåÀí£¬²»Äܱ»ÖØÓá£Ó¦ÓÿÉÒÔÔÚ²¶»ñIOException ÒÔºóµ÷ÓÃHttpURLConnection.getErrorStream() £¬¶ÁÈ¡ÏìÓ¦ÄÚÈÝÈ»ºó¹Ø±ÕÁ÷¡£µ«ÊÇÏÖ´æµÄÓ¦ÓÃûÓÐÕâô×ö£¬²»ÄÜÌåÏÖ³ö³¤Á¬½ÓµÄÓÅÊÆ¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬½éÉÜÏÂworkaround¡£

    µ±ÏìÓ¦ÌåµÄ״̬Âë´óÓÚ»òµÈÓÚ400µÄʱºò£¬workaround ½«ÔÚÒ»¶¨Ê±¼äÄÚ»º´æÒ»¶¨ÊýÁ¿µÄÏìÓ¦ÄÚÈÝ£¬ÊͷŵײãµÄsocketÁ¬½ÓÀ´ÖØÓ᣻ù±¾Ô­ÀíÊǵ±ÏìӦ״̬Âë´óÓÚ»òµÈÓÚ400ʱ£¬·þÎñÆ÷¶Ë»á·¢ËÍÒ»¸ö¼ò¶ÌµÄÏìÓ¦ÌåÀ´Ö¸Ã÷Á¬½ÓË­ÒÔ¼°ÈçºÎ»Ö¸´Á¬½Ó¡£

    Several new Sun implementation specific properties are introduced to help clean up the connections after error response from the server.

    The major one is:

    sun.net.http.errorstream.enableBuffering=<boolean>
    default: false

    With the above system property set to true (default is false), when the response code is >=400, the HTTP handler will try to buffer the response body. Thus freeing up the underlying socket connection for reuse. Thus, even if the application doesn't call getErrorStream(), read the response body, and then call close(), the underlying socket connection may still be kept-alive and reused.

    The following two system properties provide further control to the error stream buffering behavior.:

    sun.net.http.errorstream.timeout=<int> in millisecond
    default: 300 millisecond

    sun.net.http.errorstream.bufferSize=<int> in bytes
    default: 4096 bytes

    ÏÂÃæ½éÉÜһЩSUNʵÏÖÖеÄÌض¨ÊôÐÔÀ´°ïÖú½ÓÊÕµ½´íÎóÏìÓ¦ÌåºóÇåÀíÁ¬½Ó£º
    Ö÷ÒªµÄÒ»¸öÊÇ£º
    sun.net.http.errorstream.enableBuffering=<²¼¶ûÖµ>
    ĬÈÏ: false

    µ±ÉÏÃæÊôÐÔÉèÖÃΪtrueºó£¬ÔÚ½ÓÊÕµ½ÏìÓ¦Âë´óÓÚ»òµÈÓÚ400ÊÇ£¬HTTP ¾ä±ú½«³¢ÊÔ»º´æÏìÓ¦ÄÚÈÝ¡£ÊͷŵײãµÄsocketÁ¬½ÓÀ´ÖØÓá£ËùÒÔ£¬¼´±ãÓ¦Óò»µ÷ÓÃgetErrorStream()À´¶ÁÈ¡ÏìÓ¦ÄÚÈÝ£¬»òÕßµ÷Óà close()¹Ø±ÕÁ÷£¬µ×²ãµÄsocketÁ¬½ÓÒ²½«±£³ÖÁ¬½Ó״̬¡£

    ÏÂÃæµÄÁ½¸öϵͳÊôÐÔÊÇΪÁ˸ü½øÒ»²½¿ØÖÆ´íÎóÁ÷µÄ»º´æÐÐΪ£º
    sun.net.http.errorstream.timeout=<int> in ºÁÃë
    ĬÈÏ: 300 ºÁÃë

    sun.net.http.errorstream.bufferSize=<int> in bytes
    ĬÈÏ: 4096 bytes

    What can you do to help with Keep-Alive?
    Do not abandon a connection by ignoring the response body. Doing so may results in idle TCP connections. That needs to be garbage collected when they are no longer referenced.

    If getInputStream() successfully returns, read the entire response body.

    When calling getInputStream() from HttpURLConnection, if an IOException occurs, catch the exception and call getErrorStream() to get the response body (if there is any).

    Reading the response body cleans up the connection even if you are not interested in the response content itself. But if the response body is long and you are not interested in the rest of it after seeing the beginning, you can close the InputStream. But you need to be aware that more data could be on its way. Thus the connection may not be cleared for reuse.

    Here's a code example that complies to the above recommendation:

    ÄãÈçºÎ×ö¿ÉÒÔ±£³ÖÁ¬½ÓΪÁ¬½Ó״̬ÄØ£¿
    ²»ÒªºöÂÔÏìÓ¦Ìå¶ø¶ªÆúÁ¬½Ó¡£ÕâÑù»áÊÇTCPÁ¬½ÓÏÐÖ㬵±²»ÔÙ±»ÒýÓú󽫻ᱻÀ¬»ø»ØÊÕÆ÷»ØÊÕ¡£
    Èç¹ûgetInputStream()·µ»Ø³É¹¦£¬¶ÁÈ¡È«²¿ÏìÓ¦ÄÚÈÝ¡£Èç¹ûÅ׳öIOException £¬²¶»ñÒì³£²¢µ÷ÓÃgetErrorStream() ¶ÁÈ¡ÏìÓ¦ÄÚÈÝ£¨Èç¹û´æÔÚÏìÓ¦ÄÚÈÝ£©¡£

    ¼´±ãÄã¶ÔÏìÓ¦ÄÚÈݲ»¸ÐÐËȤ£¬Ò²Òª¶ÁÈ¡Ëü£¬ÒÔ±ãÇåÀíÁ¬½Ó¡£µ«ÊÇ£¬Èç¹ûÏìÓ¦ÄÚÈݺܳ¤£¬Äã¶ÁÈ¡µ½¿ªÊ¼²¿·Öºó¾Í²»¸ÐÐËȤÁË£¬¿ÉÒÔµ÷ÓÃclose()À´¹Ø±ÕÁ÷¡£ÖµµÃ×¢ÒâµÄÊÇ£¬ÆäËû²¿·ÖµÄÊý¾ÝÒÑÔÚ¶ÁÈ¡ÖУ¬ËùÒÔÁ¬½Ó½«²»Äܱ»ÇåÀí½ø¶ø±»ÖØÓá£

    ÏÂÃæÊÇÒ»¸ö»ùÓÚÉÏÃ潨ÒéµÄ´úÂëÑùÀý£º

     1try {
     2    URL a = new URL(args[0]);
     3    URLConnection urlc = a.openConnection();
     4    is = conn.getInputStream();
     5    int ret = 0;
     6    while ((ret = is.read(buf)) > 0{
     7      processBuf(buf);
     8    }

     9    // close the inputstream
    10    is.close();
    11}
     catch (IOException e) {
    12    try {
    13        respCode = ((HttpURLConnection)conn).getResponseCode();
    14        es = ((HttpURLConnection)conn).getErrorStream();
    15        int ret = 0;
    16        // read the response body
    17        while ((ret = es.read(buf)) > 0{
    18            processBuf(buf);
    19        }

    20        // close the errorstream
    21        es.close();
    22    }
     catch(IOException ex) {
    23        // deal with the exception
    24    }

    25}


    If you know ahead of time that you won't be interested in the response body, you should issue a HEAD request instead of a GET request. For example when you are only interested in the meta. info of the web resource or when testing for its validity, accessibility and recent modification. Here's a code snippet:

    Èç¹ûÄãÔ¤ÏȾͶÔÏìÓ¦ÄÚÈݲ»¸ÐÐËȤ£¬Äã¿ÉÒÔʹÓÃHEAD ÇëÇóÀ´´úÌæGET ÇëÇó¡£ÀýÈ磬»ñÈ¡web×ÊÔ´µÄmetaÐÅÏ¢»òÕß²âÊÔËüµÄÓÐЧÐÔ£¬¿É·ÃÎÊÐÔÒÔ¼°×î½üµÄÐ޸ġ£ÏÂÃæÊÇ´úÂëƬ¶Î£º

    1URL a = new URL(args[0]);
    2URLConnection urlc = a.openConnection();
    3HttpURLConnection httpc = (HttpURLConnection)urlc;
    4// only interested in the length of the resource
    5httpc.setRequestMethod("HEAD");
    6int len = httpc.getContentLength();

     


    ¸ù¾ÝÇ°ÃæµÄͼ¿ÉÒÔÖªµÀ£¬Keep Alive ÊôÐÔÓзþÎñ¶ËºÍ¿Í»§¶ËÁ½Í·¶¼¿ÉÒÔÉèÖã¬
    ÄÇô·þÎñÆ÷¶ËÈçºÎÉèÖòſÉÒÔ»ñµÃ¸üºÃµÄÐÔÄÜÄØ£¿

    8.Apache ÖÐ Keep Alive ÅäÖõĺÏÀíʹÓ᪡ªÀïÃæµÄ¹«Ê½ºÍ¼ÆËã·½·¨£¬Ã»¿´¶®£¬²»ÒªÃÔÐÅ»¹ÊÇҪʵ֤
    http://blog.163.com/hai_zone/blog/static/264611372010718103838356/?fromdm&fromSearch&isFromSearchEngine=yes

    ÔÚ Apache ·þÎñÆ÷ÖУ¬KeepAlive ÊÇÒ»¸ö²¼¶ûÖµ£¬On ´ú±í´ò¿ª£¬Off ´ú±í¹Ø±Õ£¬Õâ¸öÖ¸ÁîÔÚÆäËûÖÚ¶àµÄ HTTPD ·þÎñÆ÷Öж¼ÊÇ´æÔڵġ£

    ¡¡¡¡KeepAlive ÅäÖÃÖ¸Áî¾ö¶¨µ±´¦ÀíÍêÓû§·¢ÆðµÄ HTTP ÇëÇóºóÊÇ·ñÁ¢¼´¹Ø±Õ TCP Á¬½Ó£¬Èç¹û KeepAlive ÉèÖÃΪOn£¬ÄÇôÓû§Íê³ÉÒ»´Î·ÃÎʺ󣬲»»áÁ¢¼´¶Ï¿ªÁ¬½Ó£¬Èç¹û»¹ÓÐÇëÇó£¬ÄÇô»á¼ÌÐøÔÚÕâÒ»´Î TCP Á¬½ÓÖÐÍê³É£¬¶ø²»ÓÃÖظ´½¨Á¢Ð嵀 TCP Á¬½ÓºÍ¹Ø±ÕTCP Á¬½Ó£¬¿ÉÒÔÌá¸ßÓû§·ÃÎÊËٶȡ£

    ¡¡¡¡ÄÇôÎÒÃÇ¿¼ÂÇ3ÖÖÇé¿ö£º
    ¡¡¡¡1¡£Óû§ä¯ÀÀÒ»¸öÍøҳʱ£¬³ýÁËÍøÒ³±¾ÉíÍ⣬»¹ÒýÓÃÁ˶à¸ö javascript. Îļþ£¬¶à¸ö css Îļþ£¬¶à¸öͼƬÎļþ£¬²¢ÇÒÕâЩÎļþ¶¼ÔÚͬһ¸ö HTTP ·þÎñÆ÷ÉÏ¡£
    ¡¡¡¡2¡£Óû§ä¯ÀÀÒ»¸öÍøҳʱ£¬³ýÁËÍøÒ³±¾ÉíÍ⣬»¹ÒýÓÃÒ»¸ö javascript. Îļþ£¬Ò»¸öͼƬÎļþ¡£
    ¡¡¡¡3¡£Óû§ä¯ÀÀµÄÊÇÒ»¸ö¶¯Ì¬ÍøÒ³£¬ÓɳÌÐò¼´Ê±Éú³ÉÄÚÈÝ£¬²¢ÇÒ²»ÒýÓÃÆäËûÄÚÈÝ¡£

    ¡¡¡¡¶ÔÓÚÉÏÃæ3ÖÐÇé¿ö£¬ÎÒÈÏΪ£º1 ×îÊʺϴò¿ª KeepAlive £¬2 ËæÒ⣬3 ×îÊÊºÏ¹Ø±Õ KeepAlive

    ¡¡¡¡ÏÂÃæÎÒÀ´·ÖÎöÒ»ÏÂÔ­Òò¡£

    ¡¡¡¡ÔÚ Apache ÖУ¬´ò¿ªºÍ¹Ø±Õ KeepAlive ¹¦ÄÜ£¬·þÎñÆ÷¶Ë»áÓÐʲôÒìͬÄØ£¿

    ¡¡¡¡ÏÈ¿´¿´ÀíÂÛ·ÖÎö¡£

    ¡¡¡¡´ò¿ª KeepAlive ºó£¬Òâζ×Åÿ´ÎÓû§Íê³ÉÈ«²¿·ÃÎʺ󣬶¼Òª±£³ÖÒ»¶¨Ê±¼äºó²Å¹Ø±Õ»á¹Ø±Õ TCP Á¬½Ó£¬ÄÇôÔڹرÕÁ¬½Ó֮ǰ£¬±ØÈ»»áÓÐÒ»¸öApache ½ø³Ì¶ÔÓ¦ÓÚ¸ÃÓû§¶ø²»ÄÜ´¦ÀíÆäËûÓû§£¬¼ÙÉè KeepAlive µÄ³¬Ê±Ê±¼äΪ 10 ÃëÖÖ£¬·þÎñÆ÷ÿÃë´¦Àí 50¸ö¶ÀÁ¢Óû§·ÃÎÊ£¬ÄÇôϵͳÖÐ Apache µÄ×ܽø³ÌÊý¾ÍÊÇ 10 * 50 £½ 500 ¸ö£¬Èç¹ûÒ»¸ö½ø³ÌÕ¼Óà 4M Äڴ棬ÄÇô×ܹ²»áÏûºÄ 2GÄڴ棬ËùÒÔ¿ÉÒÔ¿´³ö£¬ÔÚÕâÖÖÅäÖÃÖУ¬Ï൱ÏûºÄÄڴ棬µ«ºÃ´¦ÊÇϵͳֻ´¦ÀíÁË 50´Î TCP µÄÎÕÊֺ͹رղÙ×÷¡£

    ¡¡¡¡Èç¹û¹Ø±Õ KeepAlive£¬Èç¹û»¹ÊÇÿÃë50¸öÓû§·ÃÎÊ£¬Èç¹ûÓû§Ã¿´ÎÁ¬ÐøµÄÇëÇóÊýΪ3¸ö£¬ÄÇô Apache µÄ×ܽø³ÌÊý¾ÍÊÇ 50 * 3= 150 ¸ö£¬Èç¹û»¹ÊÇÿ¸ö½ø³ÌÕ¼Óà 4M Äڴ棬ÄÇô×ܵÄÄÚ´æÏûºÄΪ 600M£¬ÕâÖÖÅäÖÃÄܽÚÊ¡´óÁ¿Äڴ棬µ«ÊÇ£¬ÏµÍ³´¦ÀíÁË 150 ´Î TCPµÄÎÕÊֺ͹رյIJÙ×÷£¬Òò´ËÓÖ»á¶àÏûºÄһЩ CPU ×ÊÔ´¡£

    ¡¡¡¡ÔÚ¿´¿´Êµ¼ùµÄ¹Û²ì¡£

    ¡¡¡¡ÎÒÔÚÒ»×é´óÁ¿´¦Àí¶¯Ì¬ÍøÒ³ÄÚÈݵķþÎñÆ÷ÖУ¬Æð³õ´ò¿ª KeepAlive¹¦ÄÜ£¬¾­³£¹Û²ìµ½Óû§·ÃÎÊÁ¿´óʱApache½ø³ÌÊýÒ²·Ç³£¶à£¬ÏµÍ³Æµ·±Ê¹Óý»»»Äڴ棬ϵͳ²»Îȶ¨£¬ÓÐʱ¸ºÔØ»á³öÏֽϴ󲨶¯¡£¹Ø±ÕÁË KeepAlive¹¦Äܺ󣬿´µ½Ã÷ÏԵı仯ÊÇ£º Apache µÄ½ø³ÌÊý¼õÉÙÁË£¬¿ÕÏÐÄÚ´æÔö¼ÓÁË£¬ÓÃÓÚÎļþϵͳCacheµÄÄÚ´æÒ²Ôö¼ÓÁË£¬CPUµÄ¿ªÏúÔö¼ÓÁË£¬µ«ÊÇ·þÎñ¸üÎȶ¨ÁË£¬ÏµÍ³¸ºÔØÒ²±È½ÏÎȶ¨£¬ºÜÉÙÓиºÔØ´ó·¶Î§²¨¶¯µÄÇé¿ö£¬¸ºÔØÓÐÒ»¶¨³Ì¶ÈµÄ½µµÍ£»±ä»¯²»Ã÷ÏÔµÄÊÇ£º·ÃÎÊÁ¿½ÏÉÙµÄʱºò£¬ÏµÍ³Æ½¾ù¸ºÔØûÓÐÃ÷ÏԱ仯¡£


    ¡¡¡¡×ܽáһϣº
    ¡¡¡¡ÔÚÄÚ´æ·Ç³£³ä×ãµÄ·þÎñÆ÷ÉÏ£¬²»¹ÜÊÇ·ñ¹Ø±Õ KeepAlive ¹¦ÄÜ£¬·þÎñÆ÷ÐÔÄܲ»»áÓÐÃ÷ÏԱ仯£»
    ¡¡¡¡Èç¹û·þÎñÆ÷ÄÚ´æ½ÏÉÙ£¬»òÕß·þÎñÆ÷Óзdz£´óÁ¿µÄÎļþϵͳ·ÃÎÊʱ£¬»òÕßÖ÷Òª´¦Àí¶¯Ì¬ÍøÒ³·þÎñ£¬¹Ø±Õ KeepAlive ºó¿ÉÒÔ½ÚÊ¡ºÜ¶àÄڴ棬¶ø½ÚÊ¡³öÀ´µÄÄÚ´æÓÃÓÚÎļþϵͳCache£¬¿ÉÒÔÌá¸ßÎļþϵͳ·ÃÎʵÄÐÔÄÜ£¬²¢ÇÒϵͳ»á¸ü¼ÓÎȶ¨¡£


    ¡¡¡¡²¹³ä1£º
    ¡¡¡¡¹ØÓÚÊÇ·ñÓ¦¸Ã¹Ø±Õ KeepAlive Ñ¡ÏÎÒ¾õµÃ¿ÉÒÔ»ùÓÚÏÂÃæµÄÒ»¸ö¹«Ê½À´Åжϡ£

    ¡¡¡¡ÔÚÀíÏëµÄÍøÂçÁ¬½Ó×´¿öÏ£¬ÏµÍ³µÄ Apache ½ø³ÌÊýºÍÄÚ´æʹÓÿÉÒÔÓÃÈçϹ«Ê½±í´ï£º
    HttpdProcessNumber = KeepAliveTimeout * TotalRequestPerSecond / Average(KeepAliveRequests)
    HttpdUsedMemory = HttpdProcessNumber * MemoryPerHttpdProcess

    ¡¡¡¡»»³ÉÖÐÎÄ£º
    ×ÜApache½ø³ÌÊý = KeepAliveTimeout * ÿÃëÖÖHTTPÇëÇóÊý / ƽ¾ùKeepAliveÇëÇó
    ApacheÕ¼ÓÃÄÚ´æ = ×ÜApache½ø³ÌÊý * ƽ¾ùÿ½ø³ÌÕ¼ÓÃÄÚ´æÊý

    ¡¡¡¡ÐèÒªÌرð˵Ã÷µÄÊÇ£º
    ¡¡¡¡[ƽ¾ùKeepAliveÇëÇó] Êý£¬ÊÇָÿ¸öÓû§Á¬½ÓÉÏ·þÎñÆ÷ºó£¬³ÖÐø·¢³öµÄ HTTP ÇëÇóÊý¡£µ± KeepAliveTimeout µÈ 0»òÕß KeepAlive ¹Ø±Õʱ£¬KeepAliveTimeout ²»²ÎÓë³ËµÄÔËËã´ÓÉÏÃæµÄ¹«Ê½¿´£¬Èç¹û [ÿÃëÓû§ÇëÇó]¶à£¬[KeepAliveTimeout] µÄÖµ´ó£¬[ƽ¾ùKeepAliveÇëÇó] µÄֵС£¬¶¼»áÔì³É [Apache½ø³ÌÊý] ¶àºÍ [ÄÚ´æ]¶à£¬µ«Êǵ± [ƽ¾ùKeepAliveÇëÇó] µÄÖµÔ½´óʱ£¬[Apache½ø³ÌÊý] ºÍ [ÄÚ´æ] ¶¼ÊÇÇ÷ÏòÓÚ¼õÉٵġ£

    ¡¡¡¡»ùÓÚÉÏÃæµÄ¹«Ê½£¬ÎÒÃǾͿÉÒÔÍÆËã³öµ± ƽ¾ùKeepAliveÇëÇó <= KeepAliveTimeout ʱ£¬¹Ø±Õ KeepAlive Ñ¡ÏîÊÇ»®ËãµÄ£¬·ñÔò¾Í¿ÉÒÔ¿¼ÂÇ´ò¿ª¡£

         ²¹³ä2: KeepAlive ¸Ã²ÎÊý¿ØÖÆApacheÊÇ·ñÔÊÐíÔÚÒ»¸öÁ¬½ÓÖÐÓжà¸öÇëÇó£¬Ä¬ÈÏ´ò¿ª¡£µ«¶ÔÓÚ´ó¶àÊýÂÛ̳ÀàÐÍÕ¾µãÀ´Ëµ£¬Í¨³£ÉèÖÃΪoffÒԹرոÃÖ§³Ö¡£

         ²¹³ä3: Èç¹û·þÎñÆ÷Ç°ÅÜÓÐÓ¦ÓÃsquid·þÎñ£¬»òÕßÆäËüÆß²ãÉ豸,KeepAlive On É趨Ҫ¿ªÆô³ÖÐø³¤Á¬½Ó

    ʵ¼ÊÔÚ Ç°¶ËÓÐ squid µÄÇé¿öÏÂ, KeepAlive ºÜ¹Ø¼ü¡£¼ÇµÃ On

     


    9.²»¿ÉºöÂÔµÄKeepAlive ¡ª¡ª Apache ÖÐ Keep Alive ÅäÖÃ
    http://tomyz0223.iteye.com/blog/603187

    ÔÚÍøÒ³¿ª·¢¹ý³ÌÖУ¬Keep-AliveÊÇHTTPЭÒéÖзdz£ÖØÒªµÄÒ»¸öÊôÐÔ¡£´ó¼ÒÖªµÀHTTP¹¹½¨ÔÚTCPÖ®ÉÏ¡£ÔÚHTTPÔçÆÚʵÏÖÖУ¬Ã¿¸öHTTPÇëÇó¶¼Òª´ò¿ªÒ»¸ösocketÁ¬½Ó¡£ÕâÖÖ×öЧÂʺܵͣ¬ÒòΪһ¸öWeb Ò³ÃæÖеĺܶàHTTPÇëÇó¶¼Ö¸Ïòͬһ¸ö·þÎñÆ÷¡£ÀýÈ磬ºÜ¶àΪWebÒ³ÃæÖеÄͼƬ·¢ÆðµÄÇëÇó¶¼Ö¸ÏòÒ»¸öͨÓõÄͼƬ·þÎñÆ÷¡£³Ö¾ÃÁ¬½ÓµÄÒýÈë½â¾öÁ˶à¶ÔÒÑÇëÇó·þÎñÆ÷µ¼ÖµÄsocketÁ¬½ÓµÍЧÐÔµÄÎÊÌâ¡£Ëüʹä¯ÀÀÆ÷¿ÉÒÔÔÙÒ»¸öµ¥¶ÀµÄÁ¬½ÓÉϽøÐжà¸öÇëÇó¡£ä¯ÀÀÆ÷ºÍ·þÎñÆ÷ʹÓÃConnectionÍ·ilaiÖ¸³ö¶Ô Keep-AliveµÄÖ§³Ö¡£

     

    ±ÊÕßÔÚÈ¥ÄêÓöµ½Ò»¸ö¸úKeep-AliveµÄÎÊÌ⣺

     

    ÎÊÌâÏÖÏó£º Ò»¸öJSPÒ³Ã棬¾ÓȻҪºÄʱ40¶àÃë¡£ÍøÒ³ÖÐÓдóÁ¿µÄͼƬµÄCSS

     

    ÎÊÌâ½â¾ö£º Ô­ÒòÒ²ÕÒÁË°ëÌ죬ԭÀ´ApacheÅäÖÃÀïÃ棬°ÑKeep-AliveµÄ¿ª¹Ø¹Ø±ÕÁË¡£Õâ¸öÊǸö´óÎÊÌ⣬¹¤³ÌʦΪʲôҪ¹Ø±ÕËü£¬Ô­À´Ëû¿¼ÂǵÄÌ«¼òµ¥ÁË£¬ÎÒÃÇÖªµÀApacheÊʺϴ¦ÓÚ¶ÌÁ¬½ÓµÄÇëÇ󣬴¦Àíʱ¼äÔ½¶Ì£¬²¢·¢Êý²ÅÄÜÉÏÈ¥£¬Ô­À´ËûÊÇÕâô¿¼ÂÇ£¬µ«ÊÇûÓа취£¬Ö»ÄÜÕâÑùÁË£¬»¹ÊÇ´ò¿ªKeep-Alive¿ª¹Ø°É¡£

     

    µ±È»£¬²»ÊÇËùÓеÄÇé¿ö¶¼ÉèÖÃKeepAliveΪOn£¬ÏÂÃæµÄÎÄ×Ö×ܽá±È½ÏºÃ£º

     

    ¡¾ÔÚʹÓÃapache µÄ¹ý³ÌÖУ¬KeepAlive ÊôÐÔÎÒÒ»Ö±±£³ÖΪĬÈÏÖµOn£¬Æäʵ£¬¸ÃÊôÐÔÉèÖÃΪOn»¹ÊÇOff»¹ÊÇÒª¾ßÌåÎÊÌâ¾ßÌå·ÖÎöµÄ£¬ÔÚÉú²ú»·¾³ÖеÄÓ°Ï컹ÊÇÂù´óµÄ¡£

    KeepAlive Ñ¡Ïîµ½µ×ÓÐʲôÓô¦£¿Èç¹ûÄãÓùýMysql £¬Ó¦¸ÃÖªµÀMysqlµÄÁ¬½ÓÊôÐÔÖÐÓÐÒ»¸öÓëKeepAlive ÀàËƵÄPersistent Connection£¬¼´£º³¤Á¬½Ó(PConnect)¡£¸ÃÊôÐÔ´ò¿ªµÄ»°£¬¿ÉÒÔʹһ´ÎTCPÁ¬½ÓΪͬһÓû§µÄ¶à´ÎÇëÇó·þÎñ£¬Ìá¸ßÁËÏìÓ¦Ëٶȡ£

    ±ÈÈçºÜ¶àÍøÒ³ÖÐͼƬ¡¢CSS¡¢JS¡¢Html¶¼ÔÚһ̨ServerÉÏ£¬µ±Óû§·ÃÎÊÆäÖеÄHtmlÍøҳʱ£¬ÍøÒ³ÖеÄͼƬ¡¢Css¡¢Js¶¼¹¹³ÉÁË·ÃÎÊÇëÇ󣬴ò¿ªKeepAlive ÊôÐÔ¿ÉÒÔÓÐЧµØ½µµÍTCPÎÕÊֵĴÎÊý(µ±È»ä¯ÀÀÆ÷¶ÔͬһÓòÏÂͬʱÇëÇóµÄͼƬÊýÓÐÏÞÖÆ£¬Ò»°ãÊÇ2)£¬¼õÉÙhttpd½ø³ÌÊý£¬´Ó¶ø½µµÍÄÚ´æµÄʹÓÃ(¼Ù¶¨preforkģʽ)¡£MaxKeepAliveRequests ºÍKeepAliveTimeOut Á½¸öÊôÐÔÔÚKeepAlive =OnʱÆð×÷Ó㬿ÉÒÔ¿ØÖƳ־ÃÁ¬½ÓµÄÉú´æʱ¼äºÍ×î´ó·þÎñÇëÇóÊý¡£

    ²»¹ý£¬ÉÏÃæ˵µÄÖ»ÊÇÒ»ÖÖÇéÐΣ¬ÄǾÍÊǾ²Ì¬ÍøÒ³¾Ó¶àµÄÇé¿öÏ£¬²¢ÇÒÍøÒ³ÖеÄÆäËûÇëÇóÓëÍøÒ³ÔÚͬһ̨ServerÉÏ¡£µ±ÄãµÄÓ¦Óö¯Ì¬³ÌÐò(±ÈÈ磺php )¾Ó¶à£¬Óû§·ÃÎÊʱÓɶ¯Ì¬³ÌÐò¼´Ê±Éú³ÉhtmlÄÚÈÝ£¬htmlÄÚÈÝÖÐͼƬËزĺÍCss¡¢JsµÈ±È½ÏÉÙ»òÕßÉ¢ÁÐÔÚÆäËûServerÉÏʱ£¬KeepAlive =On·´¶ø»á½µµÍApache µÄÐÔÄÜ¡£ÎªÊ²Ã´ÄØ£¿

    Ç°ÃæÌáµ½¹ý£¬KeepAlive =Onʱ£¬Ã¿´ÎÓû§·ÃÎÊ£¬´ò¿ªÒ»¸öTCPÁ¬½Ó£¬Apache ¶¼»á±£³Ö¸ÃÁ¬½ÓÒ»¶Îʱ¼ä£¬ÒÔ±ã¸ÃÁ¬½ÓÄÜÁ¬ÐøΪͬһclient·þÎñ£¬ÔÚKeepAliveTimeOut»¹Ã»µ½ÆÚ²¢ÇÒMaxKeepAliveRequests»¹Ã»µ½ãÐֵ֮ǰ£¬Apache ±ØȻҪÓÐÒ»¸öhttpd½ø³ÌÀ´Î¬³Ö¸ÃÁ¬½Ó£¬httpd½ø³Ì²»ÊÇÁ®¼ÛµÄ£¬ËûÒªÏûºÄÄÚ´æºÍCPUʱ¼äƬµÄ¡£¼ÙÈ統ǰApache ÿÃëÏìÓ¦100¸öÓû§·ÃÎÊ£¬KeepAliveTimeOut=5£¬´Ëʱhttpd½ø³ÌÊý¾ÍÊÇ100*5=500¸ö(prefork ģʽ)£¬Ò»¸öhttpd½ø³ÌÏûºÄ5MÄÚ´æµÄ»°£¬¾ÍÊÇ500*5M=2500M=2.5G£¬¿äÕÅ°É£¿µ±È»£¬Apache ÓëClientÖ»½øÐÐÁË100´ÎTCPÁ¬½Ó¡£Èç¹ûÄãµÄÄÚ´æ¹»´ó£¬ÏµÍ³¸ºÔز»»áÌ«¸ß£¬Èç¹ûÄãµÄÄÚ´æСÓÚ2.5G£¬¾Í»áÓõ½Swap£¬Æµ·±µÄSwapÇл»»á¼ÓÖØCPUµÄLoad¡£

    ÏÖÔÚÎÒÃǹصôKeepAlive £¬Apache ÈÔȻÿÃëÏìÓ¦100¸öÓû§·ÃÎÊ£¬ÒòΪÎÒÃǽ«Í¼Æ¬¡¢js¡¢cssµÈ·ÖÀë³öÈ¥ÁË£¬Ã¿´Î·ÃÎÊÖ»ÓÐ1¸örequest£¬´ËʱhttpdµÄ½ø³ÌÊýÊÇ100*1=100¸ö£¬Ê¹ÓÃÄÚ´æ100*5M=500M£¬´ËʱApache ÓëClientÒ²ÊǽøÐÐÁË100´ÎTCPÁ¬½Ó¡£ÐÔÄÜÈ´ÌáÉýÁËÌ«¶à¡£

    ×ܽ᣺

    1¡¢µ±ÄãµÄServerÄÚ´æ³ä×ãʱ£¬KeepAlive =On»¹ÊÇOff¶ÔϵͳÐÔÄÜÓ°Ïì²»´ó¡£

    2¡¢µ±ÄãµÄServerÉϾ²Ì¬ÍøÒ³(Html¡¢Í¼Æ¬¡¢Css¡¢Js)¾Ó¶àʱ£¬½¨Òé´ò¿ªKeepAlive ¡£

    3¡¢µ±ÄãµÄServer¶àΪ¶¯Ì¬ÇëÇó(ÒòΪÁ¬½ÓÊý¾Ý¿â£¬¶ÔÎļþϵͳ·ÃÎʽ϶à)£¬KeepAlive ¹Øµô£¬»á½ÚÊ¡Ò»¶¨µÄÄڴ棬½ÚÊ¡µÄÄÚ´æÕýºÃ¿ÉÒÔ×÷ΪÎļþϵͳµÄCache(vmstatÃüÁîÖÐcacheÒ»ÁÐ)£¬½µµÍI/OѹÁ¦¡£

    PS£ºµ±KeepAlive =Onʱ£¬KeepAliveTimeOutµÄÉèÖÃÆäʵҲÊÇÒ»¸öÎÊÌ⣬ÉèÖõĹý¶Ì£¬»áµ¼ÖÂApache Ƶ·±½¨Á¢Á¬½Ó£¬¸øCpuÔì³ÉѹÁ¦£¬ÉèÖõĹý³¤£¬ÏµÍ³Öоͻá¶Ñ»ýÎÞÓõÄHttpÁ¬½Ó£¬ÏûºÄµô´óÁ¿Äڴ棬¾ßÌåÉèÖöàÉÙ£¬¿ÉÒÔ½øÐв»¶ÏµÄµ÷½Ú£¬ÒòÄãµÄÍøÕ¾ä¯ÀÀºÍ·þÎñÆ÷ÅäÖà ¶øÒì¡£

     


    10. HTTPЭÒéÖеij־ÃÁ¬½Óconnection:keep-alive£¬µÄһЩÎÊÌâºÍ˼¿¼£¬²Î¿¼¡£
    http://www.51sea.com/cache/water/587.html

    ¹ØÓÚkeep-aliveÕâ¸ö¶«Î÷£¬ÊÇ·ñÒª¿ª·Å£¬¶ÔÐÔÄܾ¿¾¹ÓкÎÓ°Ï죬Ŀǰ´ó¼Ò¹À¼ÆÒ²¶¼ÊÇ´Ó¾­Ñé·½ÃæÀ´ÉèÖõģ¬Ã»ÓдÓÀíÂÛ²ãÃæµÄÌÖÂÛ£¬½ñÌìÎÒÀ´ÍÚ¸ö¿Ó£¬Ï£Íû´ó¼ÒÓ»Ô¾ÍùÀïÌø¡£

    ¼òµ¥ÕûÀíÒ»ÏÂÎÊÌâÒªµã£º

    1£¬keep-aliveµÄ¹¤×÷Ô­ÀíÊÇʲô£¬Äܽâ¾öʲôÎÊÌ⣿
    2£¬web serverÉèÖÃÁËkeep-alive£¬ÊÇ·ñÐèҪϼ¶Ð­ÒéÕµµÄÖ§³Ö²ÅÆð×÷Óã¿ÀýÈçÊÇ·ñÒªÆôÓÃtcp/ipµÄkeep alive»úÖÆ£¿
    3£¬web serverÉèÖÃÁËkeep-alive£¬ÊÇ·ñÒª¿Í»§¶Ëä¯ÀÀÆ÷ÓÐÏàÓ¦Ö§³Ö£¿ÊÇ·ñÒª¿Í»§¶ËЭÒéÕµµÄÖ§³Ö£¿Èç¹ûÒªµÃ»°£¬ÎÒÃÇͨ³£Ê¹Óõĸ÷ÖÖϵͳÒÔ¼°¸÷ÖÖä¯ÀÀÆ÷Ö§³ÖµÄÇé¿öÔõÑù£¿
    4£¬keep-alive»á´øÀ´ÐÔÄÜÌáÉýÂ𣿾ßÌåÌåÏÖÔÚʲô·½Ã棿ÀýÈç¿É³ÐÔظ߲¢·¢·ÃÎÊ£¿»òÕßÊÇ¿ÉÌáÉý´«ÊäÐÔÄÜ£¿ÔÙ»òÕ߿ɼõÇá·þÎñÆ÷ѹÁ¦£¿ÔڵͷÃÎÊÁ¿ºÍ¸ß·ÃÎÊÁ¿Çé¿öÏÂÓкÎÇø±ð£¿


    ¾ÍÎÒ¸öÈ˵ÄÀí½âÀ´¿´£¬keep-aliveÊÇÀûÓÃÁËtcpµÄË«ÏòÈ«Ë«¹¤Á¬½ÓÌØÐÔ£¬ÔÚweb-server¶Ë¿ÉÒÔ²»¶Ï¿ªÁ¬½Ó£¬À´½ÓÊÜ¿Í»§¶Ë¸ü¶àµÄÇëÇó£¬Ó¦¸ÃÊÇÄܹ»¸ÄÉÆÁ¬½Óʱ¼ä£¬²»¹ýËƺõÔÚÁ¬½Ó·Ç³£¶àµÄÇé¿öÏ»á´ó´ó¼ÓÖØ·þÎñÆ÷¸ºµ££¬ÐèÒªtcp/ipЭÒéÕµÖ§³Ö£¬²¢ÇÒ²»Í¬¿Í»§¶ËÖ®¼äÓв»Í¬µÄÉ趨£¬¾ßÌåϸ½Ú»¹²»Ïê¡£
    Â¥ÉϵÄÎÄÕÂÊܽÌÁË£¬¼òµ¥Ëµ¾ÍÊÇ´ÓhttpЭÒéµÄÇé¿öÀ´¿´£¬Ä¬ÈÏ1.0Êǹرյģ¬ÐèÒªÔÚhttpÍ·¼ÓÈëConnection: Keep-Alive²ÅÄÜ·¢Æðkeep-aliveµÄÁ¬½Ó£¬¶øhttp1.1ЭÒéĬÈÏÆôÓÃkeep-alive£¬Èç¹û¼ÓÈëConnection: close Ôò¾ÍÇ¿Öƹرա£

    Ä¿Ç°´ó²¿·Öä¯ÀÀÆ÷¶¼ÊÇÓÃhttp1.1ЭÒ飬Ҳ¾ÍÊÇ˵ĬÈ϶¼»á·¢Æðkeep-aliveµÄÁ¬½ÓÇëÇóÁË£¬ËùÒÔÊÇ·ñÄÜÍê³ÉÒ»¸öÍêÕûµÄkeep-aliveÁ¬½Ó¾Í¿´·þÎñÆ÷ÉèÖÃÇé¿ö¡£

    ÎÒÍƲâ·þÎñÆ÷·µ»ØµÄhttpÍ·Ó¦¸Ã°üº¬¹ØÓÚkeep-aliveµÄÐÅÏ¢£¬»ØÈ¥×¥°üÕýÊÇһϡ£


    Â¥ÉϵÄÎÄÕÂ˵ÎÒÔÚÍøÉÏÕÒµ½µÄ£¬ÊÂʵÉÏ·þÎñÆ÷ȷʵ»á·µ»Ø¹ØÓÚkeep-aliveµÄÏûÏ¢¡£×î¼òµ¥µÄ·½·¨£¬²»ÐèÒªÈκζîÍâµÄÈí¼þ£¬Äã¿ÉÒÔ´ò¿ªÑ¸À×£¬Ëæ±ãÏÂÔØÒ»¸öÎļþ£¬È»ºó²é¿´ÈÎÎñÏêÇéÀïÃ棬Ëû¾ÍÓÐhttpÇëÇóºÍ»ØÓ¦µÄheaderÐÅÏ¢£¬´ÓÕâ¸öÀïÃæ¿ÉÒÔÇå³þµÄ¿´µ½¿Í»§¶ËÔÚheaderÉèÖÃÁËkeep- alive£¬¶ø·þÎñÆ÷·µ»ØʱҲÓÐÕâ¸öheader×ֶΡ£
    ²»¹ýÎÒ¸Õ¿ªÊ¼»¹ÔÚµ£ÐÄÒ»¸öÎÊÌ⣬ËûÊÇÔõô±£³ÖÁ¬½ÓµÄÄØ£¿¼ÈȻ˵µ½httpÊÇÎÞ״̬µÄ£¬ÄÇserver¸ù±¾¾Í²»ÖªµÀÕâ¸öÁ¬½Ó½¨Á¢¶à¾ÃÁË£¬Èç¹ûÊý¾ÝÒѾ­´«ËÍÍê±Ï£¬ÄÇ¿Í»§¶ËÓ¦¸Ã²»»á¼ÌÐøÏëserverÇëÇóÁË°É£¿¼ÈȻûÓÐÊý¾Ý½»»¥£¬Ò²Ã»ÓÐ״̬ÐÅÏ¢£¬ÄÇÔõô±£³ÖÉõÖÁÊǽáÊøÕâ¸öÁ¬½ÓÄØ£¿ÖÁÉÙÎÒÔÚÍøÉÏ¿´µ½µÄ´ð°¸ÊÇÕâ¸öÁ¬½ÓÊDz»Äܱ£³ÖºÜ¾ÃµÄ£¬Ò»°ã×î¶à¿ÕÏÐÁ½·ÖÖÓ¶øÒÑ¡£ÕâôÀ´¿´»¹ÊÇ¿ÉÒÔ½ÓÊܵġ£


    ÁíÍâÒ»¸öÎÊÌâÊÇ£¬ÍøÉϹØÓÚÕâ·½ÃæµÄ×ÊÁϺÃÏñºÜÉÙ£¬ÖÁÉÙÖÐÎĵÄÊÇÕâÑù£¬°Ù¶Ègooglge²»µ½¡£µ«ÊÇʵ¼ÊÉÏ¡¶¼ÆËã»úÍøÂç--×Ô¶¥ÏòÏ·½·¨Óëinternet ÌØÉ«¡·Õâ±¾ÊéÊǽ²µÃºÜÇå³þµÄ¡£ÔÚÖÐÒë±¾P60»òÔ­°æP89¾ÍÓÐÊ®·ÖÏêϸÉú¶¯µÄ½âÊÍ£¬ÕâÀïûÓÐʱ¼ä°ÑËûдÉÏÀ´ÁË¡£µ±È»£¬ÊéÖеÄÒ»¸ö²»×ãÊÇûÓÐÔÚÄÇÀïÌáµ½Õâ¸ö³Ö¾ÃÁ¬½ÓÊÇÔÚheaderÖÐÉèÖÃconnection×Ö¶ÎÀ´ÊµÏֵģ¬µ±È»ÁË£¬ÕâÒ²ÊÇÒòΪÄǸöʱºòÊéÉÏ»¹Ã»Óн²µ½http headerµÄ½á¹¹¡£


    11. FireFoxϵÄHTTPÇëÇó¹¹Ôìµ÷ÊÔ¹¤¾ßTamper 
    TamperÊÇfirefoxϵÄHTTPÇëÇó¼àÌýºÍµ÷ÊÔ¹¤¾ß£¬¹¦ÄܺÍFiddler²î²»¶à£¬µ«ÓÃÆðÀ´±ÈFiddler¸ü¼Ó·½±ã£¬±Ï¾¹ÊÇfirefoxϵÄÀ©Õ¹¡£Í¬ÑùµÄ£¬
    ¿ÉÒÔ¶ÔÇëÇó½øÐÐÀ¹½Ø£¬ÐÞ¸ÄÇëÇóÍ·ºÍÇëÇó²ÎÊýµÈÐÅÏ¢£¬·½±ã½øÐгÌÐòµ÷ÊÔºÍÎÊÌâ¼à¿Ø¡£¿ÉÒÔ´ÓÕâÀïÏÂÔØ£ºhttps://addons.mozilla.org/zh-CN/firefox/addon/966/
    Ö±½ÓÔÚ"¸½¼Ó²å¼þ"ÀïËÑË÷Tamper°É£º

     


    ²Î¿¼ÎÄÕ»ã×Ü£º

    1.HTTPÎÞ״̬ЭÒéºÍConnection:Keep-AliveÈÝÒ×·¸µÄÎóÇø
    http://liuzhigong.blog.163.com/blog/static/178272375201141344312315/

    2. http³¤Á¬½ÓÓë¶ÌÁ¬½Ó¡ª¡ª¿ÉÒÔÁ˽âϳ£¼ûµÄͨÐų¡¾°
    http://www.cnblogs.com/Roberts/archive/2010/12/05/1986550.html

    3.  http³¤Á¬½Ó¼¼ÊõÎÄÕ·­Ò롪¡ª¹ØÓÚhttp³¤Á¬½ÓÓкܶàÖØÒªµÄ¸ÅÄî
    http://www.blogjava.net/xjacker/articles/334709.html

    4.Apache ÖÐ Keep Alive ÅäÖõĺÏÀíʹÓ᪡ªÀïÃæµÄ¹«Ê½ºÍ¼ÆËã·½·¨£¬Ã»¿´¶®£¬²»ÒªÃÔÐÅ»¹ÊÇҪʵ֤
    http://blog.163.com/hai_zone/blog/static/264611372010718103838356/?fromdm&fromSearch&isFromSearchEngine=yes

    5.²»¿ÉºöÂÔµÄKeepAlive ¡ª¡ª Apache ÖÐ Keep Alive ÅäÖÃ
    http://tomyz0223.iteye.com/blog/603187

    6.HTTPЭÒéÖеij־ÃÁ¬½Óconnection:keep-alive£¬µÄһЩÎÊÌâºÍ˼¿¼£¬²Î¿¼¡£
    http://www.51sea.com/cache/water/587.html

     

    ͼƬºÍÎÄÕ¸½¼þ£º loadrunner_http³¤Á¬½ÓÉèÖÃ.rar(1.39 MB)

  • ÕýÔò±í´ïʽ±Ê¼Ç¼°ÕýÔò±í´ïʽ30·ÖÖÓÈëÃŽ̳Ì

    2011-07-18 17:01:09

  • ºÜ¶àÓÎϷͳ¼ÆÊý¾ÝÀïµÄÊýÖµmau£¬dauÖ®À࣬ÊÇʲôÒâ˼

    2011-07-18 14:13:36

    DAU=daily active users
    MAU=monthly active users

     

    ±¾ÖÜDAUÉÏÉý×î¿ìFacebookÓÎÏ·ÅÅÐаñ   2011Äê01ÔÂ13ÈÕ

  • ²âÊÔblogÍƼö

    2011-07-18 11:00:50

     

    1. ÂôÉÕ¿¾µÄÓã http://www.cnblogs.com/mayingbao/

    2. JasonµÄ²âÊÔÈËÉú  http://www.futurehandw.com/

    3. http://hi.baidu.com/higkoo/blog/category/Loadrunner/index/0

    4. ÌÔ±¦²âÊÔ  http://qa.taobao.com/

    5.gzh0222µÄרÀ¸

    http://blog.csdn.net/gzh0222/article/category/852986

     

    6.

    http://www.bish.co.uk/forum/


    Useful tools when performance testing  http://www.bish.co.uk/forum/index.php?topic=27.msg31#msg31

    LoadRunner y-lib library files from Floris Kraak
    http://www.bish.co.uk/forum/index.php?topic=84.0

     

     

  • 503´íÎó

    2011-07-12 16:57:23

    503´íÎó

    Ô­Òò£º

    1. µ±ÇëÇóµ½´ïʱӦÓóÌÐò³Øʱ¶ÓÁÐÒÑÂú£¬ºÍÓ¦Ó÷þÎñÆ÷µÄÇëÇó¶ÓÁÐÏÞÖÆappRequestQueueLimitÊôÐÔÉèÖõÄֵ̫µÍÓйأ¬ÐèÒªµ÷ÕûÓ¦Ó÷þÎñÆ÷µÄÅäÖ㬵÷¸ßÇëÇó¶ÓÁеÄÉÏÏÞ£¬µÈ´ýʱ¼ä

    2. µ÷Óõײã½Ó¿Ú³¬Ê±£¬£¨µ÷Óõײã½Ó¿Ú³¬Ê±£¬µ÷Óýӿڻá×öÒ»¶¨µÄ´¦Àí£¬»áÖ÷¶¯¹Ø±ÕÇëÇóÁ´½Ó£»ÓÐÖØÊÔ´ÎÊýÉèÖõģ¬³¬¹ýÖØÊÔ´ÎÊýÒ²¿ÉÄÜ»á¹Ø±Õ£©

     

    ¼ò½é

    ¡¡¡¡503ÊÇÒ»ÖÖHTTP״̬Âë¡£Ó¢ÎÄÃû503 Service UnavailableÓë404£¨404 Service Unavailable)ÊÇͬÊôÒ»ÖÖÍøҳ״̬³ö´íÂ롣ǰÕßÊÇ·þÎñÆ÷³ö´íµÄÒ»ÖÖ·µ»Ø״̬£¬ºóÕßÊÇÍøÒ³³ÌÐòûÓÐÏà¹Ø½á¹ûºó·µ»ØµÄÒ»ÖÖ״̬£¬ÐèÒªÓÅ»¯ÍøÕ¾µÄʱºòͨ³£ÐëÒªÖÆ×÷404³ö´íÒ³ÒѱãÍøÕ¾ÕûÌåÓÅ»¯¡£
    ¡¡¡¡ÓÉÓÚÁÙʱµÄ·þÎñÆ÷ά»¤»òÕß¹ýÔØ£¬·þÎñÆ÷µ±Ç°ÎÞ·¨´¦ÀíÇëÇó¡£Õâ¸ö×´¿öÊÇÁÙʱµÄ£¬²¢ÇÒ½«ÔÚÒ»¶Îʱ¼äÒÔºó»Ö¸´¡£Èç¹ûÄܹ»Ô¤¼ÆÑÓ³Ùʱ¼ä£¬ÄÇôÏìÓ¦ÖпÉÒÔ°üº¬Ò»¸ö Retry-AfterÆðÍ·ÓÃÒÔ±êÃ÷Õâ¸öÑÓ³Ùʱ¼ä¡£Èç¹ûûÓиø³öÕâ¸ö Retry-AfterÐÅÏ¢£¬ÄÇô¿Í»§¶ËÓ¦µ±ÒÔ´¦Àí500£¨Server Internal Error)ÏìÓ¦µÄ·½Ê½´¦ÀíËü¡£
      

    503

    ×¢Ò⣺503״̬ÂëµÄ´æÔÚ²¢²»Òâζ×Å·þÎñÆ÷ÔÚ¹ýÔصÄʱºò±ØÐëʹÓÃËü¡£Ä³Ð©·þÎñÆ÷Ö»²»¹ýÊÇÏ£Íû¾Ü¾ø¿Í»§¶ËµÄÁ¬½Ó¡£

     

     

     

    ·ÖÎö£º

    ³öÏÖ503´íÎó£¬ÆäÈÕÖ¾¶¼ÊǼǼÔÚ%Systemroot%\System32\LogFiles\HTTPERR\httperr1.logÖС£

    ¡¡¡¡ÆäÖеÄs-reasonÏ

    ¡¡¡¡1¡¢ÈôΪAppShutdown£¬¿ÉÄÜÊÇÓÉÓÚCPUÕ¼ÓÃÂÊÌ«¸ßµ¼ÖÂ×Ô¶¯¹Ø±ÕÓ¦ÓóÌÐò³Ø¡£

    ¡¡¡¡2¡¢ÈôΪAppOffline£¬¿ÉÄÜÊÇÓÉÓÚÓ¦ÓóÌÐò±êʶ³ö´íÒýÆðµÄ¡£

    ¡¡¡¡3¡¢ÈôΪDisabled£¬¿ÉÄÜÊÇÓɹÜÀíÔ±ÊÖ¹¤¹Ø±ÕÓ¦ÓóÌÐò³ØÒýÆðµÄ¡£

    ¡¡¡¡4¡¢ÈôΪQueueFull£¬¿ÉÄÜÊÇÒòΪÇëÇóʱӦÓóÌÐò³Ø¶ÓÁÐÒÑÂú¶øÉú³É¸Ã´íÎó¡£

     

    ÍøÒ³³öÏÖ503´íÎóÔ­Òò

    ¡¡¡¡ ÍøÒ³³öÏÖ503´íÎóÔ­Òò£º

       1¡¢ÍøÂç¹ÜÀíÔ±¿ÉÄܹرÕÓ¦ÓóÌÐò³ØÒÔÖ´ÐÐά»¤¡£

    ¡¡¡¡2¡¢µ±ÇëÇóµ½´ïʱӦÓóÌÐò³Ø¶ÓÁÐÒÑÂú¡£

    ¡¡¡¡3¡¢Ó¦ÓóÌÐò³Ø±êʶûÓÐʹÓÃÔ¤¶¨ÒåÕË»§£ºÍøÂç·þÎñ£¬¶ø×Ô¼ºÅäÖÃÁ˱êʶ£¬µ«ÊÇÅäÖõÄÕâ¸öÓû§²»ÊôÓÚIIS_WPG×é

    ¡¡¡¡4¡¢Ó¦ÓóÌÐò³ØÆôÓÃÁËCPU¼àÊÓ£¬²¢ÇÒÉèÖÃÁËCPUÀûÓÃÂʳ¬¹ýÒ»¶¨°Ù·Ö±È¹Ø±ÕÓ¦ÓóÌÐò³Ø£¬¶ø¿ª·¢ÈËԱдµÄ·þÎñ¶ËÒ³Ã棨.asp,.aspx£©Ö´ÐÐЧÂʲ»¸ß£¬»áÒýÆðCPUµÄ³¤Ê±¼äÕ¼Óã¬×îÖÕ´ïµ½ÉèÖõİٷֱȣ¬´Ó¶øÒýÆðÓ¦ÓóÌÐò³Ø¹Ø±Õ

    ¡¡¡¡5¡¢Ó¦ÓóÌÐò³ØµÄÐÔÄÜÑ¡ÏµÄÇëÇó¶ÓÁÐÏÞÖÆËùÌîµÄÊýֵ̫С£¬Ä¬ÈÏΪ1000¡£

    ¡¡¡¡6¡¢web.configµÄsystem.web/httpRuntime½ÚµãµÄappRequestQueueLimitÊôÐÔÉèÖõÄֵ̫µÍ¡£

     

  • traceroute ²é¿´Êý¾Ý°ü¾­¹ýµÄ·ÓÉÐÅÏ¢

    2011-07-11 14:43:02

     

    ¶¨Òå

    Ïêϸ½âÊÍ

    ¡¡¡¡

      

    ´ÓÍþº£µ½°Ù¶ÈµÄ·¾¶

    Internet£¬¼´¹ú¼Ê»¥ÁªÍø£¬ÊÇÄ¿Ç°ÊÀ½çÉÏ×î´óµÄ¼ÆËã»úÍøÂ磬¸üÈ·ÇеØ˵ÊÇÍøÂçµÄÍøÂç¡£ËüÓɱ鲼ȫÇòµÄ¼¸Íò¾ÖÓòÍøºÍÊý°ÙÍǫ̀¼ÆËã»ú×é³É£¬²¢Í¨¹ýÓÃÓÚÒì¹¹ÍøÂçµÄTCP/IPЭÒé½øÐÐÍø¼äͨÐÅ¡£»¥ÁªÍøÖУ¬ÐÅÏ¢µÄ´«ËÍÊÇͨ¹ýÍøÖÐÐí¶à¶ÎµÄ´«Êä½éÖʺÍÉ豸£¨Â·ÓÉÆ÷£¬½»»»»ú£¬·þÎñÆ÷£¬Íø¹ØµÈµÈ£©´ÓÒ»¶Ëµ½´ïÁíÒ»¶Ë¡£Ã¿Ò»¸öÁ¬½ÓÔÚInternetÉϵÄÉ豸£¬ÈçÖ÷»ú¡¢Â·ÓÉÆ÷¡¢½ÓÈë·þÎñÆ÷µÈÒ»°ãÇé¿ö϶¼»áÓÐÒ»¸ö¶ÀÁ¢µÄIPµØÖ·¡£Í¨¹ýTracerouteÎÒÃÇ¿ÉÒÔÖªµÀÐÅÏ¢´ÓÄãµÄ¼ÆËã»úµ½»¥ÁªÍøÁíÒ»¶ËµÄÖ÷»úÊÇ×ßµÄʲô·¾¶¡£µ±È»Ã¿´ÎÊý¾Ý°üÓÉijһͬÑùµÄ³ö·¢µã£¨source£©µ½´ïijһͬÑùµÄÄ¿µÄµØ(destination)×ߵķ¾¶¿ÉÄܻ᲻һÑù£¬µ«»ù±¾ÉÏÀ´Ëµ´ó²¿·ÖʱºòËù×ߵķÓÉÊÇÏàͬµÄ¡£UNIXϵͳÖУ¬ÎÒÃdzÆ֮ΪTraceroute,MS WindowsÖÐΪTracert¡£ Tracerouteͨ¹ý·¢ËÍСµÄÊý¾Ý°üµ½Ä¿µÄÉ豸ֱµ½Æä·µ»Ø£¬À´²âÁ¿ÆäÐèÒª¶à³¤Ê±¼ä¡£Ò»Ìõ·¾¶ÉϵÄÿ¸öÉ豸TracerouteÒª²â3´Î¡£Êä³ö½á¹ûÖаüÀ¨Ã¿´Î²âÊÔµÄʱ¼ä(ms)ºÍÉ豸µÄÃû³Æ£¨ÈçÓеĻ°£©¼°ÆäIPµØÖ·¡£

     

     

     

    Àý×Ó

    ¡¡¡¡ÔÚ´ó¶àÊýÇé¿öÏ£¬×÷ΪÍøÂ繤³Ì¼¼ÊõÈËÔ±»òÕßϵͳ¹ÜÀíÔ±»áÔÚUNIXÖ÷»úϵͳÏ£¬Ö±½ÓÖ´ÐÐÃüÁîÐУº

    ¡¡¡¡Traceroute hostname

    ¡¡¡¡¶øÔÚWindowsϵͳÏÂÊÇÖ´ÐÐTracertµÄÃüÁ

    ¡¡¡¡Tracert hostname

    ¡¡¡¡±ÈÈçÔÚ±±¾©µØÇøʹÓÃwindows NT Ö÷»ú£¨ÒѾ­Óë±±¾©163½¨Á¢Á˵ã¶ÔµãµÄÁ¬½Óºó£©

    ¡¡¡¡Ê¹ÓÃNTϵͳÖеÄTracertÃüÁ(Óû§¿ÉÓ㺿ªÊ¼;ÔËÐÐ,ÊäÈë"command" µ÷³öcommand´°¿ÚʹÓôËÃüÁ

    ¡¡¡¡C:\>tracert www.yahoo.com

    ¡¡¡¡Tracing route to www.yahoo.com [204.71.200.75]

    ¡¡¡¡over a maximum of 30 hops:

    ¡¡¡¡1 161 ms 150 ms 160 ms 202.99.38.67

    ¡¡¡¡2 151 ms 160 ms 160 ms 202.99.38.65

    ¡¡¡¡3 151 ms 160 ms 150 ms 202.97.16.170

    ¡¡¡¡4 151 ms 150 ms 150 ms 202.97.17.90

    ¡¡¡¡5 151 ms 150 ms 150 ms 202.97.10.5

    ¡¡¡¡6 151 ms 150 ms 150 ms 202.97.9.9

    ¡¡¡¡7 761 ms 761 ms 752 ms border7-serial3-0-0.Sacramento.cw.net [204.70.122.69]

    ¡¡¡¡8 751 ms 751 ms * core2-fddi-0.Sacramento.cw.net [204.70.164.49]

    ¡¡¡¡9 762 ms 771 ms 751 ms border8-fddi-0.Sacramento.cw.net [204.70.164.67]

    ¡¡¡¡10 721 ms * 741 ms globalcenter.Sacramento.cw.net [204.70.123.6]

    ¡¡¡¡11 * 761 ms 751 ms pos4-2-155M.cr2.SNV.globalcenter.net [206.132.150.237]

    ¡¡¡¡12 771 ms * 771 ms pos1-0-2488M.hr8.SNV.globalcenter.net [206.132.254.41]

    ¡¡¡¡13 731 ms 741 ms 751 ms bas1r-ge3-0-hr8.snv.yahoo.com [208.178.103.62]

    ¡¡¡¡14 781 ms 771 ms 781 ms www10.yahoo.com [204.71.200.75]

    ¡¡¡¡Trace complete.

    ¡¡¡¡ÄúÄ¿Ç°ÕýÔÚONLINE״̬µÄ»°£¬¿ÉÒÔÖ±½Ó³¢ÊÔһϡ£

    ²ÎÊý˵Ã÷£º

    ¡¡¡¡tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name

    ¡¡¡¡¸ÃÕï¶ÏʵÓóÌÐòͨ¹ýÏòÄ¿µÄµØ·¢Ë;ßÓв»Í¬Éú´æʱ¼ä (TTL) µÄ Internet ¿ØÖÆÐÅϢЭÒé (ICMP) »ØÓ¦±¨ÎÄ£¬ÒÔÈ·¶¨ÖÁÄ¿µÄµØµÄ·ÓÉ¡£Â·¾¶ÉϵÄÿ¸ö·ÓÉÆ÷¶¼ÒªÔÚת·¢¸Ã ICMP »ØÓ¦±¨ÎÄ֮ǰ½«Æä TTL ÖµÖÁÉÙ¼õ 1£¬Òò´Ë TTL ÊÇÓÐЧµÄÌøת¼ÆÊý¡£µ±±¨ÎÄµÄ TTL Öµ¼õÉÙµ½ 0 ʱ£¬Â·ÓÉÆ÷ÏòԴϵͳ·¢»Ø ICMP ³¬Ê±ÐÅÏ¢¡£Í¨¹ý·¢ËÍ TTL Ϊ 1 µÄµÚÒ»¸ö»ØÓ¦±¨ÎIJ¢ÇÒÔÚËæºóµÄ·¢ËÍÖÐÿ´Î½« TTL Öµ¼Ó 1£¬Ö±µ½Ä¿±êÏìÓ¦»ò´ïµ½×î´ó TTL Öµ£¬Tracert ¿ÉÒÔÈ·¶¨Â·ÓÉ¡£Í¨¹ý¼ì²éÖмä·ÓÉÆ÷·¢·¢»ØµÄ ICMP ³¬Ê± (ime Exceeded) ÐÅÏ¢£¬¿ÉÒÔÈ·¶¨Â·ÓÉÆ÷¡£×¢Ò⣬ÓÐЩ·ÓÉÆ÷¡°°²¾²¡±µØ¶ªÆúÉú´æʱ¼ä (TLS) ¹ýÆڵı¨ÎIJ¢ÇÒ¶Ô tracert ÎÞЧ¡£

    ¡¡¡¡²ÎÊý

    ¡¡¡¡-d

    ¡¡¡¡Ö¸¶¨²»¶Ô¼ÆËã»úÃû½âÎöµØÖ·¡£

    ¡¡¡¡-h maximum_hops

    ¡¡¡¡Ö¸¶¨²éÕÒÄ¿±êµÄÌøתµÄ×î´óÊýÄ¿¡£

    ¡¡¡¡-jcomputer-list

    ¡¡¡¡Ö¸¶¨ÔÚ computer-list ÖÐËÉɢԴ·ÓÉ¡£

    ¡¡¡¡-w timeout

    ¡¡¡¡µÈ´ýÓÉ timeout ¶Ôÿ¸öÓ¦´ðÖ¸¶¨µÄºÁÃëÊý¡£

    ¡¡¡¡target_name

    ¡¡¡¡Ä¿±ê¼ÆËã»úµÄÃû³Æ¡£

    ¹¤×÷Ô­Àí

    ¡¡¡¡Traceroute×î¼òµ¥µÄ»ù±¾Ó÷¨ÊÇ£ºtraceroute hostname

    ¡¡¡¡Traceroute³ÌÐòµÄÉè¼ÆÊÇÀûÓÃICMP¼°IP headerµÄTTL£¨Time To Live£©À¸Î»£¨field£©¡£Ê×ÏÈ£¬tracerouteËͳöÒ»¸öTTLÊÇ1µÄIP datagram£¨Æäʵ£¬Ã¿´ÎËͳöµÄΪ3¸ö40×ֽڵİü£¬°üÀ¨Ô´µØÖ·£¬Ä¿µÄµØÖ·ºÍ°ü·¢³öµÄʱ¼ä±êÇ©£©µ½Ä¿µÄµØ£¬µ±Â·¾¶ÉϵĵÚÒ»¸ö·ÓÉÆ÷£¨router£©ÊÕµ½Õâ¸ödatagramʱ£¬Ëü½«TTL¼õ1¡£´Ëʱ£¬TTL±äΪ0ÁË£¬ËùÒԸ÷ÓÉÆ÷»á½«´Ëdatagram¶ªµô£¬²¢ËÍ»ØÒ»¸ö¡¸ICMP time exceeded¡¹ÏûÏ¢£¨°üÀ¨·¢IP°üµÄÔ´µØÖ·£¬IP°üµÄËùÓÐÄÚÈݼ°Â·ÓÉÆ÷µÄIPµØÖ·£©£¬traceroute ÊÕµ½Õâ¸öÏûÏ¢ºó£¬±ãÖªµÀÕâ¸ö·ÓÉÆ÷´æÔÚÓÚÕâ¸ö·¾¶ÉÏ£¬½Ó×Åtraceroute ÔÙËͳöÁíÒ»¸öTTLÊÇ2 µÄdatagram£¬·¢ÏÖµÚ2 ¸ö·ÓÉÆ÷...... traceroute ÿ´Î½«ËͳöµÄdatagramµÄTTL ¼Ó1À´·¢ÏÖÁíÒ»¸ö·ÓÉÆ÷£¬Õâ¸öÖظ´µÄ¶¯×÷Ò»Ö±³ÖÐøµ½Ä³¸ödatagram µÖ´ïÄ¿µÄµØ¡£µ±datagramµ½´ïÄ¿µÄµØºó£¬¸ÃÖ÷»ú²¢²»»áËÍ»ØICMP time exceededÏûÏ¢£¬ÒòΪËüÒÑÊÇÄ¿µÄµØÁË£¬ÄÇôtracerouteÈçºÎµÃ֪ĿµÄµØµ½´ïÁËÄØ£¿

    ¡¡¡¡TracerouteÔÚËͳöUDP datagramsµ½Ä¿µÄµØʱ£¬ËüËùÑ¡ÔñËÍ´ïµÄport number ÊÇÒ»¸öÒ»°ãÓ¦ÓóÌÐò¶¼²»»áÓõĺÅÂ루30000 ÒÔÉÏ£©£¬ËùÒÔµ±´ËUDP datagram µ½´ïÄ¿µÄµØºó¸ÃÖ÷»ú»áËÍ»ØÒ»¸ö¡¸ICMP port unreachable¡¹µÄÏûÏ¢£¬¶øµ±traceroute ÊÕµ½Õâ¸öÏûϢʱ£¬±ãÖªµÀÄ¿µÄµØÒѾ­µ½´ïÁË¡£ËùÒÔtraceroute ÔÚServer¶ËÒ²ÊÇûÓÐËùνµÄDaemon ³Ìʽ¡£

    ¡¡¡¡TracerouteÌáÈ¡·¢ ICMP TTLµ½ÆÚÏûÏ¢É豸µÄIPµØÖ·²¢×÷ÓòÃû½âÎö¡£Ã¿´Î £¬Traceroute¶¼´òÓ¡³öһϵÁÐÊý¾Ý,°üÀ¨Ëù¾­¹ýµÄ·ÓÉÉ豸µÄÓòÃû¼° IPµØÖ·,Èý¸ö°üÿ´ÎÀ´»ØËù»¨Ê±¼ä¡£

    ¡¡¡¡Traceroute ÓÐÒ»¸ö¹Ì¶¨µÄʱ¼äµÈ´ýÏìÓ¦(ICMP TTLµ½ÆÚÏûÏ¢)¡£Èç¹ûÕâ¸öʱ¼ä¹ýÁË£¬Ëü½«´òÓ¡³öһϵÁеÄ*ºÅ±íÃ÷£ºÔÚÕâ¸ö·¾¶ÉÏ£¬Õâ¸öÉ豸²»ÄÜÔÚ¸ø¶¨µÄʱ¼äÄÚ·¢³öICMP TTLµ½ÆÚÏûÏ¢µÄÏìÓ¦¡£È»ºó£¬Traceroute¸øTTL¼ÇÊýÆ÷¼Ó1£¬¼ÌÐø½øÐС£²Î¼ûtraceroute·ÂÕ涯»­[1].

    Íø¹Ø

    ¡¡¡¡Ò»°ãʹÓÃTraceroute(»òÕßÊÇTracert)ÊÇ»ùÓÚһ̨Ö÷»úµÄ£¬µ«ÊÇͨ³£ÄúÖ»ÄÜÖªµÀÒÔÊֱߵÄÖ÷»úΪԴµØÖ·µ½»¥ÁªÍøÂçÉÏÈÎÒâһ̨ÔÚÏßµÄÖ÷»úµÄ·ÓÉÁ¬½ÓÖÊÁ¿ÒÔ¼°Êý¾Ý´«ÊäЧÂʵÄÇé¿ö£¬¶øʹÓûùÓÚWEBµÄ·½Ê½£¬Ö»ÒªÒ»Ì¨Ö÷»ú°²×°ÁËÌض¨µÄCGI³ÌÐò£¬Óû§¾Í¿ÉÒÔͨ¹ýÕą̂Ö÷»úÔËÐÐÏà¹ØµÄ³ÌÐò£¬Ö´ÐÐTracerouteµÄ¹¦ÄÜ¡£Õą̂Ö÷»úÎÒÃÇ°ÑËü½Ð×öTracerouteÍø¹Ø¡£TracerouteÍø¹Ø¿ÉÒÔ°ïÖúÓû§Á˽âÍøÂçµÄÎïÀíÓëÂß¼­Á¬½ÓµÄÍØÆËÇé¿öÒÔ¼°Êý¾Ý´«ÊäµÄЧÂÊ¡£Èç¹ûÕâÖÖÍø¹Ø×ã¹»¶à£¬ÎÒÃǾͿÉÒÔ·½±ãµØÁ˽⵽¸÷Ö÷»úÖ®¼äÁ¬½ÓµÄÇé¿öÁË¡£

    Ô­Àí

    ¡¡¡¡1.¼¸ºõÿһ¸öÍøÉÏÈË£¨ÓÈÆäÊÇWebmaster£©¶ÔËûÃǵļÆËã»ú£¨»òÆäËüÉ豸£©ÓëInternetµÄÁ¬½Ó£¬Â·ÓÉ£¨¾¶£©£¬Á¬Í¨Ê±¼ä£¬Ëٶȵȶ¼ºÜ¹ØÐÄ¡£Ê¹ÓÃÓÉChianNetMap×éÖ¯ÆðÀ´µÄ¸÷µØÇøWebmasterÌṩµÄTracerouteÍø¹ØµÄ·þÎñ£¬½«¸øÄãÒ»¸öÂúÒâµÄ´ð°¸¡£´ÓÄãµÄ¼ÆËã»úµ½ÈκαðµÄµØ·½£¬ChinaNetMap(Traceroute)¶¼ÄÜÌṩÆä¼äµÄÿ¸öÉ豸£¨IPµØÖ·£©¼°ÆäÁ¬Í¨Ê±¼ä¡£Ëü¿ÉÒÔÈÃÄã»­³öͨ¹ýÍøÂçµÄ·¾¶¡£

    ¡¡¡¡2.Ðí¶à¹«Ë¾ºÍµ¥Î»¶¼ÉèÓлòÕýÔÚÉèÁ¢×Ô¼ºµÄ·þÎñÆ÷-ÓÈÆäÊÇWeb·þÎñÆ÷¡£Ò»µ©ÓÐ×Ô¼ºµÄWeb·þÎñÆ÷£¬Ëæ×ÅÍøÃñÊýÁ¿µÄÈÕÒæÔö¼Ó£¨°üÀ¨Ç±Ôڵģ¬Ã»·¨Í³¼ÆµÄÍøÃñ£©£¬ÄãÒ»¶¨ºÜÏëÖªµÀÊÇ·ñËûÃǶ¼ÄÜÓëÄãÁ¬½Ó¡£ÄãµÄISPÈçºÎÓëÒ»¸ö»ò¶à¸öNAPÁ¬½Ó,ÒÔ¼°ËûÃǵÄÁ¬½ÓЧÂÊ»áÖ±½ÓÓ°Ïìµ½ÄãµÄÁ¬½ÓÖÊÁ¿.

    ¡¡¡¡3.ÔÚÑ¡ÔñISP£¬¹Ç¸ÉÍøÁ¬½Ó£¬ÄãÕ¾µãµÄÖ÷»úʱ£¬´ó¶àÊýÓмûʶµÄÍøÃñϲ»¶¼ì²é¸ÃSiteµÄÁ¬½ÓÐÔÄܼ°ÆäËüÊÇÔõÑù¾«È·µÄÓëË­Á¬£¬Á¬µ½ÄĶù¡£ChinaNetMap£¨Traceroute£©½«¸øÄãÒ»¸öÍêÃÀµÄ´ð°¸¡£

    ¹¦ÄÜ

    ¡¡¡¡Traceroute×îÔçÊÇÓÉVan JacobsonÔÚ1988д³öµÄС³ÌÐò¡£µ±Ê±Ö÷ÒªÊǽâ¾öËû×Ô¼ºÅöµ½µÄһЩÍøÂçµÄÎÊÌâ¡£TracerouteÊÇÒ»¸öÕýÈ·Àí½âIPÍøÂç²¢Á˽â·ÓÉÔ­ÀíµÄÖØÒª¹¤¾ß¡£ËûÃǶԸºÔðÍøÂ繤³Ì¼¼ÊõÓëϵͳ¹ÜÀíµÄWebmasterÊÇÒ»¸öʹÓ÷½±ãµÄ³ÌÐò¡£

    ¡¡¡¡¶ÔISP¶øÑÔ£¬ÉèÁ¢TracerouteÍø¹Ø£¬½«Ê¹ÍøÂç·þÎñÌṩÉÌ°ïÖúÓû§½¨Á¢²¢Î¬³Ö¶Ô·þÎñÉÌ·þÎñÖÊÁ¿µÄÐÅÐÄ¡£·þÎñÖÊÁ¿¸ßµÄISP¿ÉÒÔͨ¹ýÉèÁ¢TracerouteÍø¹Ø£¬Ê¹Óû§Á˽âÆäÓëÍøÂçÁ¬½ÓÒÔ¼°Êý¾Ý´«ÊäµÄЧÂÊ¡£µ±È»£¬»ù´¡ÉèÊ©²î£¬·þÎñÖÊÁ¿µÍµÄISPÊDZȽϺ¦ÅÂÌṩÕâÖÖ·þÎñ¡£ÒòΪ£¬ÕâÑùÓû§¿ÉÒÔʹÓÃÕâÒ»¹¤¾ßÁ˽â·þÎñÉÌÄ¿Ç°µÄÍøÂçÁ¬½ÓÇé¿ö¡£

    ¡¡¡¡ÔÚһ̨Ö÷»ú°²×°ÁËÏà¹ØµÄTracerouteµÄCGI³ÌÐòºó£¬Äú¿ÉÒÔÊäÈëÏàÓ¦µÄÄ¿µÄÖ÷»úµÄIPµØÖ·»òÕßÃû×Ö£¬¾Í¿ÉÒԵõ½Ïà¹ØµÄÊý¾Ý£º

    ¡¡¡¡È磺ÔÚÃÀ¹úµÄÖ÷»úhttp://bs.mit.edu:8001/cgi-bin/tracerouteÉÏ

    ¡¡¡¡²éѯÆäµ½ÖйúÄϾ©µÄ±±¼«ÐÇÕ¾µãwww.lodesoft.com(ÖйúWebmasterÁªÃ˵ĺÏ×÷»ï°é£©Êý¾Ý´«ÊäµÄ·¾¶¡£

    ¡¡¡¡²éѯ½çÃæΪ£º

    ¡¡¡¡Traceroute Hack

    ¡¡¡¡¿ÉÒÔËÑË÷¸ÃË÷Òý¡£Çë¼üÈëÒªËÑË÷µÄ¹Ø¼ü×Ö:

    ¡¡¡¡²éѯ½á¹ûΪ£º

    ¡¡¡¡Traceroute Hack

    ¡¡¡¡1 E40-RTR-E40SERVER72-ETHER.MIT.EDU (18.72.0.1) 4 ms 4 ms 4 ms

    ¡¡¡¡2 EXTERNAL-RTR-FDDI.MIT.EDU (18.168.0.12) 4 ms 4 ms 4 ms

    ¡¡¡¡3 f1-0.cambridge2-br2.bbnplanet.net (192.233.33.6) 4 ms 4 ms 4 ms

    ¡¡¡¡4 s11-0-1.cambridge1-br1.bbnplanet.net (4.0.1.201) 8 ms 4 ms 4 ms

    ¡¡¡¡5 p1-0.cambridge1-nbr2.bbnplanet.net (4.0.1.45) 4 ms 4 ms 4 ms

    ¡¡¡¡6 p4-1.bstnma1-ba1.bbnplanet.net (4.0.2.170) 4 ms 4 ms 4 ms

    ¡¡¡¡7 p1-0.bstnma1-ba2.bbnplanet.net (4.24.4.194) 4 ms 8 ms 8 ms

    ¡¡¡¡8 p2-1.nyc4-nbr3.bbnplanet.net (4.24.4.238) 8 ms 12 ms 12 ms

    ¡¡¡¡9 p1-0.nyc4-nbr2.bbnplanet.net (4.0.5.25) 8 ms 12 ms 8 ms

    ¡¡¡¡10 p4-0.sanjose1-nbr2.bbnplanet.net (4.0.5.97) 70 ms 70 ms 70 ms

    ¡¡¡¡11 p1-0.sanjose1-nbr1.bbnplanet.net (4.0.5.85) 70 ms 70 ms 70 ms

    ¡¡¡¡12 p4-0.paloalto-nbr2.bbnplanet.net (4.0.1.1) 70 ms 74 ms 70 ms

    ¡¡¡¡13 p0-0-0.paloalto-cr18.bbnplanet.net (4.0.3.86) 70 ms 74 ms 74 ms

    ¡¡¡¡14 h1-0.atteasylink.bbnplanet.net (4.1.142.254) 74 ms 74 ms 78 ms

    ¡¡¡¡15 199.37.127.234 (199.37.127.234) 78 ms 74 ms 78 ms

    ¡¡¡¡16 205.174.74.170 (205.174.74.170) 230 ms 238 ms 227 ms

    ¡¡¡¡17 202.97.9.65 (202.97.9.65) 238 ms 231 ms 223 ms

    ¡¡¡¡18 * 202.97.9.49 (202.97.9.49) 234 ms *

    ¡¡¡¡19 202.97.10.110 (202.97.10.110) 246 ms 250 ms *

    ¡¡¡¡20 202.97.24.178 (202.97.24.178) 234 ms 238 ms 238 ms

    ¡¡¡¡21 202.102.24.74 (202.102.24.74) 234 ms 254 ms *

    ÃüÁî²ÎÊý

    ¡¡¡¡TracerouteµÄÓ÷¨Îª: Traceroute [options] &lt;IP-address or domain-name&gt; [data size]

    ¡¡¡¡[options]µÄÄÚÈÝÓÐ:

    ¡¡¡¡[-n]:ÏÔʾµÄµØÖ·ÊÇÓÃÊý×Ö±íʾ¶ø²»ÊÇ·ûºÅ

    ¡¡¡¡[-v]:³¤Êä³ö

    ¡¡¡¡[-p]:UDP¶Ë¿ÚÉèÖÃ(ȱʡΪ33434)

    ¡¡¡¡[-q]:ÉèÖÃTTL²âÊÔÊýÄ¿(ȱʡΪ3)

    ¡¡¡¡[-t]:ÉèÖòâ°üµÄ·þÎñÀàÐÍ

    ¡¡¡¡[data size]:ÿ´Î²âÊÔ°üµÄÊý¾Ý×Ö½Ú³¤¶È(ȱʡΪ38)

    ICMPµÄÓ¦ÓÃ--Traceroute

    ¡¡¡¡TracerouteÊÇÓÃÀ´Õì²âÖ÷»úµ½Ä¿µÄÖ÷»úÖ®¼äËù¾­Â·ÓÉÇé¿öµÄÖØÒª¹¤¾ß£¬Ò²ÊÇ×î±ãÀûµÄ¹¤¾ß¡£Ç°Ãæ˵µ½£¬¾¡¹Üping¹¤¾ßÒ²¿ÉÒÔ½øÐÐÕì²â£¬µ«ÊÇ£¬ÒòΪipÍ·µÄÏÞÖÆ£¬ping²»ÄÜÍêÈ«µÄ¼Ç¼ÏÂËù¾­¹ýµÄ·ÓÉÆ÷¡£ËùÒÔTracerouteÕýºÃ¾ÍÌî²¹ÁËÕâ¸öȱº¶¡£

    ¡¡¡¡TracerouteµÄÔ­ÀíÊǷdz£·Ç³£µÄÓÐÒâ˼£¬ËüÊܵ½Ä¿µÄÖ÷»úµÄIPºó£¬Ê×ÏȸøÄ¿µÄÖ÷»ú·¢ËÍÒ»¸öTTL=1£¨»¹¼ÇµÃTTLÊÇʲôÂ𣿣©µÄUDP(ºóÃæ¾Í ÖªµÀUDPÊÇʲôÁË)Êý¾Ý°ü£¬¶ø¾­¹ýµÄµÚÒ»¸ö·ÓÉÆ÷ÊÕµ½Õâ¸öÊý¾Ý°üÒԺ󣬾Í×Ô¶¯°ÑTTL¼õ1£¬¶øTTL±äΪ0ÒÔºó£¬Â·ÓÉÆ÷¾Í°ÑÕâ¸ö°ü¸øÅ×ÆúÁË£¬²¢Í¬Ê±²úÉú Ò»¸öÖ÷»ú²»¿É´ïµÄICMPÊý¾Ý±¨¸øÖ÷»ú¡£Ö÷»úÊÕµ½Õâ¸öÊý¾Ý±¨ÒÔºóÔÙ·¢Ò»¸öTTL=2µÄUDPÊý¾Ý±¨¸øÄ¿µÄÖ÷»ú£¬È»ºó´Ì¼¤µÚ¶þ¸ö·ÓÉÆ÷¸øÖ÷»ú·¢ICMPÊý¾Ý ±¨¡£Èç´ËÍù¸´Ö±µ½µ½´ïÄ¿µÄÖ÷»ú¡£ÕâÑù£¬traceroute¾ÍÄõ½ÁËËùÓеÄ·ÓÉÆ÷ip¡£´Ó¶ø±Ü¿ªÁËipÍ·Ö»ÄܼǼÓÐÏÞ·ÓÉIPµÄÎÊÌâ¡£

    ¡¡¡¡ÓÐÈËÒªÎÊ£¬ÎÒÔõô֪µÀUDPµ½Ã»µ½´ïÄ¿µÄÖ÷»úÄØ£¿Õâ¾ÍÉæ¼°Ò»¸ö¼¼ÇɵÄÎÊÌ⣬TCPºÍUDPЭÒéÓÐÒ»¸ö¶Ë¿ÚºÅ¶¨Ò壬¶øÆÕͨµÄÍøÂç³ÌÐòÖ»¼à¿ØÉÙÊýµÄ¼¸¸öºÅÂë½Ï СµÄ¶Ë¿Ú£¬±ÈÈç˵80,±ÈÈç˵23,µÈµÈ¡£¶øtraceroute·¢Ë͵ÄÊǶ˿ںÅ>30000(Õæ±ä̬)µÄUDP±¨£¬ËùÒÔµ½´ïÄ¿µÄÖ÷»úµÄʱºò£¬Ä¿µÄ Ö÷»úÖ»ÄÜ·¢ËÍÒ»¸ö¶Ë¿Ú²»¿É´ïµÄICMPÊý¾Ý±¨¸øÖ÷»ú¡£Ö÷»ú½Óµ½Õâ¸ö±¨¸æÒÔºó¾ÍÖªµÀ£¬Ö÷»úµ½ÁË£¬ËùÒÔ£¬ËµTracerouteÊÇÒ»¸öÆ­×ÓÒ»µãÒ²²»Îª¹ý:)

    ¡¡¡¡Traceroute³ÌÐòÀïÃæÌṩÁËһЩºÜÓÐÓõÄÑ¡ÏÉõÖÁ°üº¬ÁËIPѡ·µÄÑ¡ÏÇë²ì¿´manÎĵµÀ´Á˽âÕâЩ£¬ÕâÀï¾Í²»×¸ÊöÁË¡£

    ²Î¿¼×ÊÁÏ
    • 1

      Traceroute ¹¤×÷Ô­Àí·ÂÕ涯»­  

      http://pre.visualland.net/view.php?cid=946&protocol=ICMP&title=2.%20Traceroute

    À©Õ¹ÔĶÁ£º
    • 1

      Traceroute - ʵÀý·ÂÕæÑÝʾhttp://www.visualland.net/view.php?cid=1127&protocol=ICMP&title=6.%20Traceroute&ctype=1

     

     

    ת×Ô£ºhttp://baike.baidu.com/view/70478.htm

     

     

     

    TraceRoute(tracert)ʵÏÖÔ­Àí 
     
            TraceRoute³ÌÐòµÄʵÏÖÖ÷ÒªÉæ¼°IPÍ·²¿Éú´æʱ¼ä£¨time to live, TTL£©×ֶεÄʹÓá£
     
            ÉèÖÃTTL×ֶεÄÄ¿µÄÊÇΪÁË·ÀÖ¹Êý¾Ý±¨ÓÉÓÚѡ·´íÎó»òÆäËûÈíÓ²¼þÔ­Òò´Ó¶øµ¼ÖÂÔÚÍøÂçÖÐÎÞÐÝÖ¹µÄÁ÷¶¯£¬TTL×Ö¶ÎÖ¸¶¨ÁËÊý¾Ý±¨µÄÉú´æʱ¼ä¡£TTLµÄ³õʼֵÓÉÔ´Ö÷»úÉèÖ㬵±Ò»·ÝÊý¾Ý±¨¾­¹ý·ÓÉÆ÷ʱ£¬´¦Àí¸ÃÊý¾Ý±¨µÄ·ÓÉÆ÷¶¼ÐèÒª°ÑTTLÖµ¼õÈ¥Êý¾Ý±¨ÔÚ·ÓÉÆ÷ÖÐÍ£ÁôµÄÃëÊý¡£µ«ÊÂʵÉÏ´ó¶àÊý·ÓÉÆ÷Ö»ÊǼòµ¥µØ½«TTLÖµ¼õ1£¬Òò´ËTTL×Ö¶Î×îÖÕ±»ÊµÏÖΪһ¸öÌøÕ¾¼ÆÊýÆ÷¡£µ±TTL×ֶεÄÖµ±»¼õΪ0ʱ£¬Â·ÓÉÆ÷¾Í²»»áת·¢¸ÃÊý¾Ý±¨£¬¶øÊǽ«Æ䶪Æú£¬²¢²úÉúÒ»·ÝICMP³¬Ê±²î´í±¨ÎÄ·¢ÍùÔ´Ö÷»úÒÔ֪ͨ´íÎóµÄ·¢Éú¡£TraceRoute³ÌÐòµÄ¹Ø¼ü¾ÍÔÚÓÚ·µ»ØµÄÕâ·ÝICMP³¬Ê±²î´í±¨ÎĵÄÔ´µØÖ·¾ÍÊÇ;¾­Â·ÓÉÆ÷µÄIPµØÖ·¡£ÓÉ´Ë£¬Í¨¹ýÒÀ´ÎµÝÔöTTL×ֶεÄÖµ£¬¾Í¿ÉÒԵõ½Ò»·ÝÊý¾Ý±¨ÔÚÆä´«Êä·¾¶ÉÏËù¾­¹ýµÄ·ÓÉÐÅÏ¢¡£
     
            TraceRoute³ÌÐòÔÚ¾ßÌåʵÏÖʱ£¬ÊÇÁîÆäÏòÄ¿µÄÖ÷»ú·¢ËÍÒ»¸öICMP»ØÏÔÇëÇó£¨Echo request£©ÏûÏ¢£¬²¢Öظ´µÝÔöIPÍ·²¿TTL×ֶεÄÖµ¡£¸Õ¿ªÊ¼µÄʱºòTTLµÈÓÚ1£¬ÕâÑùµ±¸ÃÊý¾Ý±¨µÖ´ï;ÖеĵÚÒ»¸ö·ÓÉÆ÷ʱ£¬TTLµÄÖµ¾Í±»¼õΪ0£¬µ¼Ö·¢Éú³¬Ê±´íÎó£¬Òò´Ë¸Ã·ÓÉÆ÷Éú³ÉÒ»·ÝICMP³¬Ê±²î´í±¨ÎÄ·µ»Ø¸øÔ´Ö÷»ú¡£Ëæºó£¬Ö÷»ú½«Êý¾Ý±¨µÄTTLÖµµÝÔö1£¬ÒÔ±ãIP±¨ÎÄÄÜ´«µÝµ½ÏÂÒ»¸ö·ÓÉÆ÷£¬ÏÂÒ»¸ö·ÓÉÆ÷½«»áÉú³ÉICMP³¬Ê±³¬Ê±²î´í±¨ÎÄ·µ»Ø¸øÔ´Ö÷»ú¡£²»¶ÏÖظ´Õâ¸ö¹ý³Ì£¬Ö±µ½Êý¾Ý±¨µ½´ï×îÖÕµÄÄ¿µÄÖ÷»ú£¬´ËʱĿµÄÖ÷»ú½«·µ»ØICMP»ØÏÔÓ¦´ð£¨Echo replay£©ÏûÏ¢¡£ÕâÑù£¬Ô´Ö÷»úÖ»Ðè¶Ô·µ»ØµÄÿһ·ÝICMP±¨ÎĽøÐнâÎö´¦Àí£¬¾Í¿ÉÒÔÕÆÎÕÊý¾Ý±¨´ÓÔ´Ö÷»úµ½´ïÄ¿µÄÖ÷»ú;ÖÐËù¾­¹ýµÄ·ÓÉÐÅÏ¢¡£
  • linux command-date -r file.txtÏÔʾÎļþ×îºóÒ»´ÎÐÞ¸ÄÈÕÆÚ

    2011-07-05 10:29:15

    date -r 11.txt "+%Y$1%m$1%d %H:%M:%S"

     

    shell½Å±¾.rar(4.02 KB)

     

     

    ²é¿´·ÃÎÊÈÕÖ¾£¬ grep -v È¥³ý·µ»Ø200µÄ

    tail -f test.com-access_log | grep -v " 200 "

  • ×îºÃÓõÄPDF½âÃÜÈí¼þ

    2011-06-30 15:12:10

    ×îºÃÓõÄPDF½âÃÜÈí¼þ:   pdf½âÃܹ¤¾ß.rar(532 KB)

     

  • Java Service WrapperʹÓÃ˵Ã÷-½«java±äΪ±¾µØservice

    2011-06-30 11:37:04

    Java Service WrapperʹÓÃ˵Ã÷

     

     

    http://wrapper.tanukisoftware.com/doc/english/download.jsp

    http://www.oschina.net/p/java+service+wrapper

     

     

    ¾ßÌåµÄʹÓò½Ö裺

    1.  ½«ÏÂÔصÄJava Service Wrapper°ü½âѹµ½±¾µØ£¬Ä¿Â¼Îª{WRAPPER_HOME}£»

    2.  ·þÎñÓ¦ÓóÌÐòÃûΪ[MyServApp]£¬ÔÚĿ¼C:\MyServAppϽ¨Á¢bin¡¢conf¡¢logs¡¢libĿ¼£»²¢°ÑÄãµÄÒÑÓÐÓ¦ÓóÌÐòÈçNioBlockingServer.class¿½±´µ½¸ÃĿ¼Ï£»

    3.  ½«{WRAPPER_HOME}\src\bin\ÏÂÎļþ¿½±´µ½MyServAppĿ¼Ï£¬²¢ÖØÃüÃû¡£

    {WRAPPER_HOME}\bin\Wrapper.exe -> C:\ MyServApp \bin\Wrapper.exe

    {WRAPPER_HOME}\src\bin\App.bat.in -> C:\ MyServApp\bin\MyApp.bat

    {WRAPPER_HOME}\src\bin\InstallApp-NT.bat.in ->C:\ MyServApp\bin\InstallMyApp-NT.bat

    {WRAPPER_HOME}\src\bin\UninstallApp-NT.bat.in -> C:\ MyServApp\bin\UninstallMyApp-NT.bat

    4.  ½«{WRAPPER_HOME}\libϵÄÒÔÏÂÎļþ¿½±´µ½C:\ MyServApp \libĿ¼ÏÂ

    {WRAPPER_HOME}\lib\Wrapper.DLL

    {WRAPPER_HOME}\lib\wrapper.jar

    5.  ½«{WRAPPER_HOME}\src\conf\wrapper.conf.in¿½±´µ½C:\ MyServApp \confĿ¼Ï²¢ÃüÃûΪwrapper.conf£»²¢ÐÞ¸Äwrapper.confÎļþ£¬ÔÚÆäÖÐÅäÖÃÄúµÄÓ¦Ó÷þÎñ¡£

    Ö÷ÒªÐÞ¸ÄÒÔϼ¸Ïî¼´¿É£º

    #ÄãµÄJVMλÖãº

    wrapper.java.command=D:\Sun\j2sdk1.4.0_03\bin\java

    #ÔËÐвÎÊý£ºÈ磺

    wrapper.java.additional.1=-Dprogram.name=run.bat

    #classpath£º

    wrapper.java.classpath.1=../lib/wrapper.jar

    wrapper.java.classpath.2=../bin/.

    # Java Library Path (location of Wrapper.DLL or libwrapper.so)

    wrapper.java.library.path.1=../lib

    #MAIN CLASS ´Ë´¦¾ö¶¨ÁËʹÓÃJava Service WrapperµÄ·½Ê½

    wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

    #ÄãµÄJavaÓ¦ÓÃÀà

    wrapper.app.parameter.1= NonBlockingServer

    # ·þÎñÃû

    wrapper.ntservice.name=NB

    # Display name of the service

    wrapper.ntservice.displayname=Nio Nonblocking Server

    # ·þÎñÃèÊö

    wrapper.ntservice.description=Nio Nonblocking Server

    ÆäËûµÄÅäÖøù¾ÝÄãµÄÐèÒª¸Ä±ä¼´¿É

    6.  ¶ÔÒÔÉÏÅäÖõÄMyApp.bat½øÐвâÊÔ£¬ÔËÐÐMyApp.bat£¬¾ÍÏñÔÚConsole´°¿ÚÏÂÔËÐÐTomcatÒ»Ñù£»

    7.  ¶ÔÒÔÉÏÅäÖõķþÎñ½øÐвâÊÔ£¬ÔËÐÐC:\ MyServApp\bin\InstallMyApp-NT.bat½«°ÑÄãµÄÓ¦Ó㨴˴¦ÎªNioBlockingServer£©°²×°µ½Win32ϵͳ·þÎñÖÐÁË¡£

    8.  ´ò¿ª¿ØÖÆÃæ°å£­¹ÜÀí³ÌÐò£­·þÎñ£¬¿´µ½Nio Nonblocking ServerÒѾ­ÔÚϵͳ·þÎñÖÐÁË£¬ÆäËûÓ÷¨¾ÍÓëÎÒÃÇÊìϤµÄWindows·þÎñÒ»ÑùÁË¡£

     

    TomcatʹÓõÄÊÇJava Service Wrapperģʽ¶þ£¬ÕâÖÖ·½Ê½ÐèÒª¶ÔÒÑÓеijÌÐò½øÐÐСµÄ¸Ä¶¯£¬µ«¿ÉÒÔͨ¹ýSocket¶Ë¿ÚµÄ·½Ê½¿ØÖÆ·þÎñ³ÌÐòºËÐĵÄÆô¶¯£¬¸ü¼ÓÁé»î¡£Java Service WrapperÌṩµÄģʽÈý±È½Ï¸´ÔÓ£¬ÐèÒª×÷³ö¸ü¶àµÄ±àÂ룬ÎÒûÓÐÑо¿¡£

    ²ÉÓÃģʽһ£¬¼´¿É¼òµ¥ÓÐЧµÄ°ÑÎÒÃǵķþÎñ³ÌÐò°ü×°³ÉΪϵͳ·þÎñ³ÌÐò£¬²¢ÔöÇ¿ÁËÈÕÖ¾¹¦ÄÜ£¬ÎÒÃÇ¿ÉÒÔ°ÑMyServAppµÄ¼¸¸öÎļþ×ö³ÉÄ£°å£¬Ã¿´ÎÐÞ¸ÄÎļþÃû£¬ÅäÖÃÎļþ¾Í¿ÉÒÔÁË£¬Óо«Á¦µÄÅóÓѸü¿ÉÒÔ×ö³ÉEclipseµÄplugin£¬Êó±êµãµã¾Í°ÑÓ¦ÓÃÅä³É·þÎñÁË¡£

  • linux timeÃüÁî

    2011-06-23 12:59:18

     

    timeÃüÁî¿ÉÒÔÓÃÓÚ²âÊÔÒ»¸ö¹ý³ÌºÄ·Ñʱ¼äµÄ³¤¶Ì£¬ÀýÈ磺

    #time wget "http://www.baidu.com"
    --11:46:36--  http://www.baidu.com/
    Resolving www.baidu.com... 119.75.216.30, 119.75.213.61
    Connecting to www.baidu.com|119.75.216.30|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 3520 (3.4K) [text/html]
    Saving to: `index.html'
     
    100%[====================================================================================================>] 3,520       --.-K/s   in 0s     
     
    11:46:36 (311 MB/s) - `index.html' saved [3520/3520]
     
     
    real    0m0.048s
    user    0m0.001s
    sys     0m0.002s
    ÀýÈ磺
    # time curl "http://www.baidu.com"
    <html><head><meta. http-equiv=Content-Type content="text/html;charset=gb2312"><title>¡ãÙ¶Èһϣ¬Äã¾ÍÖªµÀ      </title><style>body{margin:4px 0}p{margin:0;padding:0}img{border:0}td,p,#u{font-size:12px}#b,#u,#l td,a{font-family:arial}#kw{font:16px Verdana;height:1.78em;padding-top:2px}#b{height:30px;padding-top:4px}#b,#b a{color:#77c}#u{padding-right:10px;line-height:19px;text-align:right;margin:0 0 3px !important;margin:0 0 10px}#sb{height:2em;width:5.6em}#km{height:50px}#l{margin:0 0 5px 15px}#l td{padding-left:107px}p,table{width:650px;border:0}#l td,#sb,#km{font-size:14px}#l a,#l b{margin-right:1.14em}a{color:#00c}a:active{color:#f60}#hp{position:absolute;margin-left:6px}#lg{margin:-26px 0 -44px}#lk{width:auto;line-height:18px;vertical-align:top}form{position:relative;z-index:9}</style></head>
    <body><div id=u><a href=http://passport.baidu.com/?login&tpl=mn>µÇ¼</a></div><center><img src=http://www.baidu.com/img/baidu_logo.gif width=270 height=129 usemap="#mp" id=lg><br><br><br><br><table cellpadding=0 cellspacing=0 id=l><tr><td><div id=m><a nclick=s(this) href=http://news.baidu.com>ÐÂ&nbsp;ÎÅ</a><b>Íø&nbsp;Ò³</b><a nclick=s(this) href=http://tieba.baidu.com>̨´&nbsp;¡ãÉ</a><a nclick=s(this) href=http://zhidao.baidu.com>Öª&nbsp;µÀ</a><a nclick=s(this) href=http://mp3.baidu.com>MP3</a><a nclick=s(this) href=http://image.baidu.com>ͼ&nbsp;Ƭ</a><a nclick=s(this) href=http://video.baidu.com>ÊÓ&nbsp;Ƶ</a></div></td></tr></table>
    <table cellpadding=0 cellspacing=0 style="margin-left:15px"><tr valign=top><td style="height:62px;padding-left:92px" nowrap><form. name=f action=s><input type=text name=wd id=kw size=42 maxlength=100> <input type=submit value=¡ãÙ¶ÈһϠid=sb><span id=hp><a href=/gaoji/preferences.html>ɨ¨ÖÃ</a><br><a href=/gaoji/advanced.html>¸ß¼¶</a></span></form></td></tr></table>
    <p id=km><a href=http://hi.baidu.com>¿Õ¼ä</a>&nbsp;&nbsp;<a href=http://www.hao123.com>hao123</a>&nbsp;|&nbsp;<a href=/more/>¸¨¹¶¨¤<span style="font-family:ËÎÌå">>></span></a></p>
    <p style=height:60px><table cellpadding=0 cellspacing=0 id=lk><tr><td></td></tr></table></p>
    <p style=height:30px><a nClick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.baidu.com')" href=http://utility.baidu.com/traf/click.php?id=215&url=http://www.baidu.com>¡ãÑ¡ãÙ¶Èɨ¨ÎªÖ¡ÂÒ³</a></p><p style=height:14px><a href=http://e.baidu.com>¼ÓÈë¡ãÙ¶ÈÍƹã</a> | <a href=http://top.baidu.com>ËÑˡ¡¤çÔÆ¡ãñ</a> | <a href=http://home.baidu.com>¹ØÓÚ¡ãÙ¶È</a> | <a href=http://ir.baidu.com>About Baidu</a></p><p id=b>&copy;2009 Baidu <a href=http://www.baidu.com/duty/>ʹÓáãÙ¶ÈÇ¡ã¡ÀضÁ</a> <a href=http://www.miibeian.gov.cn target=_blank>¾©ICPÖ¡è030173ºÅ</a> <img src=http://gimg.baidu.com/img/gs.gif></p><map name=mp><area shape=rect coords="43,22,227,91" href=http://hi.baidu.com/baidu/ target=_blank title="µã´Ë½øÈë ¡ãٶȿռä"></map></center></body>
    <script>var w=document.f.wd;function s(o){if(w.value.length>0){var h=o.href;var q=encodeURIComponent(w.value);if(h.indexOf("q=")!=-1){o.href=h.replace(new RegExp("q=[^&$]*"),"q="+q)}else{o.href+="?q="+q}}};(function(){if(new RegExp("q=([^&]+)").test(location.search)){w.value=decodeURIComponent(RegExp.$1)}})();if(navigator.cookieEnabled&&!/sug?=0/.test(document.cookie)){document.write('<script. src=http://www.baidu.com/js/bdsug.js?v=1.1.0.3><\/script>')};if(window.attachEvent){window.attachEvent("onload",function(){w.focus();})}else{window.addEventListener('load',function(){w.focus()},true)};window.onunload=function(){};</script></html><!--0e94a8fd6438cdd2-->
    real    0m0.227s
    user    0m0.004s
    sys     0m0.003s


    ##############################################################################
    [root@localhost logs]# man time|more
    TIME(1)                                                                TIME(1)
     
     
     
    NAME
           time - time a simple command or give resource usage
     
    SYNOPSIS
           time [options] command [arguments...]
     
    DESCRIPTION
           The  time  command  runs  the  specified program command with the given
           arguments.  When command finishes, time writes a  message  to  standard
           error  giving  timing statistics about this program run.  These statis-
           tics consist of (i) the elapsed real time between invocation and termi-
           nation, (ii) the user CPU time (the sum of the tms_utime and tms_cutime
           values in a struct tms as returned by times(2)), and (iii)  the  system
           CPU  time  (the  sum of the tms_stime and tms_cstime values in a struct
           tms as returned by times(2)).
     
    OPTION
           -p     When in the POSIX locale, use the precise traditional format
                       "real %f\nuser %f\nsys %f\n"
                  (with numbers in seconds) where the number of  decimals  in  the
                  output  for  %f  is unspecified but is sufficient to express the
                  clock tick accuracy, and at least one.
     
    ENVIRONMENT
           The variables LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, LC_NUMERIC,  NLSPATH
           and  PATH  are used. The last one to search for command.  The remaining
           ones for the text and formatting of the output.
     
    EXIT STATUS
           If command was invoked, the exit status is that of command.   Otherwise
           it  is  127 if command could not be found, 126 if it could be found but
           could not be invoked, and some other non-zero value  (1-125)  if  some-
           thing else went wrong.
     
    SEE ALSO
           times(2)
     
     
     
    GNU VERSION
           Below  a  description of the GNU 1.7 version of time.  Disregarding the
           name of the utility, GNU makes it output lots  of  useful  information,
           not  only about time used, but also on other resources like memory, I/O
           and IPC calls (where available).  The output is formatted using a  for-
           mat  string that can be specified using the -f option or the TIME envi-
           ronment variable.
     
           The default format string is
              %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
              %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
     
           When the -p option is given the (portable) output format
              real %e
              user %U
              sys %S
           is used.
     
       The format string
           The format is interpreted in the usual printf-like way.  Ordinary char-
           acters  are  directly  copied,  tab,  newline and backslash are escaped
           using \t, \n and \\, a percent sign is represented by %%, and otherwise
           %  indicates  a conversion. The program time will always add a trailing
           newline itself.  The conversions follow. All of those used  by  tcsh(1)
           are supported.
     
           Time
     
           %E     Elapsed real time (in [hours:]minutes:seconds).
     
           %e     (Not in tcsh.) Elapsed real time (in seconds).
     
           %S     Total  number  of  CPU-seconds  that the process spent in kernel
                  mode.
     
           %U     Total number of CPU-seconds that the process spent in user mode.
     
           %P     Percentage of the CPU that this job got, computed as (%U + %S) /
                  %E.
     
           Memory
     
           %M     Maximum resident set size of the process during its lifetime, in
                  Kbytes.
     
           %t     (Not  in  tcsh.)  Average  resident  set size of the process, in
                  Kbytes.
     
           %K     Average total (data+stack+text) memory use of  the  process,  in
                  Kbytes.
     
           %D     Average size of the process’s unshared data area, in Kbytes.
     
           %p     (Not  in  tcsh.)  Average  size  of the process’s unshared stack
                  space, in Kbytes.
     
           %X     Average size of the process’s shared text space, in Kbytes.
     
           %Z     (Not in tcsh.) System’s page size, in bytes.  This is a per-sys-
                  tem constant, but varies between systems.
     
           %F     Number  of major page faults that occurred while the process was
                  running.  These are faults where the page has to be read in from
                  disk.
     
           %R     Number  of minor, or recoverable, page faults.  These are faults
                  for pages that are not valid but which have not yet been claimed
                  by  other  virtual  pages.   Thus  the data in the page is still
                  valid but the system tables must be updated.
     
           %W     Number of times the process was swapped out of main memory.
     
           %c     Number of times the process was  context-switched  involuntarily
                  (because the time slice expired).
     
           %w     Number  of  waits:  times  that the program was context-switched
                  voluntarily, for instance while waiting for an I/O operation  to
                  complete.
     
           I/O
     
           %I     Number of file system inputs by the process.
     
           %O     Number of file system outputs by the process.
     
           %r     Number of socket messages received by the process.
     
           %s     Number of socket messages sent by the process.
     
           %k     Number of signals delivered to the process.
     
           %C     (Not  in  tcsh.)  Name and command line arguments of the command
                  being timed.
     
           %x     (Not in tcsh.) Exit status of the command.
     
    GNU OPTIONS
           -f FORMAT, --format=FORMAT
                  Specify output format, possibly overriding the format  specified
                  in the environment variable TIME.
     
           -p, --portability
                  Use the portable output format.
     
           -o FILE, --output=FILE
                  Do  not  send the results to stderr, but overwrite the specified
                  file.
     
           -a, --append
                  (Used together with -o.) Do not overwrite but append.
     
           -v, --verbose
                  Give very verbose output about all the program knows about.
     
    GNU STANDARD OPTIONS
           --help Print a usage message on standard output and exit  successfully.
     
           -V, --version
                  Print version information on standard output, then exit success-
                  fully.
     
           --     Terminate option list.
     
    BUGS
           Not all resources are measured by all versions of Unix, so some of  the
           values  might  be  reported  as zero.  The present selection was mostly
           inspired by the data provided by 4.2 or 4.3BSD.
     
           GNU time version 1.7 is not yet localized.  Thus, it does not implement
           the POSIX requirements.
     
           The  environment variable TIME was badly chosen.  It is not unusual for
           systems like autoconf or make to use  environment  variables  with  the
           name of a utility to override the utility to be used. Uses like MORE or
           TIME for options to programs (instead of  program  pathnames)  tend  to
           lead to difficulties.
     
           It  seems unfortunate that -o overwrites instead of appends.  (That is,
           the -a option should be the default.)
     
           Mail suggestions and bug reports for GNU time to
           bug-utils@prep.ai.mit.edu
           Please include the version of time, which you can get by running
           time --version
           and the operating system and C compiler you used.
     
    SEE ALSO
           tcsh(1), times(2), wait3(2)
     
    AUTHORS
           David Keppel
                  Original version
     
           David MacKenzie
                  POSIXization, autoconfiscation, GNU getoptization,  docu-
                  mentation, other bug fixes and improvements.
     
           Arne Henrik Juul
                  Helped with portability
     
           Francois Pinard
                  Helped with portability

     

    ת×Ô£ºhttp://blog.csdn.net/zzz_781111/archive/2009/11/05/4771002.aspx

     

  • jconsole¼à¿ØtomcatÅäÖÃ

    2011-06-16 17:13:36

     

    jconsole¼à¿ØtomcatÅäÖÃ

    ÒÔÏÂÅäÖÃÊÇÔÚlinux»·¾³Ï½øÐС£

    1¡¢°²×°jdk£¬ÍƼö°²×°jdk6.0¡£

    2¡¢ÔÚtomcatµÄbin/catalina.shÖÐÅäÖãº

    JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10000 

    -Dcom.sun.management.jmxremote.ssl=false 

    -Dcom.sun.management.jmxremote.authenticate=false"

     

    ÅäÖÃÍê¿ÉÒÔÊÔÊÔÀ²¡£

    3¡¢Ê¹ÓÃhostname -iÑéÖ¤»úÆ÷Ãû£¬Èç¹ûµÃµ½µÄ½á¹ûΪ127.0.0.1Ôò²»ÐУ¬ÐèÒªÐÞ¸Älinux×Ô¼ºµÄhost±í£¬½«±¾»úµÄIPµØÖ··Åµ½Ç°Ã棬ÔÙ´ÎʹÓÃhostname -iµÈµ½µÄ½á¹ûÓ¦¸ÃΪ±¾»úµÄIPµØÖ·¡£·ñÖ®jconsoleÎÞ·¨Á´½Ó¡£»òÕßÔÚcatalina.shÖÐÔö¼ÓÒ»¸öÅäÖÃÏ

    -Djava.rmi.server.hostname=ip_or_hostname

    ÀýÈ磺-Djava.rmi.server.hostname=10.10.71.39¼´¿É¡£

     

    4¡¢ÓÉÓÚÅäÖÃÁËÉÏÊöÎļþ£¬ÔÚÍ£Ö¹tomcatµÄʱ£¬»áÓÉÓÚÉÏÊöÅäÖõĶ˿ڱ»Õ¼ÓöøÎÞ·¨Í£µô¡£2ÖÖ·½Ê½½â¾ö£º

    £¨1£©Ê¹ÓÃkillall -9 java ɱµôËùÓеÄjava½ø³Ì¡£

    £¨2£©ÔÚcatalina.shÖÐÅäÖÃCATALINA_PID=pid£¬ÕâÑùÔÚÍ£Ö¹tomcatµÄ¹ý³ÌÖУ¬ÉÏÊö±»Õ¼ÓõĶ˿ڻá×Ô¶¯±»É±µô¡£

     

    È»ºó½øÐÐÁ¬½Ó£º   host:port ·½Ê½

    ÕâÊÇ×î¼òµ¥µÄ²»ÓÃÑéÖ¤Óû§µÄ·½Ê½.

    http://blog.sina.com.cn/s/blog_4f925fc30100tx1d.html

     

     

    JProbeΪQuest¹«Ë¾µÄ²úÆ·£¨Toad ¡¢JProbe £©¡£JProbeÊÇÒ»¸öÍêȫΪJavaÉè¼ÆµÄ½âÎöÆ÷£¬¶øÇÒËüÖ»ÄÜÓÃÓÚJava¡£
    Ëü¿ÉÒԺܺõØÍê³ÉÎÒÃÇËùÐèÒªµÄÈÎÎñ¡£JProbeÔÚ¼òµ¥Ò×Óõļ¯³É»¯Ì×¼þÖУ¬Îªservlet¡¢JSPºÍEJBÓ¦ÓôúÂëÌṩÁËÇ¿´óµÄJavaÐÔÄÜ·ÖÎö¡¢
    ÄÚ´æ¾À´í¡¢´úÂ븲¸Ç¼°Ï̷߳ÖÎö¹¦ÄÜ¡£

     

  • curlÃüÁîÏê½â

    2011-06-13 18:29:07

    curlÃüÁîÏê½â

     

    Ò»¡¢²ÎÊýÏê½â

     -M/--manual  ÏÔʾȫÊÖ¶¯
     -n/--netrc  ´ÓnetrcÎļþÖжÁÈ¡Óû§ÃûºÍÃÜÂë
     --netrc-optional  Ê¹Óà .netrc »òÕß URLÀ´¸²¸Ç-n
     --ntlm  Ê¹Óà HTTP NTLM Éí·ÝÑéÖ¤
     -N/--no-buffer  ½ûÓûº³åÊä³ö
     -o/--output  °ÑÊä³öдµ½¸ÃÎļþÖÐ
     -O/--remote-name  °ÑÊä³öдµ½¸ÃÎļþÖУ¬±£ÁôÔ¶³ÌÎļþµÄÎļþÃû
     -p/--proxytunnel  Ê¹ÓÃHTTP´úÀí
     --proxy-anyauth  Ñ¡ÔñÈÎÒ»´úÀíÉí·ÝÑéÖ¤·½·¨
     --proxy-basic  ÔÚ´úÀíÉÏʹÓûù±¾Éí·ÝÑéÖ¤
     --proxy-digest  ÔÚ´úÀíÉÏʹÓÃÊý×ÖÉí·ÝÑéÖ¤
     --proxy-ntlm  ÔÚ´úÀíÉÏʹÓÃntlmÉí·ÝÑéÖ¤
     -P/--ftp-port <address>  Ê¹Óö˿ڵØÖ·£¬¶ø²»ÊÇʹÓÃPASV
     -Q/--quote <cmd>  Îļþ´«ÊäÇ°£¬·¢ËÍÃüÁîµ½·þÎñÆ÷
     -r/--range <range>  ¼ìË÷À´×ÔHTTP/1.1»òFTP·þÎñÆ÷×Ö½Ú·¶Î§
     --range-file    ¶ÁÈ¡£¨SSL£©µÄËæ»úÎļþ
     -R/--remote-time  ÔÚ±¾µØÉú³ÉÎļþʱ£¬±£ÁôÔ¶³ÌÎļþʱ¼ä
     --retry <num>  ´«Êä³öÏÖÎÊÌâʱ£¬ÖØÊԵĴÎÊý
     --retry-delay <seconds>  ´«Êä³öÏÖÎÊÌâʱ£¬ÉèÖÃÖØÊÔ¼ä¸ôʱ¼ä
     --retry-max-time <seconds>  ´«Êä³öÏÖÎÊÌâʱ£¬ÉèÖÃ×î´óÖØÊÔʱ¼ä
     -s/--silent  ¾²Òôģʽ¡£²»Êä³öÈκζ«Î÷
     -S/--show-error  ÏÔʾ´íÎó
     --socks4 <host[:port]>  ÓÃsocks4´úÀí¸ø¶¨Ö÷»úºÍ¶Ë¿Ú
     --socks5 <host[:port]>  ÓÃsocks5´úÀí¸ø¶¨Ö÷»úºÍ¶Ë¿Ú
     -t/--telnet-option <OPT=val>  TelnetÑ¡ÏîÉèÖÃ
     --trace <file>  ¶ÔÖ¸¶¨Îļþ½øÐÐdebug
     --trace-ascii <file> Like  ¸ú×Ùµ«Ã»ÓÐhexÊä³ö
     --trace-time  ¸ú×Ù/ÏêϸÊä³öʱ£¬Ìí¼Óʱ¼ä´Á
     -T/--upload-file <file>  ÉÏ´«Îļþ
     --url <URL>  Spet URL to work with
     -u/--user <user[:password]>  ÉèÖ÷þÎñÆ÷µÄÓû§ºÍÃÜÂë
     -U/--proxy-user <user[:password]>  ÉèÖôúÀíÓû§ÃûºÍÃÜÂë
     -V/--version  ÏÔʾ°æ±¾ÐÅÏ¢
     -w/--write-out [format]  Ê²Ã´Êä³öÍê³Éºó
     -x/--proxy <host[:port]>  ÔÚ¸ø¶¨µÄ¶Ë¿ÚÉÏʹÓÃHTTP´úÀí
     -X/--request <command>  Ö¸¶¨Ê²Ã´ÃüÁî
     -y/--speed-time  ·ÅÆúÏÞËÙËùÒªµÄʱ¼ä¡£Ä¬ÈÏΪ30
     -Y/--speed-limit  Í£Ö¹´«ÊäËٶȵÄÏÞÖÆ£¬ËÙ¶Èʱ¼ä'Ãë
     -z/--time-cond  ´«ËÍʱ¼äÉèÖÃ
     -0/--http1.0  Ê¹ÓÃHTTP 1.0
     -1/--tlsv1  Ê¹ÓÃTLSv1£¨SSL£©
     -2/--sslv2  Ê¹ÓÃSSLv2µÄ£¨SSL£©
     -3/--sslv3  Ê¹ÓõÄSSLv3£¨SSL£©
     --3p-quote   like -Q for the source URL for 3rd party transfer
     --3p-url  Ê¹ÓÃurl£¬½øÐеÚÈý·½´«ËÍ
     --3p-user  Ê¹ÓÃÓû§ÃûºÍÃÜÂ룬½øÐеÚÈý·½´«ËÍ
     -4/--ipv4  Ê¹ÓÃIP4
     -6/--ipv6  Ê¹ÓÃIP6
     -#/--progress-bar  Óýø¶ÈÌõÏÔʾµ±Ç°µÄ´«ËÍ״̬

    ¶þ£¬³£ÓÃcurlʵÀý

    1£¬×¥È¡Ò³ÃæÄÚÈݵ½Ò»¸öÎļþÖÐ
    [root@10.10.90.97 ~]# curl -o home.html 
    http://www.sina.com.cn
    2£¬ÓÃ-O£¨´óдµÄ£©£¬ºóÃæµÄurlÒª¾ßÌ嵽ij¸öÎļþ£¬²»È»×¥²»ÏÂÀ´¡£ÎÒÃÇ»¹¿ÉÒÔÓÃÕýÔòÀ´×¥È¡¶«Î÷
    [root@10.10.90.97 ~]# curl -O
    http://www.it415.com/czxt/linux/25002_3.html
    3£¬Ä£Äâ±íµ¥ÐÅÏ¢£¬Ä£ÄâµÇ¼£¬±£´æcookieÐÅÏ¢
    [root@10.10.90.97 ~]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=******
    http://blog.51yip.com/wp-login.php
    4£¬Ä£Äâ±íµ¥ÐÅÏ¢£¬Ä£ÄâµÇ¼£¬±£´æÍ·ÐÅÏ¢
    [root@10.10.90.97 ~]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=******
    http://blog.51yip.com/wp-login.php
    -c(Сд)²úÉúµÄcookieºÍ-DÀïÃæµÄcookieÊDz»Ò»ÑùµÄ¡£
    5£¬Ê¹ÓÃcookieÎļþ
    [root@10.10.90.97 ~]# curl -b ./cookie_c.txt 
    http://blog.51yip.com/wp-admin
    6£¬¶ÏµãÐø´«£¬-C(´óдµÄ)
    [root@10.10.90.97 ~]# curl -C -O
    http://www.sina.com.cn
    7£¬´«ËÍÊý¾Ý,×îºÃÓõǼҳÃæ²âÊÔ£¬ÒòΪÄã´«Öµ¹ýÈ¥ºó£¬curl»Ø×¥Êý¾Ý£¬Äã¿ÉÒÔ¿´µ½Äã´«ÖµÓÐûÓгɹ¦
    [root@10.10.90.97 ~]# curl -d log=aaaa 
    http://blog.51yip.com/wp-login.php
    8£¬ÏÔʾץȡ´íÎó
    [root@10.10.90.97 ~]# curl -f
    <">http://www.sina.com.cn/asdf
    curl: (22) The requested URL returned error: 404
    [root@10.10.90.97 ~]# curl
    http://www.sina.com.cn/asdf
    <HTML><HEAD><TITLE>404,not found</TITLE>
    ¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£
    9£¬Î±ÔìÀ´Ô´µØÖ·£¬ÓеÄÍøÕ¾»áÅжϣ¬ÇëÇóÀ´Ô´µØÖ·
    [root@10.10.90.97 ~]# curl -e
    http://localhost http://www.sina.com.cn
    10£¬µ±ÎÒÃǾ­³£ÓÃcurlÈ¥¸ãÈ˼Ҷ«Î÷µÄʱºò£¬È˼һá°ÑÄãµÄIP¸øÆÁ±ÎµôµÄ,Õâ¸öʱºò,ÎÒÃÇ¿ÉÒÔÓôúÀí
    [root@10.10.90.97 ~]# curl -x 10.10.90.83:80 -o home.html
    http://www.sina.com.cn
    11£¬±È½Ï´óµÄ¶«Î÷£¬ÎÒÃÇ¿ÉÒÔ·Ö¶ÎÏÂÔØ
    [root@10.10.90.97 ~]# curl -r 0-100 -o img.part1
    http://i2.f.itc.cn/thumb/180/bj/6018/b_60178154.jpg
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   101  100   101    0     0   1926      0 --:--:-- --:--:-- --:--:--     0
    [root@10.10.90.97 ~]# curl -r 100-200 -o img.part2
    http://i2.f.itc.cn/thumb/180/bj/6018/b_60178154.jpg
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   101  100   101    0     0   3498      0 --:--:-- --:--:-- --:--:--   98k
    [root@10.10.90.97 ~]# curl -r 200- -o img.part3
    http://i2.f.itc.cn/thumb/180/bj/6018/b_60178154.jpg   
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 13515  100 13515    0     0   154k      0 --:--:-- --:--:-- --:--:--  280k
    [root@10.10.90.97 ~]# ll |grep img.part
    -rw-r--r-- 1 root root   101 Jan 24 10:59 img.part1
    -rw-r--r-- 1 root root   101 Jan 24 11:00 img.part2
    -rw-r--r-- 1 root root 13515 Jan 24 11:00 img.part3
    ÓõÄʱºò£¬°ÑËûÃÇcatһϾÍOKÁË,cat img.part* >img.jpg
    12£¬²»ÏÔʾÏÂÔؽø¶ÈÐÅÏ¢
    [root@10.10.90.97 ~]# curl -s -o aaa.jpg 
    13£¬ÏÔʾÏÂÔؽø¶ÈÌõ
    [root@10.10.90.97 ~]# curl -# -O 
    http://www.it415.com/czxt/linux/25002_3.html
    ######################################################################## 100.0%
    14,ͨ¹ýftpÏÂÔØÎļþ
    [root@10.10.90.97 ~]# curl -u Óû§Ãû:ÃÜÂë -O
    http://blog.51yip.com/demo/curtain/bbstudy_files/style.css
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    Dload  Upload   Total   Spent    Left  Speed
    101  1934  101  1934    0     0   3184      0 --:--:-- --:--:-- --:--:--  7136
    »òÕßÓÃÏÂÃæµÄ·½Ê½
    [root@10.10.90.97 ~]# curl -O
    ftp://xukai:test@192.168.242.144:21/www/focus/enhouse/index.php
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 87518  100 87518    0     0  2312k      0 --:--:-- --:--:-- --:--:-- 11.5M
    15£¬Í¨¹ýftpÉÏ´«
    [root@10.10.90.97 ~]# curl -T xukai.php
    FONT color=#348c86 size=2 face=ËÎÌå>ftp://xukai:test@192.168.242.144:21/www/focus/enhouse/       
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 87518    0     0  100 87518      0  2040k --:--:-- --:--:-- --:--:-- 8901k

       

     

     

    ת×Ô£ºhttp://xukaizijian.blog.163.com/blog/static/1704331192011024103857504/

     

     

  • Google Selenium framework

    2011-06-13 18:27:05

    Google Selenium framework

    google selenium framework µÄ½éÉÜ¡£http://blanconet.googlepages.com/GTAC_SeleniumFramework.pdf
    ¸öÈ˾õµÃËûÃǵÄframework»¹ÊǺÜÊʺÏһЩÍøÕ¾µÄ²âÊԵġ£
    »¹ÓÐÒ»¸öÊÓƵÓÐÐËȤµÄ¿ÉÒÔÈ¥¿´Ò»Ï¡£Õâ¸öpresentation ʱ¼äͦ³¤µÄ¡£
    http://www.youtube.com/swf/l.swf?swf=http://s.ytimg.com/yt/swf/cps-vfl73532.swf&video_id=hWQdCdH77NA&rel=1&eurl=http://www.henke.ws/post.cfm/Ringo---Selenium-Framework-by-Google&iurl=http://i1.ytimg.com/vi/hWQdCdH77NA/hqdefault.jpg&sk=0QGOJ7DEyc8SMs3B-zrNjTaPX3rXVXtaC&use_get_video_info=1&load_modules=1&hl=en

     

    http://www.henke.ws/post.cfm/Ringo---Selenium-Framework-by-Google

     

    ת×Ô£º http://www.51testing.com/?uid-111742-action-viewspace-itemid-102851

  • ²âÊÔ£¿×ÊÉ¹ÜÀí£¿ÄãÉ˲»Æ𣡣¡£¡ Óë ×éÖ¯¶¨ÂÉ£º±ËµÃÔ­Ôò¡¢Ä«·ÆÔ­Ôò¡¢ÅÁ½ðÉ­¶¨ÂÉ

    2011-06-12 18:29:06

    ±ËµÃÔ­Ôò¡¢Ä«·ÆÔ­Ôò¡¢ÅÁ½ðÉ­¶¨ÂÉ·Ö±ðÊÇÖ¸µÄʲô£¿

    http://zhidao.baidu.com/question/201600455.html
    ÈçÌ⣬Ϊʲô˵ÊÇ×î½Ü³öµÄÈý´ó·¢ÏÖ£¿Àí½âµÄÈËÓüò¶ÌÒ׶®µÄ»°½²Ò»Ï£¬Ð»¾ø´óÅúÁ¿µÄ¸´ÖÆð¤Ìù£¬ÅÁ½ðÉ­°Ù¿ÆÓУ¬¿ÉÒÔ¸ü¼òµ¥¾«±Ùµã˵¡£Ð»Ð»

    ×î¼Ñ´ð°¸

    ±ËµÃÔ­Àí£¨The Peter Principle£©ÕýÊDZ˵øù¾Ýǧ°Ù¸öÓйØ×éÖ¯Öв»ÄÜʤÈεÄʧ°ÜʵÀýµÄ·ÖÎö¶ø¹éÄɳöÀ´  ±ËµÃÔ­Àí
    µÄ¡£Æä¾ßÌåÄÚÈÝÊÇ£º¡°ÔÚÒ»¸öµÈ¼¶ÖƶÈÖУ¬Ã¿¸öÖ°¹¤Ç÷ÏòÓÚÉÏÉýµ½ËûËù²»ÄÜʤÈεĵØλ¡±¡£

    ʲôÊÇÄ«·Æ¶¨ÂÉ£¿×î¼òµ¥µÄ±í´ïÐÎʽÊÇ¡°ÓпÉÄܳö´íµÄÊÂÇ飬¾Í»á³ö´í£¨Anything that can go wrong will go wrong£©¡£¡±

    ÅÁ½ðÉ­ÏÖÏó¡£
    ¶¨ÂÉÒ»£º
    ÈßÔ±Ôö¼ÓÔ­Àí:¹ÙÔ±ÊýÁ¿Ôö¼ÓÓ빤×÷Á¿²¢ÎÞ¹Øϵ£¬¶øÊÇÓÉÁ½¸öÔ´¶¯ÒòÔì³ÉµÄ¡£Ã¿Ò»¸ö¹ÙÔ±¶¼Ï£ÍûÔö¼Ó²¿Êô¶ø²»ÊǶÔÊÖ£¨È硰ͶƱ¡±£©£»¹ÙÔ±ÃDZ˴ËΪ¶Ô·½ÖÆÔ칤×÷£¨ÈçÐÐÕþÉóÅú£¬¹¤ÉÌ¡¢Ë°Îñ¡¢Éó¼Æ¡¢¹«°²£¬¼ÈµÃÀûÒæÇýʹ£©
    ¶¨Âɶþ£º
    ÖмäÅɾö¶¨Ô­Àí:ΪÁËÕùÈ¡ÖмäÅɵÄÖ§³Ö£¬Ë«·½ÆÄ·ÑÐÄ»ú½øÐÐÕùÈ¡£¬ÌرðÊÇË«·½ÊƾùÁ¦µÐµÄÇé¿öÏ¡£ËùÒÔ£¬²»ÊǾºÕù¶ÔÊÖ¶øÊÇÖмäÅɳÉÁËÖ÷½Ç¡£¶Ô¾ö¶¨µÄÄÚÈݲ»Ê®·ÖÇå³þµÄÈË£¬ÒâÖ¾±¡ÈõµÄÈË£¬¶ú¶ä²»´óÁé¹âµÄÈË
    ¶¨ÂÉÈý£º
    ¼¦Ã«ËâƤ¶¨ÂÉ£º´ó²¿·Ö¹ÙÔ±Óɲ»¶®µÃ°ÙÍò¡¢Ç§ÍòÔª¶øÖ»¶®µÃǧԪµÄÈË×é³É£¬ÒÔÖÁÓÚÌÖÂÛ¸÷ÖÖ²ÆÕþÒé°¸Ëù·ÑµÄʱ¼äÓëÉæ¼°µÄ½ð¶î³Ê·´±È£¬¼´Éæ¼°µÄ½ð¶îÔ½´ó£¬ÌÖÂÛµÄʱ¼äÔ½¶Ì£¬·´Ö®Ê±¼äÔòÔ½³¤¡£¼¦Ã«ËâƤµÄÊÂÇéÔò»¨·ÑºÜ¶àʱ¼ä¡£
    ¶¨ÂÉËÄ£º
    °ì¹«³¡ºÏµÄºÀ»ª³Ì¶ÈÓë»ú¹ØµÄÊÂÒµºÍЧÂʳʷ´±È£ºÊÂÒµ´¦Óڳɳ¤ÆڵĻú¹ØÒ»°ãûÓÐ×ã¹»µÄÐËȤºÍʱ¼äÉè¼ÆÍêÃÀÎÞȱµÄ×ܲ¿¡£ËùÒÔ£¬¡°Éè¼ÆÍêÃÀÄËÊǵòÁãµÄÏóÕ÷¡±£¬¡°ÍêÃÀ¾ÍÊǽá¾Ö£¬½á¾Ö¾ÍÊÇËÀÍö¡±¡£
    ¶¨ÂÉÎ壺
    ¼¦Î²¾Æ»á¹«Ê½£º»áÒéÓ뼦β¾Æ»á£¨·¹¾Ö£©Í¬ÔÚ¡£°Ñ»á³¡´Ó×óµ½ÓÒ·ÖΪA-FÁù¶Î£¬´Ó½øÃÅ´¦µ½×îÔ¶¶Ë·ÖΪ1-8°Ë¶Î£¬Ôò¿É»®·Ö³ö48¸öÇøÓò£»ÔÚ¼Ù¶¨¾Æ»á¿ªÊ¼µÄʱ¼äΪH£¬ÇÒ×îºóÒ»Ãû¿ÍÈËÀ뿪µÄʱ¼äÊÇ×î³õÒ»Ãû¿ÍÈ˽ø³¡ºó2Сʱ20·ÖÖÓ£¬Ôò£¬ÖØÒªÈËÎﶼ»áÔÚH+75ÖÁH+90µÄʱ¼äÔÚE/7ÇøÓò¼¯ºÏ£¬×îÖØÒªµÄÈËÎï×ÔÈ»»áÔÚÆäÖС£
    ¶¨ÂÉÁù£º
    ¼µ¶ÊÖ¢£¨·ÖÈý¸öʱÆÚ£©£ºÔÚ¼µ¶ÊÖ¢Á÷ÐеĻú¹ØÀ¸ß¼¶Ö÷¹ÜÐÁ¿à¶ø³Ù¶Û£¬Öвã¸É²¿¹´ÐĶ·½Ç£¬µ×²ãÈËÔ±´¹Í·É¥Æø¶ø²»ÎñÕýÒµ¡£ µÚÒ»½×¶Î£¬³öÏÖÁ˼ÈÎÞÄÜÓֺüµ¶ÊµÄÈËÎ¼´»¼ÉÏÁË¡°Ó¹¶ÊÖ¢£¨Æ½Ó¹¶ø¼µ¶Ê£©¡±£» µÚ¶þ½×¶Î£¬ÕâЩӹ¶ÊÖ¢»¼Õß²»ÐÒ½øÈë»òÔ­±¾¾ÍÔڸ߲㣬¾¡Ò»ÇпÉÄÜÊÖ¶ÎÅųâ±È×Ô¼ºÇ¿µÄÈË£¬¾Ü¾øÌáÉýÄÜÁ¦Ç¿µÄÈË£»¡°ÓÞ´À±ÈÈü¡± µÚÈý½×¶Î£¬»ú¹Ø·Â·ð±»ÅçÁËDDT£¬·²²ÅÖÇÕßÒ»¸Å²»µÃÈëÄÚ£¬»ú¹Ø²¡Èë¸àëÁ£¬´ËʱµÄ»ú¹ØÒѾ­ÎÞÒ©¿É¾ÈÁË
    ¶¨ÂÉÆߣº
    ÍËÐÝ»ìÂÒ£¨50ËêÏÖÏ󣩣ºÒ»°ãÍËÐݵÄÄêÁäÊÇR£¬ÔÚÇ°3Ä꣨R-3£©È˵ľ«Á¦»á¿ªÊ¼¼õÍË£»ÎÊÌâÔÚÓÚÈçºÎÌôÑ¡ºÏÊʵĽÓÌæÕߣ¬¹¤×÷±íÏÖÔ½ÓÅÐ㣬ÈÎְʱ¼äÔ½³¤£¬Ô½ÄÑÑ°µÃºÏÊʵĽÓÌæÕߣ¬¶øÔÚλÕß×Ü»áÉè·¨×èְֹλ½ÏµÍµÄÈ˽ӽü×Ô¼ºµÄְ룬ÒÔÖÁ²»µÃ²»ÑÓ³¤×Ô¼ºµÄÍËÐÝʱ¼ä¡£



    ÍƼö´ð°¸
    ±ËµÃ¶¨ÂÉ--------²»³ÆÖ°¶¨ÂÉ
    ²»¶ÏÒòΪ³ÆÖ°¶øµÃµ½ÌáÉýµÄʱºò£¬Æä½á¹û±Ø¶¨Êǽ׶ÎÐԵIJ»³ÆÖ°
    ÊÍ£ºÃæÁÙÉýְʱÐèҪȫÃ濼ÂÇ×Ô¼ºÄÜ·ñÔÚеĸÚλÉϳÆÖ°£¬²»ÒªÃ³È»ÉÏÈΣ»
    ×÷ΪÁìµ¼£¬ÃæÁÙÌáÉýËûÈ˵Äʱºò£¬ÐèÒª¿¼ÂÇÊÇ·ñÌáÉý»á¸ø±»ÌáÉýÈË´øÈ¥²»³ÆְѹÁ¦£¬´Ó¶øµ¼ÖÂÒò²»³ÆÖ°µÄ·¢Éú£¬¶øÖÂʹÊÂÎïÕûÌåÔâÓö·çÏÕ¡£

    ÅÁ½ðÉ­¶¨ÂÉ-----иµ¡¶¨ÂÉ
    ²»³ÆÖ°µÄÔðÈÎÈË£¬Ò»¶¨»á½«¡°²»³ÆÖ°·çÏÕ¡±×ª¼Þ¸ø¸ü²»³ÆÖ°µÄÏÂÊô
    ÊÍ£ºµ±Ò»¼þÊÂÎïµÄÔðÈÎÈËÊDz»³ÆÖ°µÄʱºò£¬½«µ¼ÖÂÕâ¼þÊÂÎïµÄ´ó²¿·Ö²ÎÓëÈ˶¼ÊDz»³ÆÖ°µÄ

    Ä«·Æ¶¨ÂÉ--------´íÎó·çÏÕ¶¨ÂÉ
    Èç¹ûÒ»¼þÊ£¬ÓпÉÄÜ·¢Éú´íÎó£¬ÄÇÕâ¼þʾͱØÈ»»á·¢Éú´íÎó¡£
    ÊÍ£ºÖ»ÒªÓзçÏÕ·¢ÉúµÄÒòËØ´æÔÚ£¬¾ÍÒ»¶¨»áÓзçÏÕ·¢ÉúµÄ¿ÉÄÜ£»
    Ö»ÒªÓзçÏÕ·¢ÉúµÄ¿ÉÄÜ£¬¾ÍÒ»¶¨»áÓзçÏÕ·¢ÉúµÄʱºò£»

    Ö®ËùÒÔ˵ÕâÈý´ó¶¨ÂÉÊÇ21ÊÀ¼Í×îÖøÃûµÄÔ­Àí£¬ÊÇÒòΪÕâÈýÌõÔ­Àí½âÊÍ£¬²¢ÆÊÎöÁËÄ¿Ç°ÈËÀàÉç»á£¬¸ß¶ÈÎÄÃ÷ºóËù±ØÈ»³öÏÖµÄÉç»áÎÊÌ⣬¶øÇÒÌá³öÁ˱ÜÃâÕâЩÎÊÌâ±ØÈ»·¢ÉúµÄÊֶκͷ½·¨¡£
    ÎÒÃÇ´ó¶àÊýÈ˶ÔÕâЩ¿´ËƼòµ¥µÄÎÊÌ⣬ÈÏʶ²¢²»Í¸³¹¡£´Ó¶øµ¼ÖÂÁËÔ­ÀíËùÊö½á¹û·¢ÉúµÄ±ØÈ»ÐÔ
    Ï£Íû¿ÉÒԺʹó¼ÒÒ»ÆðÌÖÂÛÕâЩÃüÌâ
    QQ£º6503420
    Mail£ºzhengyuliang76@163.com
    Ö£ÓîÁº






    ²âÊÔ£¿×ÊÉ¹ÜÀí£¿ÄãÉ˲»Æ𣡣¡£¡


    http://www.51testing.com/?uid-68857-action-viewspace-itemid-236965


    »°ËµÎÒÃDzâÊÔ²¿ÃÅáÛ·åʱÆÚÔø¾­ÓÐ150¶àÈË£¬ºóÀ´ÓÉÓÚ¼¯ÍÅÒµÎñ·¢Õ¹£¬²âÊÔ²¿ÃÅ·Ö³ÉÁËÁ½¸ö£¬ÎÒÃDz¿Ãű£ÓÐ110ÈË×óÓÒ£¬ÁíÒ»¸ö²âÊÔ²¿ÃÅÔ¼ÓÐ70¶à ÈË°É¡£ÐÂÉúµÄ²¿ÃÅÎÒ²»Á˽⣬µ¥¿´ÎÒËùÔÚµÄÕâ¸öÅÓ´óµÄ²âÊÔ²¿ÃÅ£¬ÎÒÕâÁ½ÄêÀ´£¨³ýÁ˽ñÄ꣬½ñÄê±ÊÕß²»Ö¨ÉùÁË£©Ò»Ö±²»¶ÏµØÚ¸²¡·½·½ÃæÃæµÄÎÊÌ⣬ÏòÁìµ¼·´À¡µ«ÓÉÓÚ Ã»Óиø³öʵ¼Ê½â¾ö·½°¸¶ø×îÖÕÎÞ·¨¡°ÉÏ´ïÌìÌý¡±£¬×îºóÒ²¾Í±ä³ÉÁ˸ÒÅ­²»Ð¼ÑÔ£¬ÏÖÔÚË÷ÐÔд³öÀ´¸ø×Ô¼º¡¢¸ø´ó¼Ò¿´¿´°É£¬»òÐí´Ó×ÖÃæÉÏÄÜ·¢ÏÖһЩ½â¾öµÄ;¾¶¡£

    ÕûÌå²ã´Î¸ÐÄ£ºý

    ˵µ½×ÊÉî²âÊÔ¹¤³ÌʦÕâ¸öÍ·ÏΣ¬ÎÒ¾õµÃ¸ü¶àµÄ²»ÊÇÌåÏÖ¼¼ÊõÄÜÁ¦ºÍÍ·ÄÔµÄÁé»î£¬¶øÊǹ¤×÷¾­Ñé¡¢×ÛºÏÄÜÁ¦ºÍ×ÊÀú£¬ÔÚ¹«Ë¾ÄÚ²¿ÓÐÒ»¶¨µÄÈËÂö£¬ÓÐ×ÅÓë¸ÉϵÈ˽϶àµÄºÏ×÷¾­Ñé¡£µ±È»£¬²»Í¬µÄ¹«Ë¾ÒÀ¾Ý×ÔÉíµÄÌåÖƶԲâÊÔÈËÔ±µÄ³ÆºôÒ²ÓÐËù²»Í¬£¬ÎÒÃÇÕâÀﲻȥ¾À½áÕâ¸ö¡£ÎÒÃǹ«Ë¾ÊDzÉÓÃÖ°¼¶Öƶȣ¬³õ¼¶²âÊÔ¹¤³ÌʦµÄ¿ÉÄܾÍÊÇÖ¸±¾¿Æ±ÏÒµ3ÄêÒÔÄÚµÄͬÊ£¬Ò²¾ÍÊÇÔÚ¹¤×÷2ÄêºóÓɳõ¼¶Éýµ½×ÊÉµ±È»ÕâÁ½ÄêµÄ¿¼ºËÒªÔÚÒ»¶¨µÄ°Ù·Ö±ÈÖ®ÄÚ¡£ÄÇôÓɳõ¼¶Éýµ½×ÊÉî¿´ÆðÀ´ÊǼþºÜ¼òµ¥µÄÊÂÇéÁË£¬»òÐíÕýÊÇÒòΪÕâ¸ö×ÊÉîµÄÍ·ÏÎÀ´µÄÌ«¹ý¼òµ¥°É£¬ÎÒÃǵÄÕû¸ö²âÊÔ²¿ÃÅûÓÐ×ÛºÏÄÜÁ¦ÉϵIJã´Î¸Ð£¬ÓÐЩ¹¤×÷3Äê»òÕß5ÄêµÄͬÊÂÓ빤×÷2Äê Ö®ÄÚµÄͬÊÂÔÚ¸÷¸ö·½ÃæûÓжà´ó²î±ð¡£ÁíÒ»·½Ã棬ÔÚÈÕ³£¹¤×÷ÖÐÁìµ¼²¢Ã»ÓаѲâÊÔ·ÖÎö¡¢²âÊÔÉè¼Æ¡¢ºÍ²âÊÔÖ´ÐÐÔÚ×ÊÉî²âÊÔ¹¤³ÌʦºÍ³õ¼¶²âÊÔ¹¤³Ìʦ֮¼ä½øÐÐÃ÷È·µÄ ·Ö¹¤£¬ÍùÍùÓÉijһ¸öÈËÈ«³Ì¸ºÔð²âÊÔ·ÖÎö¡¢Éè¼ÆºÍÖ´ÐС£ËäÈ»ÎÒÃdz¢ÊÔ¹ýʹÓòâÊÔÖ´Ðй¤³Ìʦ£¨Ö´ÐÐÔ±£©£¬µ«ÊǹµÍ¨³É±¾Ì«¸ß¼¸ºõÈÃËùÓеIJâÊÔ¹¤³Ìʦ¶¼±§Ô¹²»ÐÝ£» ÁíÍ⣬¶Ô²âÊÔÖ´ÐÐԱûÓÐÓÐЧµÄÅàÑøºÍ¼¤Àø»úÖÆ£¬¶øÇÒÁìµ¼¾ö¶¨Ô­ÔòÉÏÖ»ÕÐÊÕ´óר±ÏÒµÉú£¨°ÚÃ÷Á˾ÍÊÇѧÀúÆçÊÓ£©£¬µ¼ÖÂËûÃDZ¾Éí¹¤×÷ҲûÓжà´ó»ý¼«ÐÔ£¬Õâ¸ö»®·Ö ÌåϵҲ¾Í½¥Ç÷ʽ΢ÁË¡£

    Õë ¶ÔÕâÖÖÇé¿ö£¬ÎÒÈÏΪӦ¸Ã´ÓÖ°ÔðºÍְλÉϽøÐÐϸ»¯·Ö½â£¬°Ñ²âÊÔ¹¤×÷Öð²ã·ÖÀ룬ÕâÑù¶ÔÓÚ²âÊÔ²¿ÃÅÕâÑùµÄ³É±¾ÖÐÐÄÀ´Ëµ£¬ÈËÔ±Á÷ʧ¾ÍÊDz»ºÜ´óµÄÎÊÌâÁË¡£ÒòΪÒÀ¾ÝÄÜ Á¦ºÏÀí·Ö½â¹¤×÷£¬Ö°Ôð·ÖÃ÷£¬½øÒ»²½²ù³ý³Ô´ó¹ø·¹µÄÒâʶ£¬ÈÃÄÜÁ¦¸üÇ¿µÄÈ˳е£¸ü¼ÓÓмÛÖµµÄ¹¤×÷£¬Ò²ÄÜÎüÒý¸ü¶àÈ˲ţ¬¶ø²»»áÈÃÕâЩÕæÕýµÄ¡°ÄÜÈË¡±µÄ³ö×ß´ø¶¯Á¬ ËøЧӦ£¬Ôì³ÉºÜ´óµÄÈËÔ±Ëðʧ£¬ÒòΪÕâЩÄÜÁ¦¸üÇ¿µÄ²âÊÔÈËÔ±µÄ·ÇְȨӰÏìÁ¦Ò²ÊDz»¿ÉСÊӵģ»ÎÒÇ×¼û¹ý£¨ÔÚÎÒÉÏÒ»¼Ò¹«Ë¾£©Ò»¸öÅ£ÈË´Çְ½Ðø´ø×ßһȺÈ˵ÄÇé¿ö¡£ ¾ßÌåÈçºÎ·Ö²ã»®·Ö²âÊÔ²¿ÃŵÄÖ°ÔðºÍְλÄØ£¬¾ßÌåÇé¿ö¾ßÌå¶Ô´ý£¬ÎÒ¾õµÃ´óÖ¿ÉÒԲο¼ÈçϽṹ£¬ÓÉÉϼ¶Áìµ¼½øÐм¼ÊõºÍ×ÛºÏÄÜÁ¦µÄ¿¼ÆÀ£¬¶ø²»Ê¹ÓÃ×ÊÀúÆÀÅУº

    Ø ²âÊÔ²¿Ãž­Àí¡¢²âÊÔ×ܼࡢÖÊÁ¿×ܼࡪ¡ª¸ºÔð¹ÜÀíÕû¸ö²âÊÔ²¿ÃŵÄÈËÁ¦×ÊÔ´£»

    Ø ·Ö×é²âÊÔ¾­Àí¡ª¡ªÊʺÏ20ÈËÒÔÉϵIJâÊÔ²¿ÃÅ£¬ÒòΪÿ¸öÍŶÓ×î¼ÑÅäÖÃÓ¦¸ÃÊÇ8¡¢9¸öÈË£»

    Ø ¼¼ÊõÖ÷¹Ü/²âÊԼܹ¹Ê¦¡ª¡ªÃ¿¸ö·Ö×éÅ䱸һλ¼¼ÊõÖ÷¹Ü»òÕß²âÊԼܹ¹Ê¦£»

    Ø ¸ß¼¶²âÊÔ¹¤³Ìʦ¡ª¡ªÍ¨³£5ÄêÒÔÉϾ­Ñé¶øÇÒ´ïµ½Ò»¶¨¼¼Êõ²ã´Î£»

    Ø Öм¶²âÊÔ¹¤³Ìʦ¡ª¡ªÍ¨³£3ÄêÒÔÉϾ­Ñé²¢ÇÒÂú×ãÒ»¶¨¼¼Êõ²ã´Î£»

    Ø ³õ¼¶²âÊÔ¹¤³Ìʦ¡ª¡ªÍ¨³£ÊÇÓ¦½ì±ÏÒµ³õ¼¸Ä꣬¸Õ¿ªÊ¼¹¤×÷µÄͬÊ¡£

    ×÷Ϊһ¸ö²âÊÔÖ÷¹Ü£¬Èç¹ûÄãÈôó¼ÒËù´ÓÊµĹ¤×÷ÄÚÈݶ¼»ù±¾Ò»Ö£¬¶øÄãÈ´¸ú±ðÈË˵×ÊÉî²âÊÔ¹¤³ÌʦµÄÒ»¸öÈËÔµijɱ¾ÊÇ15Íò£¬³õ¼¶²âÊÔ¹¤³ÌʦµÄ³É±¾ÊÇ9Íò5£¬ÄãÕâ²»ÊÇ×ÔÆÛÆÛÈËô£¿³ýÁË×ÊÉî²âÊÔ¹¤³ÌʦµÄ¹¤×ʱȳõ¼¶²âÊÔ¹¤³ÌʦµÄ¸ßһЩ»¹ÓÐʲô²î±ðÄØ£¿ÁíÍ⣬¼ÈÈ»¹¤×÷ÄÚÈÝÒ»Ñù£¬Æ¾Ê²Ã´×ÊÉîµÄÒª±È·Ç×ÊÉîµÄ¹¤×ʸßÄØ£¿

    µ±È»£¬»òÐíÄã»á»Ø´ð˵×ÊÉî²âÊÔ¹¤³ÌʦҵÎñ֪ʶÊìϤµÃ¶à£¬ÄÇôÎÒÃÇÀ´¿´¿´°üº¬ÒµÎñ֪ʶÔÚÄڵĸ÷¸ö·½ÃæµÄ×ÛºÏÄÜÁ¦·¢Õ¹Çé¿ö°É¡£

    ×ÛºÏÄÜÁ¦²»½¡È«

    ¼ÈÈ»ÊÇÈí¼þ²âÊÔ£¬ÄÇô²âÊÔÈËÔ±ÖÁÉÙÓ¦¸Ã¾ß±¸Èý¸öÄÜÁ¦£ºÒµÎñ֪ʶ¡¢ITרҵ¼¼ÄÜ¡¢Ö°Òµ¼¼ÄÜ¡£Ò»°ãÇé¿öÏ£¬¶ÔÓÚ×ÊÉî²âÊÔ¹¤³ÌʦÀ´Ëµ£¬ÓÉÓÚ³¤ÆÚÔÚÒ»¸ö¹«Ë¾»òÕßÒ»¸öÐÐÒµ¹¤×÷£¨Ï²»¶»»ÐеÄÔÛÃDz»ÌÖÂÛ£©£¬ËûÃǵÄÒµÎñ֪ʶһ°ãµÄÈ·±È³õ¼¶²âÊÔ¹¤³ÌʦÊìϤºÜ¶à¡£

    ¶øËûÃÇÓÅÊÆ×îÃ÷ÏÔµÄÊÇÖ°Òµ¼¼ÄÜ£¬Ö°Òµ¼¼ÄܶԲâÊÔÀ´Ëµ½Ï¶àµÄÌåÏÖÔÚ¹µÍ¨ÄÜÁ¦¡¢Ð­µ÷ÄÜÁ¦ÉÏ¡£µ«ÊÇ£¬ÔÚÎÒÃǹ«Ë¾£¬Õâ¸ö´Ê²¢²»¼ûµÃ´ú±íÒ»ÖÖÕýÃæµÄ½âÊÍ£¬ÊÇÒòΪÓв¿·ÖÈË°Ñ ÕâÖÖÄÜÁ¦±ä³ÉÁ˳¶Æ¤¡¢ÍÆÚõÄÄÜÁ¦£¡ÓÈÆäÔÚÒ»¸ö²¿Ãŷdz£¶àµÄ¹«Ë¾£¬³¤ÆڵĿ粿ÃÅЭ×÷Á·¾ÍÁËËûÃÇÃô¸ÐµÄÉñ¾­ºÍ´ò¹þ¹þÉñ¹¦£º²»ÇáÒ×Ã÷È·×Ô¼ºËù´ú±íµÄ²âÊÔ²¿ÃŵÄÁ¢ ³¡£¬²»·¢±íÓë¶àÊýÈËÒâ¼ûÏà㣵ÄÑÔÂÛ£¬ÄÄÅÂ×Ô¼ºÓÐÊ®×ãµÄ°ÑÎÕ´ó¼ÒµÄ¿´·¨ÊÇÓÐÊèºö»òÕßƬÃæµÄ£¬×ÔÎÒ±£»¤ÒâʶºÜÇ¿¡­¡­ÉõÖÁÓÐЩÈ˸ù±¾²»ÈÏΪ×Ô¼ºÓÐȨÀûºÍÒåÎñÈ¥·ñ ¾öÓÐÑÏÖØÎÊÌâµÄ°æ±¾µÄÏ·¢£¡Ê®·Ö³çÉÐÉý¼¶£¬ÊÂÎÞ¾Þϸ£¬Ö»Òª×Ô¼ºÃ»Óо­Àú¹ýµÄ±ãÍƵ½Áìµ¼ÄÇÀ¼´±ã×Ô¼ºÓÐȨÀûºÍÄÜÁ¦È¥·ÖÎö¾ö¶Ï¡£¿´ÆðÀ´ÊÇÒ»¸öÊ®·ÖûÓиöÐÔ¡¢ Ê®·ÖÌý»°µÄÔ±¹¤»òÕßÍŶӣ¬Èç¹û±¾Ö°¹¤×÷½øÐеò»´í£¬ÄÇôÁìµ¼ÊÇÊ®·Öϲ»¶µÄ£¬ÒòΪËûÃÇ´Ó²»¡°µ·ÂÒ¡±¡£Ïà·´£¬Ò²ÓÐÒ»²¿·ÖÈËϲ»¶¡°µ¹½­ºþ¡±£¬ÏàÐÅ×Ô¼ºÄܹ»´ú±íËù ÓÐÈË£¬ºÜºÀˬ£¬Ï²»¶ËæÒâÐíŵ£¬ÓÐʱºò·¸µÄ´íÎó»áÈÃÁìµ¼¡°ºÞµÃÑÀÖ±Ñ÷Ñ÷¡±¡£Ïà±È֮ϣ¬³õ¼¶²âÊÔ¹¤³ÌʦÓÉÓڴ󶼸մÓУ԰³öÀ´£¬ÏÔµÃÖÉÄÛ¶øÖ±ÂʵĶ࣬ËäÈ»´íÎó²» »áÉÙ·¸£¬µ«ÊÇÈç¹ûÉƼÓÓÕµ¼£¬ËûÃǵĽø²½»áÈÃÈË¿´ÔÚÑÛÀϲÔÚÐÄÀï¡£ÈçºÎÄܹ»ÈÃËûÃDZÜÃâ¹ý¶à½Ó´¥¡°³¶Æ¤Éñ¹¦¡±ºÍ¡°µ¹½­ºþÉñ¹¦¡±¾ÍÒª¿´¹«Ë¾µÄÌåÖÆÁË¡£¾ÍÎÒÃǹ« ˾À´¿´£¬Èç¹ûûÓÐÖØ´ó±ä¸ï·¢Éú£¬´ó²¿·ÖÓ¦½ì±ÏÒµÉú½«»áÑÓÐøÇ°±²ÃǵÄÂọ́¬¿ÉϧÎÒÒ²Ö»ÊǶ¯¶¯×ìƤ×Ó£¬Î´±ØÄÜÌṩʲôÓн¨ÉèÐÔµÄÒâ¼û£¬µ«Ô¸Ó¢Ã÷µÄÁìµ¼ÃÇÄܶ´²ì ÕâЩϸ½Ú£¬²»ÒªÈÃÕâÖÖ¹ÖȦѭ»·³ÖÐøÏÂÈ¥ÁË¡£

    ÔÚITרҵ¼¼ÄÜÉÏ£¬ÓÐÁ½ÖÖ·¢Õ¹Ç÷ÊÆ£ºÒ»ÖÖÊÇËæמ­ÑéÔ½¶à¼¼ÊõԽǿ¡¢´ó¾ÖÒâʶԽǿ£»ÁíÍâÒ»ÖÖÊDZ»ÎÂË®ÖóµÄÇàÍÜ£¬ÂýÂýµÄʧȥÌøÔ¾µÄÄÜÁ¦£¬ÄÇôµÈ×ű»¿ªË®ÌÌËÀ£¬ÒªÃ´Ìø³öÈ¥¡­¡­ÓÉÓÚβîÌ«´ó¶ø±»¶³ËÀ¡£ºÜ±¯¾çµÄÊÇÎÒÖÜΧÓдó°ëµÄ²âÊÔͬÊÂ×ßÏòÁ˵ڶþÌõµÀ·£¬¿ÉÄÜËæ×ÅÄêÁäµÄÔö³¤£¬Ñ§Ï°ºÍ½ÓÊÜÐÂ֪ʶµÄÄÜÁ¦ÔÚϽµ°É£¬ÎÒÃǺܶà×ÊÉîµÄÀÏͬʶÔм¼Êõ¡¢Ð·½·¨³Ö»³ÒÉ¡¢¹ÛÍûÉõÖÁµÖ´¥µÄ̬¶È¡£ÕâÑùÒ»À´Õû¸ö²âÊÔ²¿ÃŵÄÇéÐ÷¿´ÆðÀ´²¢²»ÄÇô¸ß£¬Ñ§Ï°·ÕΧ²»ÊǺܺã¬ÕûÌå¼¼Êõˮƽ²»¸ß£¬¶øÇҶϲãÃ÷ÏÔ¡£±ÈÈçÔÚÎÒÃDz¿ÃÅ£¬ÇÒ²»ÌÖÂÛ²âÊÔ·ÖÎöÉè¼Æ±¾ÉíµÄÄÜÁ¦£¬Á˽âQTPµÄ¿ÉÄÜÓÐ90ÈË£¬µ«ÊǾ«Í¨µÄ²»¹ý2¡¢3ÈË£¬ÆäÓàµÄֻͣÁôÔÚ¼òµ¥µÄ¼ÖÆ¡¢Ð޸ĵIJã´Î£»Á˽âSeleniumµÄ20À´ÈË£¬¾«Í¨µÄ¿ÉÄܽö1¡¢2ÈËÉõÖÁûÓУ»Á˽âOracleºÍSQLµÄ100¶àÈË£¬¶®µÃÓÅ»¯Ëã·¨ºÍSQLЧÂÊÓÅ»¯µÄÒ²²»¹ý3¡¢5ÈË£»Á˽âÐÔÄܲâÊԵĴóÔ¼50ÈË£¬¾«Í¨ËüµÄ2¡¢3È˶øÒÑ£¬»¹ÓÐÖмä¼þ¡¢²Ù×÷ϵͳ¡­¡­¶øÇÒÎÒ·¢ÏÖ£¬¾ÍÊÇÄÇô¼¸¸öÈ˶Ը÷ÖÖ¼¼Êõ¶¼ÓÐÉæÁÔ£¬¶øÆäÓàµÄͬÊÂÔòËƺõÊÇûÓÐǿѹ¸ù±¾²»»áȥѧϰ£¬åØÂÛÉîÈëÑо¿ÁË¡£ÎÒ·ÖÎöÔì³ÉÕâÖÖ¾ÖÃæµÄÔ­ÒòÓÐÕâô¼¸µã£º

    Ø ¼Û ֵȡÏò»òÕß˵ÐËȤ²»ÔÚ¼¼Êõ±¾Éí£¬¶ÔÓÚÆ«×ÊÉîµÄ²âÊÔ¹¤³ÌʦÀ´Ëµ£¬´ó²¿·Ö¿ÉÄܶ¼ÒѾ­³É¼Ò£¬ËûÃDz»Ô¸Òâ¼·³öʱ¼äÔÚ¼¼ÊõÑо¿Ñ§Ï°ÉÏ£¬¶ø¸üÀÖÓÚ»ØÈ¥Õչ˱¦±¦¡£ÎÒÔø¾­ ³¢ÊÔ¾Ù°ìºÜ¶à´Î¼¼Êõ·ÖÏíºÍÇëÍâÔ®À´½øÐм¼ÊõÅàѵ£¬µ«ÊÇ´ó¼Ò¶¼±¨×ÅÄÃÅàѵ»ý·ÖµÄ̬¶ÈÈ¥²Î¼Ó£¬ÅàѵÍê±ÏÁ¢¿Ì¾ÍÍü¼ÇÁË£¬¸ù±¾²»È¥Ö÷¶¯³¢ÊÔÑо¿ºÍÓ¦Óá£ÕâÒ»µã»ù±¾ ÎÞ·¨¸Ä±ä£¬³ý·ÇÓÐ×ã¹»¶àµÄÀûÒæ·ÅÔÚËûÃÇÃæÇ°£¬µ«ÊÇÕâÕâÖÖÓÕ»óÒ²»áÑø³É½¿×ݵÄÇéÐ÷£¬ÊDz»¿ÉÈ¡µÄ¡£

    Ø ¹«Ë¾ÔË×÷·½Ê½¾ö¶¨ÁË´ó¼ÒµÄ¹¤×÷ºÜæµ£¬Ò»¸ö²âÊÔÈËÔ±ÒªÓ¦¶Ô10À´¸ö¿ª·¢ÈËÔ±µÄ´úÂ룬ѹÁ¦´óòËƺܶÍÁ¶ÈË£¬µ«ÊÇÖ»ÊǶÍÁ¶ÎÒÃÇʱ¼ä¹ÜÀíºÍ´¦Àí²¢ÐÐÈÎÎñµÄÄÜÁ¦£¬²¢Ã»ÓиøÎÒÃÇÁô϶àÉÙѧϰµÄ¿Õ¼ä¡£¶øÇÒÔÚÕâÖÖÇé¿öϹ¤×÷£¬¼´±ãÓг¯Ò»ÈÕÇåÏÐÏÂÀ´£¬ºÜ¶àÈËÒ²²»ÔÙÔ¸ÒâѧϰÁË£ºÈ˵ÄÄÜÁ¦¾ÍÏñµ¯»É£¬À­Ö±Á˾ÍÔÙÒ²Ëõ²»»ØÈ¥ÁË£¡

    Ø ÓÐЩÁìµ¼ÐÅ·îÕâôһ¸ö¹Ûµã£º¹«Ë¾¸¶Ð½Ë®ÊÇÈÃÄãÃǹ¤×÷µÄ¶ø²»ÊÇѧϰµÄÔÆÔÆ¡­¡­¶ÔÕâÖÖ˵·¨ÎáÉî±ÉÊÓÖ®£¡Êâ²»ÖªËùνµÄѧϰ²»½öÊǶԸöÈ˵ÄÌáÉý£¬Ò²ÊÇÔÚΪ¹«Ë¾Ìá¸ß²úÄÜ¡£Èç¹ûÕû¸ö²âÊÔ²¿ÃÅÔÚʹÓÃQTP×÷ΪUI²âÊԵŤ¾ß£¬ÄÇô¾Í²»ÄÜÁô³öһЩʱ¼äÈöÔSeleniumºÜÓÐÐËȤµÄͬÊÂÈ¥Ñо¿Ò»ÏÂSeleniumô£¿¼ÙÈçÓг¯Ò»ÈÕÐèÒªÕâôһÖÖ¹¤¾ß»ò¿ò¼ÜµÄÖ§³Ö£¬Ë­Äܵ£µ±´ËÈÎÄØ£¿

    Ø ²âÊÔ²¿ÃŵÄÅàѵ»úÖƲ»½¡È«£¬Å¼¶ûÓÐÅàѵµÄ»ú»á£¬±ã½øÐдó¹æÄ£µÄ¡°ÍƹãÅàѵ¡±£¬Ã»ÓÐÌṩÓÐЧµÄ¼¼ÊõÉîÈë̽ÌÖºÍѧϰµÄ»ú»á£¬ÀýÈç²Î¼Ó²âÊÔɳÁú¡¢¾Ù°ì¼¼Êõ½»Á÷»áÒ飬»òÕߴ֪ʶ¹²ÏíÌåϵ£¬½öÓеÄÒ»¸öWikiµ½Èç½ñÎÒÒ²²»ÖªµÀ×Ô¼ºµÄÓû§ÃûºÍÃÜÂëÊÇɶ¡£¸ºÔðÅàѵµÄÈ˺ÃÏñÖ»ÊÇΪÁË»¨ÍêÕâ±ÊÅàѵԤËã¶ø½øÐÐÅàѵ£¬¸ù±¾²»ÔÚºõ´ó¼ÒÕûÌåµÄ֪ʶ²ã´ÎÊÇÔõÑùµÄ£¬Ò²¾Í²»È¥×ÐϸµÄµ÷²é·ÖÎö¡£Èç¹û²»·ÖÎö¾ÍÌṩ¼¸ÃÅ¿´ËÆ»ªÀöµ«ÊǺÁÎÞÓô¦µÄ¿Î³ÌÈôó¼Ò×Ô¼ºÈ¥Ñ¡£¬»¹ÒªÕâ¸ö¸ºÔðÈËÓÐʲôÓÃÄØ£¿

    Õâ Ñù¿´À´£¬Ëæ×ÅÎÒÃǵġ°×Ê¡±±äµÃÔ½À´Ô½ÉÎÒÃǵÄ×ÛºÏÄÜÁ¦ºÃÏñ²¢Ã»Óеõ½ÖʵÄÌáÉý£¬ËùνµÄ×ÊÉî²âÊÔ¹¤³Ìʦ£¬ºÃÏñ³ýÁËÒµÎñ֪ʶ²¢Ã»ÓÐʲôÓÅÊÆÁË¡£Ïà·´³õ¼¶²âÊÔ ¹¤³Ìʦ¿´ÆðÀ´Ôò¸üÓÐѧϰµÄÓûÍû£¬¸üÈÝÒ×¹ÜÀí¡£ÈË˵ְҵ·¢Õ¹Òª¾­Àú£ºÓг徢ÆÚ¡¢Æ£±¹ÂéľÆÚ£¬Ö®ºóÔٻص½Óиɾ¢µÄ״̬£¬ÕâÖÖÀíÂÛÔÚÎÒÃÇÕâ»ù±¾ÊôÓÚ³¶µ­£¬ÒòΪÎÒ ÃǵIJâÊÔÈËÔ±¿´ÆðÀ´Ö»ÒªÒ»µ©Æ£±¹¾Í±Ø¶¨»á´ÇÖ°¡­¡­»Ö¸´Óиɾ¢µÄ״̬ÄÇÊÇÔڱ𴦵ÄÊÂÇéÁË£¬ÎÒÃÇÕâÊÇ¿´²»×ÅÁË°É¡£

    ¹¤×÷ЧÂÊÓë·½·¨

    ±¾ À´²»Ïë˵Õâµµ×ÓÊÂÇéµÄ£¬ÏÔµÃ×Ô¼ºÃ»ÆøÁ¿£¬²»¹ý¼ÈÈ»ÊÇ·ÖÏí£¬ÄǾͰÑϸ½Ú¶¼¸æËß´ó¼Ò£¬ÕâÑù´ó¼ÒÌæ±ÊÕß·ÖÎöµÄʱºò¾Í²»»á©¹ýϸ½ÚÁË¡­¡­ÎÒÒ²³ÐÈÏ×Ô¼ºÐÄÐصÄÈ·²»¹» ¿í¹ã£¬Òª²»È»Ò²²»»áµ°ÌÛÓÚÎÒËù¿´µ½µÄÖÖÖÖÇé¿öÁË¡£´ó²¿·Ö¹«Ë¾¶¼Óиö¡°ÓÅÐãÔ±¹¤¡±µÄ±íÕõİɣ¬ÎÒÃǹ«Ë¾Ò²ÓС£ÆäʵÔÚ±ÊÕßÐÄÄ¿ÖУ¬Õâ¸ö³ÆºÅºÜֵǮ£¬×Ô¼º²»¸ÒÇá Ò×È¥ÏëµÄ£¬ÓÈÆäÊÇÎÒ¸ÕÈë˾µÚ¶þÄê¼ûµ½ÎÒÒ»¸öºÜÇ¿µÄʦÐÖ»ñµÃÕâ¸öÊâÈÙÖ®ºó¡£ÕâλʦÐÖÊÇÔËάÈËÔ±£¬ËûΪÎÒÃǹ«Ë¾¿ª·¢ÁËÔËÓª¼à¿Øƽ̨£¬¸Ä±äÁËÓ¦ÓÃϵͳÿÍíÒªÈËÖµ ÊصÄÑ­Àý¡£ÔÚÎÒ¿´À´£¬ËûµÄJAVA±àÂëÇ¿¹ýÒ»°ãµÄ¿ª·¢²¿ÃŵıàÂëÈËÔ±£»Êý¾Ý¿âÓëÒ»°ãDBAˮƽÏ൱ÉõÖÁ¸ü¸ßһЩ£»¶ÔÖмä¼þµÄÊìÖª³Ì¶È¸ÏµÃÉÏÁ˴󲿷ֻù´¡¼Ü¹¹×¨ÒµÖмä¼þ¹ÜÀíÈËÔ±¡£ÔÚµÃÖªÕâôһλţÈË´æÔÚÖ®ºó£¬ÎÒ¾ÍÒ»Ö±²»Í£µÄÏòËûÇë½ÌºÍѧϰ£¬¶øÇÒËûÒ²ºÜÄÍÐÄ£¬ËùÒÔÎÒ¾õµÃËû±»³ÆΪ¡°ÓÅÐãÔ±¹¤¡±ÊDZØÐëµÄ£¬¶øÇÒ±ðµÄ¡°ÓÅÐãÔ±¹¤¡±Ò²Ó¦¸ÃÈç´Ë¡£

    µ«ÊǽñÄêµÄ¹«¸æÈ´ÈÃÎҸıäÁËһЩ¿´·¨£¬ÎÒÃDzâÊÔ²¿ÃŵÄһλͬʾ¹È»Ò²»ñµÃÁËÕâ¸öÊâÈÙ£¬²»¹ýÕâλͬʲ¢²»ÊÇÎÒÏëÏóÖеÄÄÇôÓÅÐã¡£´ÖÂÔ¹ÀË㣬Ëû¸ºÔðµÄ¹Ø¼üϵͳȫÄê·¢²¼ÁËÔ¼20¸ö°æ±¾×óÓÒ£¬¼¸ºõÿ¸ö°æ±¾µÄ·¢²¼Ç°Ò»ÌìËû¶¼¼Ó°àµ½ÉîÒ¹£¬¶øÇÒ»ù±¾¶¼ÊǺͿª·¢¡¢²¿Êð¡¢Öмä¼þ¡¢DBAÒ» Æð¶¨Î»´¦ÀíһЩÎÊÌâ¡£µ«ÊÇ£¬¼¸ºõÿһ´Î¶¼±»Ö¤Ã÷ÊDzâÊÔ»·¾³Êý¾Ý»òÕßÅäÖÃÎÊÌ⣬ËäÈ»¿ª·¢²»Í£µÄ±§Ô¹ÎªºÎ²»Ôçµã·¢ÏÖÎÊÌâ»òÕßΪɶ×ÜÊÇ»·¾³ÓÐÎÊÌ⣬µ«ÊÇËûÃÇ»¹ÊÇ µÃÅã׎â¾öÎÊÌ⡣ÿ¸öÔµļӰà¼Ç¼±íÖÐ×Ü»áÓм¸±ÊËûµÄ¼Ç¼£¬¶øÇÒ»ù±¾¶¼ÊÇÔÚÁÙ½ü°æ±¾·¢²¼µÄʱºò£¬¶øµ¥¾Í¼Ó°àÕâÒ»¼þÊÂÇéÀ´Ëµ£¬¿ÉÄÜÁìµ¼¿´µ½µÄÊÇËûºÜÈÏÕ渺Ôð µÄ¸ú×Ùÿһ¸ö·¢ÏÖµÄÎÊÌâ°É£¬ÄÇôÈç¹û±ðÈ˲»»á°ÑÎÊÌâÁôÔÚ×îºó²Å·¢ÏÖ¾ÍÄò»µ½¡°ÓÅÐãÔ±¹¤¡±µÄ³ÆºÅ£¿ÆäʵÕâÖ»ÊǺÜСµÄÒ»¸öÀý×Ó£¬±ÊÕßËäÈ»ÓеãÏÛĽ¼µ¶ÊºÞ£¬µ«Æä ʵҲֻÊÇÏë½è´Ë±íÃ÷¹¤×÷·½·¨ºÍЧÂÊÊǺÜÖØÒªµÄ£»ÎÒÃÇÔÙ¿´Ò»Ð©ÆäËûµÄºÜÓдú±íÐÔµÄÀý×Ó£º

    Ø ¾­³£ÔÚÅÀÔÚ±ðÈ˹¤Î»ÉÏÒ»ÆðÌÖÂÛÎÊÌâµÄʱºò·¢ÏÖÓÐЩÈ˵ÄÓÊÏäÀï×ÜÓм¸°ÙÉÏǧ·âµÄδ¶ÁÓʼþ£¬ÇëÎÊÄúÄܱ£Ö¤ÕâÆäÖÐûÓм±ÐèÄúÀ´ÅäºÏ´¦ÀíµÄÊÂÇéô£¿

    Ø ¾­³£ÓÐÈËÀ´ÎÊÎÒ£ºÉÏ´ÎÄã˵ÄÇXXXÊÇÔõô»ØÊÂÀ´×Å£¬ÎҼDz»µÃÁË£¬Îһشð˵×Ô¼ºÕÒÓʼþߣ¬ÎÒ¶¼ÕûÀíÁË×ܽáÎĵµ·¢¸ø´ó¼ÒÁË°¡£»´ðÔ»£ºÓÊÏäÌ«ÂÒ£¬ÕÒ²»µ½¡­¡­°ÝÍУ¬OutlookÊÇ¿ÉÒÔÉèÖùæÔòµÄºÃ²»£¿

    Ø ¾­³£ÓÐÈËΪÁË×Ô¶¯»¯²âÊÔµÄÖ¸±ê´ï³ÉÇé¿öÕÒÎÒÀ´×öÊý¾Ý²É¼¯£¬Æäʵ¾ÍÊǵ½QCÊý¾Ý¿âÀïÃæ²éһЩÊý¾Ý¶øÒÑ£¬ÎҾͺÜÄÉÃÆΪʲô´ó¼Ò²»Äܱ£´æÒ»ÏÂÎÒ·¢¸øÄãÃǵÄÊý¾Ý²É¼¯½Å±¾ÄØ£¿

    Ø ¾­³£²à¶úÌýµ½ÓÐÈËÔÚºÍUATÈËÔ±¹µÍ¨Ê±Ëµ£ºµÈһϣ¬ÎÒ°ïÄãÕÒһϲâÊÔ»·¾³µÄµØÖ·¡­¡­°¥£¬ÕâЩµØÖ·Ì«¶àÁË£¬ÔÙµÈÒ»»á¹þ¡­¡­ÎÒ¾ÍûÃ÷°×£¬ÎªÊ²Ã´²»ÄÜÔÚIEÉÏÉèÖÃÁ´½Ó·ÖÀàÀ´¿ì½Ý´ò¿ªÄØ£¬ÄѵÀÕâЩ¹¤×÷Ö»×öÒ»´Î£¬Ï´ÎÎÞÐèÔÙ½øÐÐÁËô£¿

    Ø ¾­³£¼ûµ½ÎªÖ¥Âé´óµãСÊÂ×éÖ¯¶à·½»áÒ飬µ«ÊÇ»áÒéºÜ¿ì¾Í½øÈëÁË´ó¼Ò¸÷×Ô·¢ÀÎɧµÄÒé³Ì£¬Ã»ÓнáÂÛ£¬È»ºó»ØÈ¥¼ÌÐøÓʼþ¹µÍ¨£¬N¸öÈËÓÃN*N·âÓʼþÀ´½â¾öÒ»¼þÊÂÇ飬Õâ¡­¡­ÖµµÃô£¿

    Ø ¾­³£¡­¡­

    ¹¤ ×÷ѹÁ¦´óû´í£¬µ«ÊÇÎÒÃǺܶàͬÊÂÈ´ºöÂÔÁËÔì³ÉÎÒÃǹ¤×÷ѹÁ¦´óµÄÒ»·½ÃæÔ­ÒòÊÇÎÒÃÇ×ÔÉíµÄ¹¤×÷ЧÂÊÊǿɸÄÉƵġ£Èç¹ûÔÚÈÕ³£¹¤×÷ÖÐ×¢ÖØһЩϸ½ÚµÄЧÂÊÌáÉýºÍ·½·¨ µÄ¸Ä½ø£¬ÄÇôÎÒÃǵľ³Óö»òÐí²»»áÏñÄ¿Ç°Õâô±¯²ÒÁË¡£ÒòΪÁìµ¼Ö»Òª²»ÊÇ°®ÐÄ·ºÀÄ»òÕßÊǸö±¿µ°£¬ËûÃǶ¼ÄÜ¿´µÃµ½´ó¼Ò¹¤×÷Á¿ÉϵIJî±ð£¬ËûÃDz»»áÒ»Ö±ÈÏΪÏàͬ¹¤×÷ Á¿µÄÇé¿öÏÂÄãµÄ¼Ó°àÊǶîÍâµÄ¸¶³ö£¬Ê±¼ä³¤ÁËËûÃÇ»áÈÏΪÄãÎÞÂÛ×öÈκÎÊÂÇ鶼ÐèÒª¼Ó°à£¬ÄÇÊÇÒòΪÄã×öÊÂÇéϲ»¶ÍÏí³£¬Ô­±¾¾Í²»ÖµµÃͬÇ飡

    Õâ µã¶Ô×ÊÀú½ÏÀϵÄͬÊÂÀ´ËµÏԵøü¼ÓÖØÒª£¬ÒòΪ³¤ÆڵŤ×÷ºÜÈÝÒ×ÈÃÈËÐγÉÏ°¹ßºÍ˼ά¶¨ÊÆ£¬´¦ÀíÎÊÌâµÄÊÖ·¨Ç§ÆªÒ»ÂÉ¡¢ºÁÎÞÐÂÒ⣬¶øÇÒ¶ÔÓÚ¹¤×÷ʱ¼ä½Ï³¤µÄͬÊÂÀ´ ˵£¬¸Ä±äÕâÖÖÏ°¹ßËùÐèÒª¸¶³öµÄ´ú¼Û»á±È¸Õ±ÏÒµµÄÐÂÔ±¹¤´óºÜ¶à¡£¾ÍÏñÖÐѧʱ×ö¼¸ºÎÖ¤Ã÷Ì⣬һµÀºÏÀíµÄ¸¨ÖúÏß±ÈÒ»µÀÒ»°ãµÄ¸¨ÖúÏ߶ÔÕâµÀÌâÄ¿À´Ëµ×÷ÓÃÊDz»Ò»Ñù µÄ¡£ËäÈ»·½·¨¶¼ÊǶԵģ¬µ«ÊǺÏÀíµÄ¡°Í¶»úÈ¡ÇÉ¡±ÈÃÎÒÃÇÄܹ»Ê¡³ö¸ü¶àµÄʱ¼äÀ´´¦ÀíÆäËûµÄÎÊÌâ¡£ÎÒÃÇÏÖÔÚµÄÇé¿öÊÇ£¬ÖÁÉ϶øÏ£¬´ÓûÓÐÈËÈ¥¹Ø×¢ÕâЩϸ½Ú£¬Ò²²»»á ´ÓÀíÂÛÉÏÈ¥ÍÆËãÕâ¶ÔÎÒÃǵŤ×÷ÓÐʲôӰÏì¡£Ö»ÊÇһζ¹Ä´µ×Ô¼ºµÄ¹ÜÀí¼¼Êõ¶àôǿ´ó£¬ÒªÇóÔ±¹¤°´ÕÕ×Ô¼º¶¨ÖƵĹ淶ÓëÁ÷³ÌÈ¥¹¤×÷ÊǺÁÎÞÒâÒåµÄ£¬¹ÜÀíÕßÖ»ÓÐͨ¹ýÖ¸ µ¼»òÕß×éÖ¯½»Á÷µÈÐÐΪÀ´Ó°Ïì»òÕ߸ı䲿ÊôµÄÐÐΪ£¬´Ó¶ø´ïµ½ÌáÉý¹¤×÷ЧÂʵÄЧ¹û²ÅÊÇÍõµÀ¡£ÄÇôÎÒÃÇÊÇ·ñ¶¼Äܹ»°Ñ×Ô¼ºµÄ¹ÜÀí¹¤×÷×öºÃÄØ£¬±ÊÕßÕâÀïðËÀÀ´ÅúÅÐÒ» ÏÂÎÒÃǵÄÓÐЩÖ÷¹ÜºÍ×¼Ö÷¹ÜµÄÐÐΪ°É¡£

    ×ö¹ÜÀíÄã³Æְô

    ¶ÔÓÚ´óÁìµ¼À´Ëµ£¬×¾çµÄÐÐΪÊÇϲ»¶¡°¸ãÔ˶¯¡±£¬µ«ÊÇÓÖÊÕ²»µ½Ô¤ÆÚµÄЧ¹û¡£ÔÚ·ÖÎöÔ­ÒòµÄʱºòÎÒÃǻᷢÏÖ£¬BOSSµÄÏ뷨û´í£¬Ð¡µÜÃÇ°´Õյõ½µÄָʾȥ²Ù×÷Ҳû´í£¬ÄÇô´íÔÚÄÄÀïÄØ£¿»ù²ãÖ÷¹Ü£¡¶ÔÓÚÎÒÃDzâÊÔÀ´Ëµ£¬·¢Õ¹×Ô¶¯»¯²âÊÔÊÇûÓÐʲôÕùÒéµÄÊÂÇ飬Ìá¸ß²âÊÔ·ÖÎö¡¢Éè¼ÆÄÜÁ¦ÒÔ´ïµ½¸üºÃµÄ²âÊÔЧ¹ûÒ²ÊÇûÓÐÕùÒéµÄÊÂÇé¡£±ÊÕß¾ÍÒÔ´ËÁ½¸öÀý×ÓÀ´·ÖÎöһϣ¬ÎÒÃǵÄÔ˶¯ÎªÊ²Ã´Ã»ÓдﵽԤÆÚµÄЧ¹ûÄØ£¿

    Ê×ÏÈ˵µÚÒ»¸ö£º×Ô¶¯»¯²âÊÔ·¢Õ¹½¨É裬ÎÒÃÇ07Ä꿪ʼ½øÐÐ×Ô¶¯»¯²âÊÔ½¨É裬ÒýÈëQTPÕâÖÖ¹¤¾ß£¬¶øÔÚ´Ë֮ǰ±ÊÕßÒѾ­ÓÐÒ»ÄêµÄQTPʹÓþ­ÑéÁË¡£Ææ¹ÖµÄÊÇ£¬Ã»ÓÐÈκÎÕ÷Õ×£¬Ö¸±êÖ±½ÓÏ´ҪÇó°ëÄêÖ®ÄÚËùÓйؼüϵͳ×Ô¶¯»¯¸²¸ÇÂÊ70%£¬´ó¼ÒÖªµÀÕâÒâζ×Åʲôô£¿100¸öûÓÐʹÓùý×Ô¶¯»¯²âÊÔ¹¤¾ß/QTPµÄ²âÊÔÈËÔ±ÒªÔÚ°ëÄêÄÚÍê³É´óÔ¼10000¸ö×Ô¶¯»¯²âÊԽű¾µÄ±àд¡£ÐëÖªÎÒÃǵ±Ê±Ã¿°ë¸öÔ¾ÍÓÐÒ»¸ö°æ±¾Òª·¢²¼µ½Éú²ú£¬ÓÐЩϵͳƵÂÊ¿ÉÄÜ»á¸ü¸ß£¬Ã¿ÌìÄܼ·³ö°ëСʱʱ¼ä¾ÍÒѾ­Ï൱²»ÈÝÒ×ÁË£¬ºÎÀ´¾«Á¦È¥×öÕâЩѹ¸ù¾ÍºÁÎÞ¸ù»ùµÄÊÂÇéÄØ¡£ºóÀ´²ÅµÃÖªÊÇһȺ²âÊÔ·Ö×é¾­Àí×øÔÚÒ»Æð¡°Ñо¿¡±ÁËÒ»°Ñ£¬¾õµÃQTP¼ÖÆÆðÀ´ºÜ¿ì£¬Ã¿ÈËÿÌì¸ã¼¸Ê®¸öÓ¦¸Ã²»³ÉÎÊÌâ¡­¡­ÎÒÀÕ¸öȥŶ£¡ËηåËÎÀÏʦÓÐƪÎÄÕÂ˵¡°ÁùÅÄ¡±ËµµÃºÜºÃ£¬¶øÇÒÎÒ¾õµÃ˵µÃ¾ÍÊǵ±Ê±ÕâÖÖ³¡¾°£¬²»¹ýÕâÊÇÓÉһȺ»ù²ãÖ÷¹ÜÌæÁìµ¼ÅÄÐظ¬£¬ÎªÏÂÊôÅÄÄÔ´ü£¡½á¹ûÎÒ²»Ëµ´ó¼ÒÒ²Äܲµõ½£¬ÎÒÃÇ´ï³ÉÁËÖ¸±ê£¬¸ü¾«²ÊµÄÊÇ£¬ÔÚ½ÓÏÂÀ´Á½ÄêÀïÃ棬ÎÒÃǵÄQTP½Å±¾±»·ÏÆú¡¢ÖØпª·¢ÔÙ·ÏÆúÔÙÖØпª·¢ºÃ¼¸´Î£¡ÄÃÖÜÁ¢²¨µÄ»°À´Ëµ£º°¡¡ª¡ªË¬»¬µ½µ×£¡

    Õâ¸öÀý×Ó˵Ã÷ÁËʲô£¿×öIT¹ÜÀíÊ×Ïȵö®¼¼Êõ£¬²»Á˽âϸ½ÚºÍÉîÈëµÄÎÊÌâ¾Í²»ÒªÇáÒ×ÅÄÄÔ´ü£¬Òª×Ðϸµ÷ÑзÖÎö£¬Õ÷Çó¶à·½Òâ¼û£¬¹Û²ìÐÐÒµ¶¯Ì¬µÈµÈ£¬×ÜÖ®ÒªÏÈ×ö×ãÁ˹¦¿Î¡£·ñÔòµÄ»°£¬¸úÄúÕâÒ»±È£¬¡°¾Æ¼Ý¡±°¡¡¢³¬ËÙ°¡ÉñÂíµÄѹ¸ù¶¼²»Ëã¸öÊ£¬È˼ÒÄǺ¦²»Á˼¸¸öÈË£¬ÄúÕ⺦Á˺ܶàÈË¡ª¡ª¼¸ºõ¾ÍÊÇ°ë±²×Ó£¡

    ÔÙÒ»¸ö¾ÍÊÇÎÒ±¾ÈËÒý·¢µÄ£¨ÖÁÉÙÎÒ×Ô¼ºÒ»ÏáÇéÔ¸µÄÈÏΪºÍÎÒÓйذɣ©Ñª°¸£¬ÏµÍ³¹¦ÄܵãºÍ²âÊÔ·ÖÖ§µÄÕûÀí£¬²»ÖªÖîλÌý˵¹ýûÓУ¬ÊÂÇéµÄ·¢Õ¹»¹ÊÇÔ¶Ô¶³¬³öÁËÎÒµÄÔ¤Æڵġ£08Äê9Ô ÎÒÔÚÎ÷°²ÐÝÄê¼Ù£¬Áìµ¼¾Í×î½üµÄ¼¸¸ö²âÊÔÒÅ©ÎÊÌâ×Éѯ¿ª·¢ºÍһЩ²âÊÔͬÊ£¬¿´ÓÐûÓÐʲôºÃµÄ°ì·¨Äܹ»¹æ±ÜÕâÖÖÎÊÌâµÄ²úÉú¡£ÐݼÙÂ¹ÇÍ·Ñ÷Ñ÷£¬¾ÍÑóÑóÈ÷È÷дÁË ¼¸°Ù×Ö»ØÈ¥£¬Ö÷ÒªÒâ˼¾ÍÊÇÒª°Ñ²âÊÔ·ÖÎö×öµ½Î»£¬°Ñ²âÊÔ²¿ÃŵÄÖ°ÄÜϸ»¯£¬²»ÄÜÓÉÒ»¸öÈË´ÓÍ·µ½½ÅµÄÈ¥ÕÕ¹ËÒ»¸öϵͳµÄÐèÇ󡣿ÉÄÜÁìµ¼¾õµÃÕâÖÖ˵·¨Í¦ÓеÀÀí£¬ºóÀ´ ÓÖÈ¥×ÉѯÁËһЩש¼Ò½ÐÊÞ°É£¬×îÖÕÔÚ09Äê³õ°ÑÕâ¸öÏë·¨»ã±¨¸øÁËÐÂÈβ¿Ãž­Àí¡£ÔÚ²ã²ã¾ö¶ÏÖ®ºó£¬ÓÉÎÒÃǹ«Ë¾µÄ×ÜÖúÅÄ°å˵£¬ºÃ£¬Õâ¼þÊÂÇéÊÇÓÐÒâÒåµÄ£¬ÄãÃÇ×ö°É£¬¸ø¸öÃ÷È·µÄ¼Æ»®£¬²¢ÇÒ°ÑÕâÏ×÷ÁÐÈëKPIÖ®Ò»£¬ÓÃÓÚ¿¼ºË²âÊÔÈËÔ±µÄ¹¤×÷³É¹û£¬Õâ¼þÊÂÇéÓÉXXX¸ºÔðͳ³ï°É¡£È»ºóXXX×鳤´´ÔìÐԵذÑÕâ¸öÊ®·Ö³éÏóµÄ¹¤×÷ʵÀý»¯ÁË£¬¾­¹ý¼¸´ÎPKδ¹ûÖ®ºó£¬ÎÒ·ÅÆúÁË·´¿¹£¬ÑÛÕöÕöµÄ¿´×ÅÕâÏîÔ˶¯Èç»ðÈçݱµÄÕ¹¿ªÁË¡£Õâλ¸ºÔðÈËÈçºÎʵÀý»¯ÕâÏ×÷µÄÄØ£¿ËýÒªÇóËùÓвâÊÔ·Ö×飬°Ñ´úÂëµÄ·ÖÖ§ÂÞÁгöÀ´£¬·ÖÅäµ½²»Í¬µÄ¹¦ÄܵãÏ£¬¼Ç¼ÔÚQCÖУ¬½øÐÐÏêϸµÄ˵Ã÷£»ºóÐø×öÁ˺ܶàµÄQC¶þ´Î¿ª·¢£¬×öµÄÒ³ÃæÂß¼­¿ØÖÆÈÃÈËÒ»¿ªÊ¼×ö²âÊÔÐèÇó¼Èë±ãÓÐÒªËÀµÄ¸Ð¾õ¡£ÒªÖªµÀÎÒ¸ºÔðµÄÊǸöÖÐÐÍϵͳ£¬ËüµÄpackage´úÂë¾ÍÓм¸Ê®ÍòÐУ¬²ôÔÓ×ÅJAVAÎÞ ±ÈÇ¿´óµÄÒ³Ãæ¡¢×é¼þ¸´Óã¬ÀåÇå·Ö̸֧ºÎÈÝÒ×ÄØ¡£°´ÕÕ¹ßÀý£¬ÔÚ¼¸¸öÔÂÖ®ÄÚÍê³É£¬ÎÒÃǶ¼Íê³ÉÁË£¬ÖÁÓÚºóÃæËù»¨·ÑµÄʱ¼äÕæµÄºÜÈÃÈËÐÄÌÛ£¬ÓÈÆäÊÇÕâ¼þÊÂÇé±¾ÉíΪºó ÐøµÄ²âÊÔÐèÇó·ÖÎö¡¢Â¼È빤×÷´øÀ´Á˺ܴóµÄ²»±ã¡£ÄÇôÆðµ½Ê²Ã´Ð§¹ûÁËÄØ£¿ÎÒ»¹Õæ²»Çå³þ£¬Ò²Ã»ÓÐÈ˸ÒÔÚÄê¶È±¨¸æÉÏÌáÕâÏ×÷µÄÁ¿»¯³É¹û£¬Ö»ÊÇ»áÌáµ½ÎÒÃǵŦÄÜ µã¡¢·ÖÖ§µÄ»Ø¹é²âÊÔ¸²¸ÇÂÊ´ïµ½Á˶àÉÙ£¬ÖÁÓÚ¹¦Äܵ㡢·ÖÖ§·ÖÎöµÄÈ«²»È«¾ÍÎÞÈËÎʽòÁË¡£ÎÒ²»ÖªµÀÕâ¸öÊÂÇéÔðÈε½µ×ÊDz»ÊÇÔÚÎÒ£¬ÈôÕæµÄÈçÎÒ×Ô×÷¶àÇéËù²ÂÏëµÄÒ» Ñù£¬ÊÇÒòΪÎÒµÄÑÔÂÛÓÕ·¢ÁËÕâ¼þÊÂÇéµÄ»°£¬ÎÒÕæµÄ»áÓÐÏ뿳µô×Ô¼ºÖ¸Í·µÄ³å¶¯£»Èô²»ÊÇÄØ£¬ÄÇÎÒ¿ÉÒÔ̹ȻһЩ£¬ÖÁÉÙÃæ¶ÔͬÊÂÃǵÄʱºò²»»áΪ´Ë¶øÐ߷ߣ¬¶ø¼´±ãÊÇÕâ Ñù£¬ÎÒÒ²»¹ÊÇΪ×Ô¼ºÃ»ÓÂÆøÔ½¼¶ËßÇóŤתÕâÏ×÷µÄ·½Ïò¶ø²ÑÀ¢¡£

    Õâ¼þÊÂÇé×ÔÉ϶øÏ¿´ÆðÀ´¶¼ºÏÇéºÏÀí£¬ÎÊÌâ¾Í³öÔÚÖ´ÐÐÉÏ£¬¿ÉÄÜËùÓÐÈ˵ijõÖÔ¶¼ÊÇÒ»ÑùµÄ£ºÄǾÍÊǸÄÉÆϵͳ²âÊÔµÄÖÊÁ¿£¬½µµÍÉú²úȱÏÝÁ¿¡£µ«ÊÇÔÚÖ´ÐеÄʱºò£¬Õâλ¸ºÔðÈ˲¢Ã»ÓÐÈ¥·ÖÎöÕâ¼þÊÂÇé±¾ÉíËù´øÀ´µÄ¸ºÃæЧӦ£¬Ò²Ã»ÓÐÕæÕýÀí½âÎÊÌâÌá³öÕßµÄÒâ˼£º¼Óǿϵͳ²âÊÔÐèÇó·ÖÎö£¬·Ö½â²âÊÔ¹ý³Ì¡£ËýÒ»ÏáÇéÔ¸µÄÈÏΪ¼ÓÇ¿²âÊÔÐèÇó·ÖÎö¾ÍÊǰѲâÊÔÈËÔ±¶ÔÐèÇóµÄÀí½â¼Èëµ½QCÖ¸¶¨µÄĿ¼Ï£¬ÒÔÖ¤Ã÷²âÊÔÈËÔ±¶ÔÕâ¸öÐèÇóµÄÀí½âÊÇÕýÈ·µÄ£»°Ñ²âÊÔÐèÇó·ÖÎöºÍ²âÊÔÓÃÀý·Ö¿ª¹ÜÀí¾Í¿ÉÒÔ´ïµ½²âÊÔ¹ý³Ì·Ö½âµÄЧ¹û¡£Ë­ÖªµÀ¶ÔÐèÇóÀí½âÕýÈ·¾ÍÒ»¶¨»áûÓÐÎÊÌâ³öÏÖÄØ£¿¹ØÁªÓ°ÏìºÍÉîÂñÔÚÓ¦ÓÃϵͳÖеÄÀúÊ·ÒÅÁôȱÏÝÈçºÎ·ÖÎö³öÀ´ÄØ£¿ÆäʵÕâ¼þÊÂÇé×öÓë²»×ö¶¼ÄÜ´ïµ½¶Ôй¦ÄܲâÊ﵀ ÖÊÁ¿±£Ö¤£¬Áìµ¼µÄºËÐÄÐèÇóÊÇÄܹ»½«Í¨³£¿´²»µ½µÄÒþ»¼ÓÃÒ»ÖÖ»úÖÆÀ´°ÑËüÍÚ³öÀ´£¬ÏÔÈ»Õâ¼þÊÂÇéËãÊÇʧ°ÜÁ˵ģ¬ÖÁÉÙÎÒÈÏΪÊǸöʧ°Ü¡£ÎÞÂÛÄãÊÇ·ñÊôÓÚ¹ÜÀí²ã£¬ÔÚ×ö ¹ÜÀí¡¢¾ö¶ÏµÄʱºòËùÐèÒª¾ß±¸µÄËØÖÊ»¹ÊǺܶàµÄ£¬±ÊÕß²»¿ÉÄÜÃæÃæ¾ãµ½µÄÃèÊö¡£ÕâÀïµÄÁ½¸ö¡°Ô˶¯¡±±íÃ÷£¬Èç¹ûÁ¬»ù´¡µÄһЩËØÖʶ¼Ã»Óо߱¸µÄ»°£¬×ö¹ÜÀí¹¤×÷»á½« һȺÈËÒýÏò³É¹¦Ö®Ä¸ÄÇÀï¡£

    ¿´ÆðÀ´±ÊÕßËƺõÖ»ÓÐʧ°ÜµÄÀý×Ó£¬Ã»ÓÐʲôֵµÃ·ÖÏíµÄÁË£¿²»Êǵģ¬ÔÚ09Äêµ×µÄÓÖÒ»´Î×Ô¶¯»¯Ô˶¯ÖУ¬±ÊÕßµÄÖ÷¹ÜÕ÷Çó×éÔ±ÃǵÄÒâ¼û£¬×îÖÕÒÔÖÊÁ¿³Ðŵ»»È¡Á˵ÍÓÚ²¿ÃÅ10%µÄ ×Ô¶¯»¯¸²¸ÇÂÊÖ¸±ê¡£ÊÂʵ֤Ã÷£¬ÕâÊÇÕâÁ½ÄêÀ´×îÈñÊÕß¿ªÐĵÄÊÂÇéÁË£¬ÒòΪÔÚËæºóÒ»Äê¶àµÄÿÈջعéÀïÃ棬ÎÒÃÇ×éµÄ½Å±¾Í¨¹ýÂÊƽ¾ù¸ß³öƽ¾ùˮƽºÜ¶à£¬ÎȾӲ¿ÃÅµÚ Ò»£¬¶ø²âÊÔȱÏÝ·¢ÏֺͶԻعé²âÊԵİïÖúÒ²ÊÇÓÐÄ¿¹²¶ÃµÄ¡£ÓÉ´Ëһʣ¬±ÊÕß×ܽá³öÒ»µã¾­Ñ飺²âÊÔÖ÷¹ÜÒ»¶¨Òª¶®µÃ¾Ü¾ø²»ÇÐʵ¼ÊµÄÏë·¨¡¢¾Ü¾ø²»¿Í¹ÛÐÐΪºÍ³¬³öÏÂÊô ÄÜÁ¦·¶Î§µÄ¹¤×÷¡£

    ÎÒÃÇûÓÐÀíÓÉÈ¥ÖÊÒÉÁìµ¼ÃǵijõÖÔ£¬Ã»ÓÐÄĸöÁìµ¼ÎÞÖªµ½Ö»»áÓÃÃæ×Ó¹¤³ÌÀ´×°µã×Ô¼º£¬µ«ÊÇÁìµ¼µÄ˼ÏëÔÚ´«´ïºÍÖ´ÐеĹý³ÌÖÐÊÇ·ñ±»ÕýÈ·Àí½âºÍ·ÖÎöÊǺܹؼüµÄ¡£Èç½ñ£¬±ÊÕß¿´µ½ÎÒÃDz¿ÃÅÔÚ½øÐÐÐÂÒ»ÂÖµÄÔ˶¯£º½Ó¿Ú²âÊÔ×Ô¶¯»¯ºÍËã·¨²âÊÔ×Ô¶¯»¯£¬ÔڴÆðSTAFƽ̨֮ºó£¬ËƺõûÓп´µ½²âÊÔ¿ò¼ÜµÄ´î½¨ºÍ×é¼þµÄ³éÀë±ã¿ªÊ¼ÈÃËùÓвâÊÔÈËԱͶÈëµ½´úÂë±àдµÄºéÁ÷ÖÐÈ¥ÁË¡£²»ÖªÎÒ»ñµÃµÄÐÅÏ¢ºÍÀí½âÊÇ·ñÓÐÎ󣬵«Ô¸ÉÏÌìÓкÃÉúÖ®µÂ£¬±£ÓÓÎÒÃDz»ÔÙΪһ¶ÑÉ¢ÂÒÎÞ×éÖ¯µÄ´úÂëÈ¥Âòµ¥ÁË°Õ¡£



  • LinuxÖÐfind 02: LinuxÎļþ²éÕÒÃüÁîfind,xargsÏêÊö

    2011-06-12 17:17:24

    LinuxÎļþ²éÕÒÃüÁîfind,xargsÏêÊö

    execÖ´ÐÐ:
    $ find . -name lian*.txt -type f -exec ls -l {} \;
    ½á¹û£º
    -rw-rw-r-- 1 work work 13 2010-12-18 10:28 ./Desktop/lianxi.txt

    xargsÖ´ÐУº
    $ find . -name lian*.txt -type f | xargs ls -l  ;
    ½á¹û£º
    -rw-rw-r-- 1 work work 13 2010-12-18 10:28 ./Desktop/lianxi.txt

    ×ܽ᣺zhy2111314
    À´×Ô£ºLinuxSir.Org
    ÕûÀí£º±±ÄÏÄϱ±
    ÕªÒª£º ±¾ÎÄÊÇfind ÃüÁîµÄÏêϸ˵Ã÷£¬¿É¹óµÄÊÇÕë¶Ô²ÎÊý¾ÙÁ˺ܶàµÄʵÀý£¬´óÁ¿µÄÀýÖ¤£¬ÈóõѧÕ߸üΪÈÝÒ×Àí½â£»±¾ÎÄÊÇzhyflyÐÖÌùÔÚÂÛ̳ÖУ»ÎÒ¶Ô±¾ÎĽøÐÐÁËÔÙ´ÎÕûÀí£¬Îª·½±ã´ó¼ÒÔĶÁ£»

    Ŀ¼

    °æȨÉùÃ÷
    Ç°ÑÔ£º¹ØÓÚfindÃüÁî

    Ò»¡¢find ÃüÁî¸ñʽ

    ¶þ¡¢findÃüÁîµÄÀý×Ó£»

    Èý¡¢xargs
    ËÄ¡¢find ÃüÁîµÄ²ÎÊý£»

    Îå¡¢¹ØÓÚ±¾ÎÄ
    Áù¡¢Ïà¹ØÎĵµ


    +++++++++++++++++++++++++++++++++++++++++++++++++
    ÕýÎÄ
    +++++++++++++++++++++++++++++++++++++++++++++++++


    °æȨÉùÃ÷

    ±¾ÎÄÊÇzhyflyÐÖÌùÔÚLinuxSir.Org µÄÒ»¸öÌû×Ó¶øÕûÀí³öÀ´µÄ£¬Èç¹ûÄú¶Ô°æȨÓÐÒÉÎÊ£¬ÇëÔÚ±¾ÌûºóÃæ¸úÌû¡£Ð»Ð»£»±¾ÎĵÄHTML°æ±¾Óɱ±ÄÏÄϱ±ÕûÀí£»ÐÞ¸ÄÁËÕûƪÎĵµµÄÈ«½Ç¼°ËµÃ÷ÎÄ×ÖÖеĵ¥´ÊÖÐÿ¸ö×Öĸ¿Õ¸ñµÄÎÊÌ⣻Ϊ±êÌâ¼ÓÁ˱àºÅ£¬·½±ã´ó¼ÒÔĶÁ£»

    Ç°ÑÔ£º¹ØÓÚfindÃüÁî

    ÓÉÓÚfind¾ßÓÐÇ¿´óµÄ¹¦ÄÜ£¬ËùÒÔËüµÄÑ¡ÏîÒ²ºÜ¶à£¬ÆäÖд󲿷ÖÑ¡ÏֵµÃÎÒÃÇ»¨Ê±¼äÀ´Á˽âһϡ£¼´Ê¹ÏµÍ³Öк¬ÓÐÍøÂçÎļþϵͳ( NFS)£¬findÃüÁîÔÚ¸ÃÎļþϵͳÖÐͬÑùÓÐЧ£¬Ö»Äã¾ßÓÐÏàÓ¦µÄȨÏÞ¡£

    ÔÚÔËÐÐÒ»¸ö·Ç³£ÏûºÄ×ÊÔ´µÄfindÃüÁîʱ£¬ºÜ¶àÈ˶¼ÇãÏòÓÚ°ÑËü·ÅÔÚºǫִ́ÐУ¬ÒòΪ±éÀúÒ»¸ö´óµÄÎļþϵͳ¿ÉÄܻỨ·ÑºÜ³¤µÄʱ¼ä(ÕâÀïÊÇÖ¸30G×Ö½ÚÒÔÉϵÄÎļþϵͳ)¡£


    Ò»¡¢find ÃüÁî¸ñʽ


    1¡¢findÃüÁîµÄÒ»°ãÐÎʽΪ£»

    find pathname -options [-print -exec -ok ...]


    2¡¢findÃüÁîµÄ²ÎÊý£»

    pathname: findÃüÁîËù²éÕÒµÄĿ¼·¾¶¡£ÀýÈçÓÃ.À´±íʾµ±Ç°Ä¿Â¼£¬ÓÃ/À´±íʾϵͳ¸ùĿ¼¡£
    -print£º findÃüÁƥÅäµÄÎļþÊä³öµ½±ê×¼Êä³ö¡£
    -exec£º findÃüÁî¶ÔÆ¥ÅäµÄÎļþÖ´ÐиòÎÊýËù¸ø³öµÄshellÃüÁî¡£ÏàÓ¦ÃüÁîµÄÐÎʽΪ'command' {  } \;£¬×¢Òâ{   }ºÍ\£»Ö®¼äµÄ¿Õ¸ñ¡£
    -ok£º ºÍ-execµÄ×÷ÓÃÏàͬ£¬Ö»²»¹ýÒÔÒ»ÖÖ¸üΪ°²È«µÄģʽÀ´Ö´ÐиòÎÊýËù¸ø³öµÄshellÃüÁÔÚÖ´ÐÐÿһ¸öÃüÁî֮ǰ£¬¶¼»á¸ø³öÌáʾ£¬ÈÃÓû§À´È·¶¨ÊÇ·ñÖ´ÐС£


    3¡¢findÃüÁîÑ¡Ïî

    -name

    °´ÕÕÎļþÃû²éÕÒÎļþ¡£

    -perm
    °´ÕÕÎļþȨÏÞÀ´²éÕÒÎļþ¡£

    -prune
    ʹÓÃÕâһѡÏî¿ÉÒÔʹfindÃüÁî²»ÔÚµ±Ç°Ö¸¶¨µÄĿ¼ÖвéÕÒ£¬Èç¹ûͬʱʹÓÃ-depthÑ¡ÏÄÇô-prune½«±»findÃüÁîºöÂÔ¡£

    -user
    °´ÕÕÎļþÊôÖ÷À´²éÕÒÎļþ¡£

    -group
    °´ÕÕÎļþËùÊôµÄ×éÀ´²éÕÒÎļþ¡£

    -mtime -n +n
    °´ÕÕÎļþµÄ¸ü¸Äʱ¼äÀ´²éÕÒÎļþ£¬ - n±íʾÎļþ¸ü¸Äʱ¼ä¾àÏÖÔÚnÌìÒÔÄÚ£¬+ n±íʾÎļþ¸ü¸Äʱ¼ä¾àÏÖÔÚnÌìÒÔÇ°¡£findÃüÁÓÐ-atimeºÍ-ctime Ñ¡Ïµ«ËüÃǶ¼ºÍ-m timeÑ¡Ïî¡£

    -nogroup
    ²éÕÒÎÞÓÐЧËùÊô×éµÄÎļþ£¬¼´¸ÃÎļþËùÊôµÄ×éÔÚ/etc/groupsÖв»´æÔÚ¡£

    -nouser
    ²éÕÒÎÞÓÐЧÊôÖ÷µÄÎļþ£¬¼´¸ÃÎļþµÄÊôÖ÷ÔÚ/etc/passwdÖв»´æÔÚ¡£
    -newer file1 ! file2

    ²éÕÒ¸ü¸Äʱ¼ä±ÈÎļþfile1е«±ÈÎļþfile2¾ÉµÄÎļþ¡£
    -type

    ²éÕÒijһÀàÐ͵ÄÎļþ£¬ÖîÈ磺

    b - ¿éÉ豸Îļþ¡£
    d - Ŀ¼¡£
    c - ×Ö·ûÉ豸Îļþ¡£
    p - ¹ÜµÀÎļþ¡£
    l - ·ûºÅÁ´½ÓÎļþ¡£
    f - ÆÕͨÎļþ¡£

    -size n£º[c] ²éÕÒÎļþ³¤¶ÈΪn¿éµÄÎļþ£¬´øÓÐcʱ±íʾÎļþ³¤¶ÈÒÔ×ֽڼơ£
    -depth£ºÔÚ²éÕÒÎļþʱ£¬Ê×ÏȲéÕÒµ±Ç°Ä¿Â¼ÖеÄÎļþ£¬È»ºóÔÙÔÚÆä×ÓĿ¼ÖвéÕÒ¡£
    -fstype£º²éÕÒλÓÚijһÀàÐÍÎļþϵͳÖеÄÎļþ£¬ÕâЩÎļþϵͳÀàÐÍͨ³£¿ÉÒÔÔÚÅäÖÃÎļþ/etc/fstabÖÐÕÒµ½£¬¸ÃÅäÖÃÎļþÖаüº¬Á˱¾ÏµÍ³ÖÐÓйØÎļþϵͳµÄÐÅÏ¢¡£

    -mount£ºÔÚ²éÕÒÎļþʱ²»¿çÔ½Îļþϵͳmountµã¡£
    -follow£ºÈç¹ûfindÃüÁîÓöµ½·ûºÅÁ´½ÓÎļþ£¬¾Í¸ú×ÙÖÁÁ´½ÓËùÖ¸ÏòµÄÎļþ¡£
    -cpio£º¶ÔÆ¥ÅäµÄÎļþʹÓÃcpioÃüÁ½«ÕâЩÎļþ±¸·Ýµ½´Å´øÉ豸ÖС£

    ÁíÍâ,ÏÂÃæÈý¸öµÄÇø±ð:

       -amin n
    ¡¡¡¡²éÕÒϵͳÖÐ×îºóN·ÖÖÓ·ÃÎʵÄÎļþ

    ¡¡¡¡-atime n
    ¡¡¡¡²éÕÒϵͳÖÐ×îºón*24Сʱ·ÃÎʵÄÎļþ

    ¡¡¡¡-cmin n
    ¡¡¡¡²éÕÒϵͳÖÐ×îºóN·ÖÖÓ±»¸Ä±äÎļþ״̬µÄÎļþ

    ¡¡¡¡-ctime n
    ¡¡¡¡²éÕÒϵͳÖÐ×îºón*24Сʱ±»¸Ä±äÎļþ״̬µÄÎļþ

       ¡¡-mmin n
    ¡¡¡¡²éÕÒϵͳÖÐ×îºóN·ÖÖÓ±»¸Ä±äÎļþÊý¾ÝµÄÎļþ

    ¡¡¡¡-mtime n
    ¡¡¡¡²éÕÒϵͳÖÐ×îºón*24Сʱ±»¸Ä±äÎļþÊý¾ÝµÄÎļþ


    4¡¢Ê¹ÓÃexec»òokÀ´Ö´ÐÐshellÃüÁî

    ʹÓÃfindʱ£¬Ö»Òª°ÑÏëÒªµÄ²Ù×÷дÔÚÒ»¸öÎļþÀ¾Í¿ÉÒÔÓÃexecÀ´ÅäºÏfind²éÕÒ£¬ºÜ·½±ãµÄ

    ÔÚÓÐЩ²Ù×÷ϵͳÖÐÖ»ÔÊÐí-execÑ¡ÏîÖ´ÐÐÖîÈçl s»òls -lÕâÑùµÄÃüÁî¡£´ó¶àÊýÓû§Ê¹ÓÃÕâһѡÏîÊÇΪÁ˲éÕÒ¾ÉÎļþ²¢É¾³ýËüÃÇ¡£½¨ÒéÔÚÕæÕýÖ´ÐÐrmÃüÁîɾ³ýÎļþ֮ǰ£¬×îºÃÏÈÓÃlsÃüÁһϣ¬È·ÈÏËüÃÇÊÇËùҪɾ³ýµÄÎļþ¡£

    execÑ¡ÏîºóÃæ¸úËæ×ÅËùÒªÖ´ÐеÄÃüÁî»ò½Å±¾£¬È»ºóÊÇÒ»¶Ô¶ù{ }£¬Ò»¸ö¿Õ¸ñºÍÒ»¸ö\£¬×îºóÊÇÒ»¸ö·ÖºÅ¡£ÎªÁËʹÓÃexecÑ¡Ï±ØÐëҪͬʱʹÓÃprintÑ¡Ïî¡£Èç¹ûÑéÖ¤Ò»ÏÂfindÃüÁ»á·¢ÏÖ¸ÃÃüÁîÖ»Êä³ö´Óµ±Ç°Â·¾¶ÆðµÄÏà¶Ô·¾¶¼°ÎļþÃû¡£

    ÀýÈ磺ΪÁËÓÃls -lÃüÁîÁгöËùÆ¥Åäµ½µÄÎļþ£¬¿ÉÒÔ°Ñls -lÃüÁî·ÅÔÚfindÃüÁîµÄ-execÑ¡ÏîÖÐ

    # find . -type f -exec ls -l {  } \;
    -rw-r--r--    1 root     root        34928 2003-02-25  ./conf/httpd.conf
    -rw-r--r--    1 root     root        12959 2003-02-25  ./conf/magic
    -rw-r--r--    1 root     root          180 2003-02-25  ./conf.d/README

    ÉÏÃæµÄÀý×ÓÖУ¬findÃüÁîÆ¥Åäµ½Á˵±Ç°Ä¿Â¼ÏµÄËùÓÐÆÕͨÎļþ£¬²¢ÔÚ-execÑ¡ÏîÖÐʹÓÃls -lÃüÁËüÃÇÁгö¡£
    ÔÚ/logsĿ¼ÖвéÕÒ¸ü¸Äʱ¼äÔÚ5ÈÕÒÔÇ°µÄÎļþ²¢É¾³ýËüÃÇ£º

    $ find logs -type f -mtime +5 -exec rm {  } \;

    ¼Çס£ºÔÚshellÖÐÓÃÈκη½Ê½É¾³ýÎļþ֮ǰ£¬Ó¦µ±ÏȲ鿴ÏàÓ¦µÄÎļþ£¬Ò»¶¨ÒªÐ¡ÐÄ£¡µ±Ê¹ÓÃÖîÈçmv»òrmÃüÁîʱ£¬¿ÉÒÔʹÓÃ-execÑ¡ÏîµÄ°²È«Ä£Ê½¡£Ëü½«ÔÚ¶Ôÿ¸öÆ¥Åäµ½µÄÎļþ½øÐвÙ×÷֮ǰÌáʾÄã¡£

    ÔÚÏÂÃæµÄÀý×ÓÖУ¬ findÃüÁîÔÚµ±Ç°Ä¿Â¼ÖвéÕÒËùÓÐÎļþÃûÒÔ.LOG½áβ¡¢¸ü¸Äʱ¼äÔÚ5ÈÕÒÔÉϵÄÎļþ£¬²¢É¾³ýËüÃÇ£¬Ö»²»¹ýÔÚɾ³ý֮ǰÏȸø³öÌáʾ¡£

    $ find . -name "*.conf"  -mtime +5 -ok rm {  } \;
    < rm ... ./conf/httpd.conf > ? n

    °´y¼üɾ³ýÎļþ£¬°´n¼ü²»É¾³ý¡£

    ÈκÎÐÎʽµÄÃüÁ¿ÉÒÔÔÚ-execÑ¡ÏîÖÐʹÓá£

    ÔÚÏÂÃæµÄÀý×ÓÖÐÎÒÃÇʹÓÃgrepÃüÁî¡£findÃüÁîÊ×ÏÈÆ¥ÅäËùÓÐÎļþÃûΪ¡° passwd*¡±µÄÎļþ£¬ÀýÈçpasswd¡¢passwd.old¡¢passwd.bak£¬È»ºóÖ´ÐÐgrepÃüÁî¿´¿´ÔÚÕâЩÎļþÖÐÊÇ·ñ´æÔÚÒ»¸ösamÓû§¡£

    # find /etc -name "passwd*" -exec grep "sam" {  } \;
    sam:x:501:501::/usr/sam:/bin/bash


    ¶þ¡¢findÃüÁîµÄÀý×Ó£»


    1¡¢²éÕÒµ±Ç°Óû§Ö÷Ŀ¼ÏµÄËùÓÐÎļþ£º

    ÏÂÃæÁ½ÖÖ·½·¨¶¼¿ÉÒÔʹÓÃ

    $ find $HOME -print
    $ find ~ -print


    2¡¢Èõ±Ç°Ä¿Â¼ÖÐÎļþÊôÖ÷¾ßÓжÁ¡¢Ð´È¨ÏÞ£¬²¢ÇÒÎļþËùÊô×éµÄÓû§ºÍÆäËûÓû§¾ßÓжÁȨÏÞµÄÎļþ£»
    $ find . -type f -perm 644 -exec ls -l {  } \;


    3¡¢ÎªÁ˲éÕÒϵͳÖÐËùÓÐÎļþ³¤¶ÈΪ0µÄÆÕͨÎļþ£¬²¢ÁгöËüÃǵÄÍêÕû·¾¶£»

    $ find / -type f -size 0 -exec ls -l {  } \;


    4¡¢²éÕÒ/var/logsĿ¼Öиü¸Äʱ¼äÔÚ7ÈÕÒÔÇ°µÄÆÕͨÎļþ£¬²¢ÔÚɾ³ý֮ǰѯÎÊËüÃÇ£»

    $ find /var/logs -type f -mtime +7 -ok rm {  } \;


    5¡¢ÎªÁ˲éÕÒϵͳÖÐËùÓÐÊôÓÚroot×éµÄÎļþ£»

    $find . -group root -exec ls -l {  } \;
    -rw-r--r--    1 root     root          595 10ÔÂ 31 01:09 ./fie1


    6¡¢findÃüÁɾ³ýµ±Ä¿Â¼ÖзÃÎÊʱ¼äÔÚ7ÈÕÒÔÀ´¡¢º¬ÓÐÊý×Öºó׺µÄadmin.logÎļþ¡£

    ¸ÃÃüÁîÖ»¼ì²éÈýλÊý×Ö£¬ËùÒÔÏàÓ¦ÎļþµÄºó׺²»Òª³¬¹ý999¡£ÏȽ¨¼¸¸öadmin.log*µÄÎļþ £¬²ÅÄÜʹÓÃÏÂÃæÕâ¸öÃüÁî

    $ find . -name "admin.log[0-9][0-9][0-9]" -atime -7  -ok
    rm {  } \;
    < rm ... ./admin.log001 > ? n
    < rm ... ./admin.log002 > ? n
    < rm ... ./admin.log042 > ? n
    < rm ... ./admin.log942 > ? n


    7¡¢ÎªÁ˲éÕÒµ±Ç°ÎļþϵͳÖеÄËùÓÐĿ¼²¢ÅÅÐò£»

    $ find . -type d | sort


    8¡¢ÎªÁ˲éÕÒϵͳÖÐËùÓеÄrmt´Å´øÉ豸£»

    $ find /dev/rmt -print


    Èý¡¢xargs

    xargs - build and execute command lines from standard input

    ÔÚʹÓÃfindÃüÁîµÄ-execÑ¡Ïî´¦ÀíÆ¥Åäµ½µÄÎļþʱ£¬ findÃüÁËùÓÐÆ¥Åäµ½µÄÎļþÒ»Æ𴫵ݸøexecÖ´ÐС£µ«ÓÐЩϵͳ¶ÔÄܹ»´«µÝ¸øexecµÄÃüÁ¶ÈÓÐÏÞÖÆ£¬ÕâÑùÔÚfindÃüÁîÔËÐм¸·ÖÖÓÖ®ºó£¬¾Í»á³öÏÖ Òç³ö´íÎó¡£´íÎóÐÅϢͨ³£ÊÇ¡°²ÎÊýÁÐÌ«³¤¡±»ò¡°²ÎÊýÁÐÒç³ö¡±¡£Õâ¾ÍÊÇxargsÃüÁîµÄÓô¦ËùÔÚ£¬ÌرðÊÇÓëfindÃüÁîÒ»ÆðʹÓá£

    findÃüÁî°ÑÆ¥Åäµ½µÄÎļþ´«µÝ¸øxargsÃüÁ¶øxargsÃüÁîÿ´ÎÖ»»ñÈ¡Ò»²¿·ÖÎļþ¶ø²»ÊÇÈ«²¿£¬²»Ïñ-execÑ¡ÏîÄÇÑù¡£ÕâÑùËü¿ÉÒÔÏÈ´¦Àí×îÏÈ»ñÈ¡µÄÒ»²¿·ÖÎļþ£¬È»ºóÊÇÏÂÒ»Åú£¬²¢Èç´Ë¼ÌÐøÏÂÈ¥¡£

    ÔÚÓÐЩϵͳÖУ¬Ê¹ÓÃ-execÑ¡Ïî»áΪ´¦Àíÿһ¸öÆ¥Åäµ½µÄÎļþ¶ø·¢ÆðÒ»¸öÏàÓ¦µÄ½ø³Ì£¬²¢·Ç½«Æ¥Åäµ½µÄÎļþÈ«²¿×÷Ϊ²ÎÊýÒ»´ÎÖ´ÐУ»ÕâÑùÔÚÓÐЩÇé¿öϾͻá³öÏÖ½ø³Ì¹ý¶à£¬ÏµÍ³ÐÔÄÜϽµµÄÎÊÌ⣬Òò¶øЧÂʲ»¸ß£»

    ¶øʹÓÃxargsÃüÁîÔòÖ»ÓÐÒ»¸ö½ø³Ì¡£ÁíÍ⣬ÔÚʹÓÃxargsÃüÁîʱ£¬¾¿¾¹ÊÇÒ»´Î»ñÈ¡ËùÓеIJÎÊý£¬»¹ÊÇ·ÖÅúÈ¡µÃ²ÎÊý£¬ÒÔ¼°Ã¿Ò»´Î»ñÈ¡²ÎÊýµÄÊýÄ¿¶¼»á¸ù¾Ý¸ÃÃüÁîµÄÑ¡ÏϵͳÄÚºËÖÐÏàÓ¦µÄ¿Éµ÷²ÎÊýÀ´È·¶¨¡£

    À´¿´¿´xargsÃüÁîÊÇÈçºÎͬfindÃüÁîÒ»ÆðʹÓõģ¬²¢¸ø³öһЩÀý×Ó¡£

    ÏÂÃæµÄÀý×Ó²éÕÒϵͳÖеÄÿһ¸öÆÕͨÎļþ£¬È»ºóʹÓÃxargsÃüÁîÀ´²âÊÔËüÃÇ·Ö±ðÊôÓÚÄÄÀàÎļþ

    #find . -type f -print | xargs file
    ./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
    ./.kde/Autostart/.directory:      ISO-8859 text\
    ......

    ÔÚÕû¸öϵͳÖвéÕÒÄÚ´æÐÅϢת´¢Îļþ(core dump) £¬È»ºó°Ñ½á¹û±£´æµ½/tmp/core.log ÎļþÖУº

    $ find / -name "core" -print | xargs echo "" >/tmp/core.log

    ÉÏÃæÕâ¸öÖ´ÐÐÌ«Âý£¬ÎҸijÉÔÚµ±Ç°Ä¿Â¼Ï²éÕÒ

    #find . -name "file*" -print | xargs echo "" > /temp/core.log
    # cat /temp/core.log
    ./file6

    ÔÚµ±Ç°Ä¿Â¼Ï²éÕÒËùÓÐÓû§¾ßÓжÁ¡¢Ð´ºÍÖ´ÐÐȨÏÞµÄÎļþ£¬²¢ÊÕ»ØÏàÓ¦µÄдȨÏÞ£º

    # ls -l
    drwxrwxrwx    2 sam      adm          4096 10ÔÂ 30 20:14 file6
    -rwxrwxrwx    2 sam      adm             0 10ÔÂ 31 01:01 http3.conf
    -rwxrwxrwx    2 sam      adm             0 10ÔÂ 31 01:01 httpd.conf

    # find . -perm -7 -print | xargs chmod o-w
    # ls -l
    drwxrwxr-x    2 sam      adm          4096 10ÔÂ 30 20:14 file6
    -rwxrwxr-x    2 sam      adm             0 10ÔÂ 31 01:01 http3.conf
    -rwxrwxr-x    2 sam      adm             0 10ÔÂ 31 01:01 httpd.conf

    ÓÃgrepÃüÁîÔÚËùÓеÄÆÕͨÎļþÖÐËÑË÷hostnameÕâ¸ö´Ê£º

    # find . -type f -print | xargs grep "hostname"
    ./httpd1.conf:#     different IP addresses or hostnames and have them handled by the
    ./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
    on your

    ÓÃgrepÃüÁîÔÚµ±Ç°Ä¿Â¼ÏµÄËùÓÐÆÕͨÎļþÖÐËÑË÷hostnamesÕâ¸ö´Ê£º

    # find . -name \* -type f -print | xargs grep "hostnames"
    ./httpd1.conf:#     different IP addresses or hostnames and have them handled by the
    ./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
    on your

    ×¢Ò⣬ÔÚÉÏÃæµÄÀý×ÓÖУ¬ \ÓÃÀ´È¡ÏûfindÃüÁîÖеÄ*ÔÚshellÖеÄÌØÊ⺬Òå¡£

    findÃüÁîÅäºÏʹÓÃexecºÍxargs¿ÉÒÔʹÓû§¶ÔËùÆ¥Åäµ½µÄÎļþÖ´Ðм¸ºõËùÓеÄÃüÁî¡£


    ËÄ¡¢find ÃüÁîµÄ²ÎÊý

    ÏÂÃæÊÇfindһЩ³£ÓòÎÊýµÄÀý×Ó£¬ÓÐÓõ½µÄʱºò²é²é¾ÍÐÐÁË£¬ÏñÉÏÃæÇ°¼¸¸öÌù×Ó£¬¶¼Óõ½ÁËÆäÖеĵÄһЩ²ÎÊý£¬Ò²¿ÉÒÔÓÃman»ò²é¿´ÂÛ̳ÀïÆäËüÌù×ÓÓÐfindµÄÃüÁîÊÖ²á


    1¡¢Ê¹ÓÃnameÑ¡Ïî

    ÎļþÃûÑ¡ÏîÊÇfindÃüÁî×î³£ÓõÄÑ¡ÏҪôµ¥¶ÀʹÓøÃÑ¡ÏҪôºÍÆäËûÑ¡ÏîÒ»ÆðʹÓá£

    ¿ÉÒÔʹÓÃijÖÖÎļþÃûģʽÀ´Æ¥ÅäÎļþ£¬¼ÇסҪÓÃÒýºÅ½«ÎļþÃûģʽÒýÆðÀ´¡£

    ²»¹Üµ±Ç°Â·¾¶ÊÇʲô£¬Èç¹ûÏëÒªÔÚ×Ô¼ºµÄ¸ùĿ¼$HOMEÖвéÕÒÎļþÃû·ûºÏ*.txtµÄÎļþ£¬Ê¹ÓÃ~×÷Ϊ 'pathname'²ÎÊý£¬²¨À˺Å~´ú±íÁËÄãµÄ$HOMEĿ¼¡£

    $ find ~ -name "*.txt" -print

    ÏëÒªÔÚµ±Ç°Ä¿Â¼¼°×ÓĿ¼ÖвéÕÒËùÓеġ® *.txt¡¯Îļþ£¬¿ÉÒÔÓãº

    $ find . -name "*.txt" -print

    ÏëÒªµÄµ±Ç°Ä¿Â¼¼°×ÓĿ¼ÖвéÕÒÎļþÃûÒÔÒ»¸ö´óд×Öĸ¿ªÍ·µÄÎļþ£¬¿ÉÒÔÓãº

    $ find . -name "[A-Z]*" -print

    ÏëÒªÔÚ/etcĿ¼ÖвéÕÒÎļþÃûÒÔhost¿ªÍ·µÄÎļþ£¬¿ÉÒÔÓãº

    $ find /etc -name "host*" -print

    ÏëÒª²éÕÒ$HOMEĿ¼ÖеÄÎļþ£¬¿ÉÒÔÓãº

    $ find ~ -name "*" -print »òfind . -print

    ÒªÏëÈÃϵͳ¸ß¸ººÉÔËÐУ¬¾Í´Ó¸ùĿ¼¿ªÊ¼²éÕÒËùÓеÄÎļþ¡£

    $ find / -name "*" -print

    Èç¹ûÏëÔÚµ±Ç°Ä¿Â¼²éÕÒÎļþÃûÒÔÁ½¸öСд×Öĸ¿ªÍ·£¬¸ú×ÅÊÇÁ½¸öÊý×Ö£¬×îºóÊÇ.txtµÄÎļþ£¬ÏÂÃæµÄÃüÁî¾ÍÄܹ»·µ»ØÃûΪax37.txtµÄÎļþ£º

    $find . -name "[a-z][a-z][0--9][0--9].txt" -print


    2¡¢ÓÃpermÑ¡Ïî

    °´ÕÕÎļþȨÏÞģʽÓÃ-permÑ¡Ïî,°´ÎļþȨÏÞģʽÀ´²éÕÒÎļþµÄ»°¡£×îºÃʹÓð˽øÖƵÄȨÏÞ±íʾ·¨¡£

    ÈçÔÚµ±Ç°Ä¿Â¼Ï²éÕÒÎļþȨÏÞλΪ755µÄÎļþ£¬¼´ÎļþÊôÖ÷¿ÉÒÔ¶Á¡¢Ð´¡¢Ö´ÐУ¬ÆäËûÓû§¿ÉÒÔ¶Á¡¢Ö´ÐеÄÎļþ£¬¿ÉÒÔÓãº

    $ find . -perm 755 -print

    »¹ÓÐÒ»ÖÖ±í´ï·½·¨£ºÔڰ˽øÖÆÊý×ÖÇ°ÃæÒª¼ÓÒ»¸öºá¸Ü-£¬±íʾ¶¼Æ¥Å䣬Èç-007¾ÍÏ൱ÓÚ777£¬-006Ï൱ÓÚ666

    # ls -l
    -rwxrwxr-x    2 sam      adm             0 10ÔÂ 31 01:01 http3.conf
    -rw-rw-rw-    1 sam      adm         34890 10ÔÂ 31 00:57 httpd1.conf
    -rwxrwxr-x    2 sam      adm             0 10ÔÂ 31 01:01 httpd.conf
    drw-rw-rw-    2 gem      group        4096 10ÔÂ 26 19:48 sam
    -rw-rw-rw-    1 root     root         2792 10ÔÂ 31 20:19 temp

    # find . -perm 006
    # find . -perm -006
    ./sam
    ./httpd1.conf
    ./temp

    -perm mode:ÎļþÐí¿ÉÕýºÃ·ûºÏmode

    -perm +mode:ÎļþÐí¿É²¿·Ö·ûºÏmode

    -perm -mode: ÎļþÐí¿ÉÍêÈ«·ûºÏmode


    3¡¢ºöÂÔij¸öĿ¼

    Èç¹ûÔÚ²éÕÒÎļþʱϣÍûºöÂÔij¸öĿ¼£¬ÒòΪÄãÖªµÀÄǸöĿ¼ÖÐûÓÐÄãËùÒª²éÕÒµÄÎļþ£¬ÄÇô¿ÉÒÔʹÓÃ-pruneÑ¡ÏîÀ´Ö¸³öÐèÒªºöÂÔµÄĿ¼¡£ÔÚʹÓÃ-pruneÑ¡ÏîʱҪµ±ÐÄ£¬ÒòΪÈç¹ûÄãͬʱʹÓÃÁË-depthÑ¡ÏÄÇô-pruneÑ¡Ïî¾Í»á±»findÃüÁîºöÂÔ¡£

    Èç¹ûÏ£ÍûÔÚ/appsĿ¼Ï²éÕÒÎļþ£¬µ«²»Ï£ÍûÔÚ/apps/binĿ¼Ï²éÕÒ£¬¿ÉÒÔÓãº

    $ find /apps -path "/apps/bin" -prune -o -print


    4¡¢Ê¹ÓÃfind²éÕÒÎļþµÄʱºòÔõô±Ü¿ªÄ³¸öÎļþĿ¼

    ±ÈÈçÒªÔÚ/usr/samĿ¼Ï²éÕÒ²»ÔÚdir1×ÓĿ¼֮ÄÚµÄËùÓÐÎļþ

    find /usr/sam -path "/usr/sam/dir1" -prune -o -print
    find [-path ..] [expression] ÔÚ·¾¶ÁбíµÄºóÃæµÄÊDZí´ïʽ

    -path "/usr/sam" -prune -o -print ÊÇ -path "/usr/sam" -a -prune -o
    -print µÄ¼òд±í´ïʽ°´Ë³ÐòÇóÖµ, -a ºÍ -o ¶¼ÊǶÌ·ÇóÖµ£¬Óë shell µÄ && ºÍ || ÀàËÆÈç¹û -path "/usr/sam" ΪÕ棬ÔòÇóÖµ -prune , -prune ·µ»ØÕ棬ÓëÂß¼­±í´ïʽΪÕ棻·ñÔò²»ÇóÖµ -prune£¬ÓëÂß¼­±í´ïʽΪ¼Ù¡£Èç¹û -path "/usr/sam" -a -prune Ϊ¼Ù£¬ÔòÇóÖµ -print £¬-print·µ»ØÕ棬»òÂß¼­±í´ïʽΪÕ棻·ñÔò²»ÇóÖµ -print£¬»òÂß¼­±í´ïʽΪÕæ¡£

    Õâ¸ö±í´ïʽ×éºÏÌØÀý¿ÉÒÔÓÃαÂëдΪ

    if -path "/usr/sam"  then
              -prune
    else
              -print

    ±Ü¿ª¶à¸öÎļþ¼Ð

    find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print

    Ô²À¨ºÅ±íʾ±í´ïʽµÄ½áºÏ¡£

    \ ±íʾÒýÓ㬼´Ö¸Ê¾ shell ²»¶ÔºóÃæµÄ×Ö·û×÷ÌØÊâ½âÊÍ£¬¶øÁô¸ø find ÃüÁîÈ¥½âÊÍÆäÒâÒå¡£

    ²éÕÒijһȷ¶¨Îļþ£¬-nameµÈÑ¡Ïî¼ÓÔÚ-o Ö®ºó

    #find /usr/sam  \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print


    5¡¢Ê¹ÓÃuserºÍnouserÑ¡Ïî

    °´ÎļþÊôÖ÷²éÕÒÎļþ£¬ÈçÔÚ$HOMEĿ¼ÖвéÕÒÎļþÊôÖ÷ΪsamµÄÎļþ£¬¿ÉÒÔÓãº

    $ find ~ -user sam -print

    ÔÚ/etcĿ¼Ï²éÕÒÎļþÊôÖ÷ΪuucpµÄÎļþ£º

    $ find /etc -user uucp -print

    ΪÁ˲éÕÒÊôÖ÷ÕÊ»§ÒѾ­±»É¾³ýµÄÎļþ£¬¿ÉÒÔʹÓÃ-nouserÑ¡Ïî¡£ÕâÑù¾ÍÄܹ»ÕÒµ½ÄÇЩÊôÖ÷ÔÚ/etc/passwdÎļþÖÐûÓÐÓÐЧÕÊ»§µÄÎļþ¡£ÔÚʹÓÃ-nouserÑ¡Ïîʱ£¬²»±Ø¸ø³öÓû§Ãû£» findÃüÁîÄܹ»ÎªÄãÍê³ÉÏàÓ¦µÄ¹¤×÷¡£

    ÀýÈ磬ϣÍûÔÚ/homeĿ¼Ï²éÕÒËùÓеÄÕâÀàÎļþ£¬¿ÉÒÔÓãº

    $ find /home -nouser -print


    6¡¢Ê¹ÓÃgroupºÍnogroupÑ¡Ïî

    ¾ÍÏñuserºÍnouserÑ¡ÏîÒ»Ñù£¬Õë¶ÔÎļþËùÊôÓÚµÄÓû§×飬 findÃüÁîÒ²¾ßÓÐͬÑùµÄÑ¡ÏΪÁËÔÚ/appsĿ¼Ï²éÕÒÊôÓÚgemÓû§×éµÄÎļþ£¬¿ÉÒÔÓãº

    $ find /apps -group gem -print

    Òª²éÕÒûÓÐÓÐЧËùÊôÓû§×éµÄËùÓÐÎļþ£¬¿ÉÒÔʹÓÃnogroupÑ¡Ïî¡£ÏÂÃæµÄfindÃüÁî´ÓÎļþϵͳµÄ¸ùĿ¼´¦²éÕÒÕâÑùµÄÎļþ

    $ find / -nogroup-print


    7¡¢°´ÕÕ¸ü¸Äʱ¼ä»ò·ÃÎÊʱ¼äµÈ²éÕÒÎļþ

    Èç¹ûÏ£Íû°´ÕÕ¸ü¸Äʱ¼äÀ´²éÕÒÎļþ£¬¿ÉÒÔʹÓÃmtime,atime»òctimeÑ¡Ïî¡£Èç¹ûϵͳͻȻûÓпÉÓÿռäÁË£¬ºÜÓпÉÄÜijһ¸öÎļþµÄ³¤¶ÈÔÚ´ËÆÚ¼äÔö³¤Ñ¸ËÙ£¬Õâʱ¾Í¿ÉÒÔÓÃmtimeÑ¡ÏîÀ´²éÕÒÕâÑùµÄÎļþ¡£

    ÓüõºÅ-À´ÏÞ¶¨¸ü¸Äʱ¼äÔÚ¾à½ñnÈÕÒÔÄÚµÄÎļþ£¬¶øÓüӺÅ+À´ÏÞ¶¨¸ü¸Äʱ¼äÔÚ¾à½ñnÈÕÒÔÇ°µÄÎļþ¡£

    Ï£ÍûÔÚϵͳ¸ùĿ¼Ï²éÕÒ¸ü¸Äʱ¼äÔÚ5ÈÕÒÔÄÚµÄÎļþ£¬¿ÉÒÔÓãº

    $ find / -mtime -5 -print

    ΪÁËÔÚ/var/admĿ¼Ï²éÕÒ¸ü¸Äʱ¼äÔÚ3ÈÕÒÔÇ°µÄÎļþ£¬¿ÉÒÔÓãº

    $ find /var/adm -mtime +3 -print


    8¡¢²éÕÒ±Èij¸öÎļþлò¾ÉµÄÎļþ

    Èç¹ûÏ£Íû²éÕÒ¸ü¸Äʱ¼ä±Èij¸öÎļþе«±ÈÁíÒ»¸öÎļþ¾ÉµÄËùÓÐÎļþ£¬¿ÉÒÔʹÓÃ-newerÑ¡Ïî¡£ËüµÄÒ»°ãÐÎʽΪ£º

    newest_file_name ! oldest_file_name

    ÆäÖУ¬£¡ÊÇÂß¼­·Ç·ûºÅ¡£

    ²éÕÒ¸ü¸Äʱ¼ä±ÈÎļþsamе«±ÈÎļþtemp¾ÉµÄÎļþ£º

    Àý£ºÓÐÁ½¸öÎļþ

    -rw-r--r--    1 sam      adm             0 10ÔÂ 31 01:07 fiel
    -rw-rw-rw-    1 sam      adm         34890 10ÔÂ 31 00:57 httpd1.conf
    -rwxrwxr-x    2 sam      adm             0 10ÔÂ 31 01:01 httpd.conf
    drw-rw-rw-    2 gem      group        4096 10ÔÂ 26 19:48 sam
    -rw-rw-rw-    1 root     root         2792 10ÔÂ 31 20:19 temp

    # find -newer httpd1.conf  ! -newer temp -ls
    1077669    0 -rwxrwxr-x   2 sam      adm             0 10ÔÂ 31 01:01 ./httpd.conf
    1077671    4 -rw-rw-rw-   1 root     root         2792 10ÔÂ 31 20:19 ./temp
    1077673    0 -rw-r--r--   1 sam      adm             0 10ÔÂ 31 01:07 ./fiel

    ²éÕÒ¸ü¸Äʱ¼äÔÚ±ÈtempÎļþеÄÎļþ£º

    $ find . -newer temp -print


    9¡¢Ê¹ÓÃtypeÑ¡Ïî

    ÔÚ/etcĿ¼Ï²éÕÒËùÓеÄĿ¼£¬¿ÉÒÔÓãº

    $ find /etc -type d -print

    ÔÚµ±Ç°Ä¿Â¼Ï²éÕÒ³ýĿ¼ÒÔÍâµÄËùÓÐÀàÐ͵ÄÎļþ£¬¿ÉÒÔÓãº

    $ find . ! -type d -print

    ÔÚ/etcĿ¼Ï²éÕÒËùÓеķûºÅÁ´½ÓÎļþ£¬¿ÉÒÔÓÃ

    $ find /etc -type l -print


    10¡¢Ê¹ÓÃsizeÑ¡Ïî

    ¿ÉÒÔ°´ÕÕÎļþ³¤¶ÈÀ´²éÕÒÎļþ£¬ÕâÀïËùÖ¸µÄÎļþ³¤¶È¼È¿ÉÒÔÓÿ飨block£©À´¼ÆÁ¿£¬Ò²¿ÉÒÔÓÃ×Ö½ÚÀ´¼ÆÁ¿¡£ÒÔ×Ö½Ú¼ÆÁ¿Îļþ³¤¶ÈµÄ±í´ïÐÎʽΪN c£»ÒÔ¿é¼ÆÁ¿Îļþ³¤¶ÈÖ»ÓÃÊý×Ö±íʾ¼´¿É¡£

    ÔÚ°´ÕÕÎļþ³¤¶È²éÕÒÎļþʱ£¬Ò»°ãʹÓÃÕâÖÖÒÔ×Ö½Ú±íʾµÄÎļþ³¤¶È£¬Ôڲ鿴ÎļþϵͳµÄ´óС£¬ÒòΪÕâʱʹÓÿéÀ´¼ÆÁ¿¸üÈÝÒ×ת»»¡£
    ÔÚµ±Ç°Ä¿Â¼Ï²éÕÒÎļþ³¤¶È´óÓÚ1 M×Ö½ÚµÄÎļþ£º

    $ find . -size +1000000c -print

    ÔÚ/home/apacheĿ¼Ï²éÕÒÎļþ³¤¶ÈÇ¡ºÃΪ100×Ö½ÚµÄÎļþ£º

    $ find /home/apache -size 100c -print

    ÔÚµ±Ç°Ä¿Â¼Ï²éÕÒ³¤¶È³¬¹ý10¿éµÄÎļþ£¨Ò»¿éµÈÓÚ512×Ö½Ú£©£º

    $ find . -size +10 -print


    11¡¢Ê¹ÓÃdepthÑ¡Ïî

    ÔÚʹÓÃfindÃüÁîʱ£¬¿ÉÄÜÏ£ÍûÏÈÆ¥ÅäËùÓеÄÎļþ£¬ÔÙÔÚ×ÓĿ¼ÖвéÕÒ¡£Ê¹ÓÃdepthÑ¡Ïî¾Í¿ÉÒÔʹfindÃüÁîÕâÑù×ö¡£ÕâÑù×öµÄÒ»¸öÔ­Òò¾ÍÊÇ£¬µ±ÔÚʹÓÃfindÃüÁîÏò´Å´øÉϱ¸·ÝÎļþϵͳʱ£¬Ï£ÍûÊ×Ïȱ¸·ÝËùÓеÄÎļþ£¬Æä´ÎÔÙ±¸·Ý×ÓĿ¼ÖеÄÎļþ¡£

    ÔÚÏÂÃæµÄÀý×ÓÖУ¬ findÃüÁî´ÓÎļþϵͳµÄ¸ùĿ¼¿ªÊ¼£¬²éÕÒÒ»¸öÃûΪCON.FILEµÄÎļþ¡£

    Ëü½«Ê×ÏÈÆ¥ÅäËùÓеÄÎļþÈ»ºóÔÙ½øÈë×ÓĿ¼ÖвéÕÒ¡£

    $ find / -name "CON.FILE" -depth -print


    12¡¢Ê¹ÓÃmountÑ¡Ïî

    ÔÚµ±Ç°µÄÎļþϵͳÖвéÕÒÎļþ£¨²»½øÈëÆäËûÎļþϵͳ£©£¬¿ÉÒÔʹÓÃfindÃüÁîµÄmountÑ¡Ïî¡£

    ´Óµ±Ç°Ä¿Â¼¿ªÊ¼²éÕÒλÓÚ±¾ÎļþϵͳÖÐÎļþÃûÒÔXC½áβµÄÎļþ£º

    $ find . -name "*.XC" -mount -print



    Îå¡¢¹ØÓÚ±¾ÎÄ

    ±¾ÎÄÊÇfind ÃüÁîµÄÏêϸ˵Ã÷£¬¿É¹óµÄÊÇÕë¶Ô²ÎÊý¾ÙÁ˺ܶàµÄʵÀý£¬´óÁ¿µÄÀýÖ¤£¬ÈóõѧÕ߸üΪÈÝÒ×Àí½â£»±¾ÎÄÊÇzhy2111314ÐÖÌùÔÚÂÛ̳ÖУ»ÎÒ¶Ô±¾ÎĽøÐÐÁËÔÙ´ÎÕûÀí£¬Îª·½±ã´ó¼ÒÔĶÁ£» ©¤©¤ ±±ÄÏÄϱ±

    Áù¡¢Ïà¹ØÎĵµ

    -exec ºÍ ¹ÜµÀ·û

    Óà -execÀ´Ö´ÐÐshellÃüÁºÍͨ¹ý¹ÜµÀ·û|À´Ö´ÐÐÓÐʲô²»Í¬£¿

    ¿É²»¿ÉÒÔºöÂÔ Permission deniedµÄ

    -bash-3.1$ find /home/f/a -type f -name enen -exec ls -l {} \;
    find: /home/f/a/liuyunge: Permission denied
    find: /home/f/a/ll1012: Permission denied
    find: /home/f/a/hebaidu: Permission denied
    find: /home/f/a/ET_SUN: Permission denied
    find: /home/f/a/Rory.Lu: Permission denied
    -rw-r--r-- 1 lufeng 27108 60 Nov 1 14:24 /home/f/a/lufeng/enen
    find: /home/f/a/shenglee2007: Permission denied
    find: /home/f/a/zlh750620: Permission denied
    find: /home/f/a/mlh720goodboy: Permission denied

    -mtime +n

    -mtime +n -n

    "ÓüõºÅ-À´ÏÞ¶¨¸ü¸Äʱ¼äÔÚ¾à½ñnÈÕÒÔÄÚµÄÎļþ£¬¶øÓüӺÅ+À´ÏÞ¶¨¸ü¸Äʱ¼äÔÚ¾à½ñnÈÕÒÔÇ°µÄÎļþ"

    ÒÉÎÊ£ºÓüӺÅ+À´ÏÞ¶¨¸ü¸Äʱ¼äÔÚ¾à½ñ (n+1) ÈÕÒÔÇ°µÄÎļþ

    very good.Thanks

    very good.Thanks

    ºÜºÃµÄÎÄÕÂ

    лл£¬ÓÖѧµ½Ò»Ð©¶«Î÷

    ·Ç³£¸Ðл£¬ºÜʵÓõÄÎĵµ

    ·Ç³£¸Ðл£¬ºÜʵÓõÄÎĵµ£¬¶Ô°³ºÜÓаïÖúÓ´¡£

    Èç-007¾ÍÏ൱ÓÚ777£¬-006Ï൱ÓÚ666 ÓÐÎó

    -007Ó¦¸ÃÊÇÖÁÉÙ007µÄÒâ˼£ºÈ磺407£¬447 etc

    man£¬findÓÐÏêϸµÄÀý×Ó£¬-007ÊǵÄÈ·ÖÁÉÙ007µÄÒâ˼

    ÎҲ鿴ÁËman£¬findÓÐÏêϸµÄÀý×Ó£¬-007ÊǵÄÈ·ÖÁÉÙ007µÄÒâ˼¡£
    ¶øÇÒ -perm +mode ÊÇÀϵÄÓ÷¨£¬ÐÂÓ÷¨ÊÇ find -perm /mode.ÊÖ²áÉÏ˵ËûÃÇ×÷ÓÃÊÇÒ»ÑùµÄ¡£

    -execºó±ßµÄ{}ÓÐÎÊÌâ

    {}Ö®¼äûÓпոñ°É.Ò³ÃæÉϵÄÃüÁîÓпոñ,¸´ÖÆÕ³ÌùºóÊÇ´íÎóµÄ.

    ÕâÀïµÄÈ·ÓÐÎÊÌâ

    debian:~# find /usr/bin -type f -size -50c -exec 'ls -l' {} ;
    find: missing argument to `-exec'

    debian:~# find /usr/bin -type f -size -50c -exec ls -l '{}' ';'
    -rwxr-xr-x 1 root root 30 2003-11-08 21:31 /usr/bin/rgrep
    -rwxr-xr-x 1 root root 29 2004-11-22 14:09 /usr/bin/bison.yacc
    -rwxr-xr-x 1 root root 48 2005-09-04 15:20 /usr/bin/pydoc2.3
    -rwxr-xr-x 1 root root 32 2005-05-16 19:02 /usr/bin/gnome-sudo

    debian:~# find /usr/bin -type f -size -50c -exec ls -l '{}' \;
    -rwxr-xr-x 1 root root 30 2003-11-08 21:31 /usr/bin/rgrep
    -rwxr-xr-x 1 root root 29 2004-11-22 14:09 /usr/bin/bison.yacc
    -rwxr-xr-x 1 root root 48 2005-09-04 15:20 /usr/bin/pydoc2.3
    -rwxr-xr-x 1 root root 32 2005-05-16 19:02 /usr/bin/gnome-sudo

    debian:~# find /usr/bin -type f -size -50c -exec ls -l \{\} \;
    -rwxr-xr-x 1 root root 30 2003-11-08 21:31 /usr/bin/rgrep
    -rwxr-xr-x 1 root root 29 2004-11-22 14:09 /usr/bin/bison.yacc
    -rwxr-xr-x 1 root root 48 2005-09-04 15:20 /usr/bin/pydoc2.3
    -rwxr-xr-x 1 root root 32 2005-05-16 19:02 /usr/bin/gnome-sudo

    ÔÚÓÃ-execµÄʱºò£¬command²»ÄÜÓÃ''£¬¶ø{}ºÍ;±ØÐëÓÃ''£¬»òÕß\תÒå¡£

    ²»´íµÄÎÄÕÂ

    ÕâÑùµÄʵÓÃʵ¸ÉµÄÎÄÕÂÔ½¶àÔ½ºÃ£¡

    ·Ç³£Ææ¹ÖµÄÎÊÌ⣡£¡£¡£¡

    ÔÚRHEL4ÏÂÓÐÎļþ£º/lib/modules/2.6.9ELsmp/source/include/linux/version.h
    µ«ÊÇΪºÎÓÃÃüÁîfind / -name version.h
    »òÕßµ½Ä¿Â¼£º/lib/modules/2.6.9ELsmp/ÏÂ
    find . -name version.h
    ¶¼ÎÞ·¨ÕÒµ½ÉÏÊöÎļþ¡£
    µ«ÊÇÔÚ£º/lib/modules/2.6.9ELsmp/sourceÏÂ
    find . -name version.h
    È´¿ÉÒÔÕÒµ½Õâ¸öÎļþ¡£
    ²»ÖªÊÇʲôԭÒò£¿£¿£¿£¿

    ÅÅ°æÓÐÎó£¿

    Õâô¶à&line; Ó¦¸ÃÊÇ|°É

    лл£¬ÒѾ­ÐÞ¸´

    лл£¬ÒѾ­ÐÞ¸´£»

    ¸Ä¹ýÁËô£¿ Ôõô»¹ÓÐline

    7¡¢ÎªÁ˲éÕÒµ±Ç°ÎļþϵͳÖеÄËùÓÐĿ¼²¢ÅÅÐò£»

    $ find . -type d &line;sort

    ·Ç³£¸Ðл£¬È«²¿ÐÞÕý£»

    ·Ç³£¸Ðл£¬È«²¿ÐÞÕý£»

    ÔÚsolarisÏÂ

    ÔÚsolarisÏ£¬²»ÓÃÒ²²»ÄÜתÒå Ö±½ÓʹÓà ...... -exec ls -l {} \; ¼´¿É.






    ת×Ô£ºhttp://www.linuxsir.org/main/?q=node/137


  • Ê®Áù¸ö±©ÓÐÃûÆøµÄÃÀ¹úÐÂÎÅÍøÕ¾

    2011-06-10 14:02:52

     

    ¾«»ªÄÚÈÝ£ºÕâÊ®Áù¸öÃÀ¹úÐÂÎÅÍøÕ¾´ó¼Ò¼´Ê¹Ã»Ç×ÑÛ¿´¹ýÒ²Ó¦¸Ã¾­³£Ìý˵,û´í,ËüÃǾÍÊÇÀ´×ÔÃÀ¹úµÄ¾ßÓÐÊÀ½çÓ°ÏìÁ¦µÄÊ®Áù¸ö×îÇ¿º·µÄ±¨Ö½,ÔÓÖ¾µÄÍøÕ¾,ǧÍò±ð´í¹ýÈκÎÒ»¸ö! ¡¶¹úÍâÍøÕ¾: ÃÀ¹úÐÂÎÅÍøÕ¾¡·µÄԭʼÍêÕûÄÚÈݱ£´æÔÚwwww.kincool.cn/hosting/hosting_23.html

    ±¾ÎĵĹúÍâÍøÕ¾ÓÉ¡°¾«»ª¿â¡±-www.kincool.cn-Ìṩ¡£

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_1: ½ñÈÕÃÀ¹ú - http://www.usatoday.com/
        ¡¶½ñÈÕÃÀ¹ú¡·Êǵ±½ñÃÀ¹úÐÂÎÅÍøÕ¾µÚÒ»´ó±¨,Ò²ÊÇÃÀ¹úÐÂÎÅÍøÕ¾NO_1: ΨһµÄ²ÊÉ«°æÈ«¹úÐÔ¶Ô¿ªÈÕ±¨,ÊôÈ«ÃÀ×î´óµÄ¸ÊÄáÌر¨ÍÅ,1982Äê9ÔÂ15ÈÕ´´¿¯,×ܲ¿ÉèÔÚ¸¥¼ªÄáÑÇÖݵÄÂÞ˹ÁÖ.ËüÄÚÈݼòÃ÷¡¢±àÅÅÐÂÓ±.

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_1: CNNÓÐÏßµçÊÓÐÂÎÅÍø - http://www.cnn.com/
        CNN(Cable News Network)ÊÇÃÀ¹úÐÂÎÅÍøÕ¾NO_1: ÓÐÏßµçÊÓÐÂÎÅÍø,È«ÇòÒÔÐÂÎŲ¥±¨ÎªÖ÷µÄµçÊǪ́.CNN¹ú¼ÊÐÂÎÅÍøΪȫÇò×îÏȽøµÄÐÂÎÅ×éÖ¯,´ø¸øÄúÿÖÜÆßÌì,ÿÌì¶þÊ®ËÄСʱµÄÈ«ÇòÖ±²¥ÐÂÎű¨µ¼.

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_2: ¸£²¼Ë¹ÔÓÖ¾   - http://www.forbes.com/
        ¡¶¸£²¼Ë¹¡·ÔÓÖ¾ÊÇÃÀ¹úÐÂÎÅÍøÕ¾ÖÐ×îÔçµÄ´óÐÍÉÌÒµÔÓÖ¾,Ò²ÊÇÈ«Çò×îΪ×ÅÃûµÄ²Æ¾­³ö°æÎïÖ®Ò».¡¶¸£²¼Ë¹¡·ÎªË«ÖÜ¿¯ÔÓÖ¾,ÿÆÚ¿¯µÇ60¶àƪ¶Ô¹«Ë¾ºÍ¹«Ë¾¾­ÓªÕßµÄÆÀÂÛÐÔÎÄÕÂ,ÓïÑÔ¼òÁ·,ÄÚÈݾùΪԭ´´.

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_2: ŦԼʱ±¨ http://www.nytimes.com/
        ÃÀ¹úÐÂÎÅÍøÕ¾NO_1: Ö÷Òª±¨Ö½Å¦Ô¼Ê±±¨(The New York Time)µÄÍøÕ¾.ŦԼʱ±¨ÊÇÒ»·ÝÔÚÃÀ¹úÐÂÎÅÍøÕ¾NO_1: ŦԼ³ö°æµÄ±¨Ö½,ÔÚÈ«ÊÀ½ç·¢ÐÐ,ÓÐÏ൱µÄÓ°ÏìÁ¦.ËüÓÐʱҲ±»Ï·³ÆΪ"»ÒɫŮʿ"(The Gray Lady)

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_1: ²Æ¸»ÔÓÖ¾   http://www.fortune.com/
        ¡¶²Æ¸»¡·ÔÓÖ¾ÓÚ1929ÄêÓÉÃÀ¹úÐÂÎÅÍøÕ¾NO_1: È˺àÀû.¬˹´´°ì,Ä¿Ç°ÒѾ­×öµ½ÁËÈ«Çò»¯µÄÓ°ÏìÁ¦.¡¶²Æ¸»¡·µÄºËÐľºÕùÁ¦ÊÇÆäºÍ"×ʱ¾Ö÷ÒåÉÌÒµ³É¹¦ÁªÏµÔÚÒ»Æð"(³˹Óï)µÄ¸ß¶ÈµÄȨÍþÐÔ,ΪȫÇòÉÌÈËÊìÖª

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_3: ¹ú¼ÒµØÀíÔÓÖ¾   http://www.nationalgeographic.com/
        ÃÀ¹ú¹ú¼ÒµØÀíÔÓÖ¾´´¿¯ÓÚ1888Äê,ËüÓÉÃÀ¹ú µÄÒ»¼Ò·ÇÓ¯Àû¿Æѧ½ÌÓý×éÖ¯--"¹ú¼ÒµØÀíЭ»á"(Natioinal Geographic Society)´´°ì.¹ú¼ÒµØÀíÔÓÖ¾½üǧ·ÖÖ®Ò»µÄѡƬÂÊÊ®·Ö¿Á¿Ì


    ÃÀ¹úÐÂÎÅÍøÕ¾NO_4: ¸£¿Ë˹¹ã²¥¹«Ë¾FOX   http://www.fox.com/
        ÃÀ¹ú¸£¿Ë˹¹ã²¥¹«Ë¾FOX(Fox Broadcasting Corporation),¹«Ë¾×ܲ¿ÉèÔÚÂåɼí¶.1986Äê10ÔÂÔÚÃÀ¹úд´°ìµÄÉÌÒµµçÊÓÍø.1987Äê4Ô¿ªÊ¼²¥³ö¹ã²¥ÍøÁª²¥½ÚÄ¿.

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_5: »ª¶û½ÖÈÕ±¨   http://www.wsj.com/
        ¡¶»ª¶û½ÖÈÕ±¨¡·(The Wall Street Journal),ÆäÊÇÃÀ¹úÐÂÎÅÍøÕ¾ÄËÖÁÈ«ÊÀ½çÓ°ÏìÁ¦×î´ó,²àÖؽðÈÚ¡¢ÉÌÒµÁìÓò±¨µ¼µÄÈÕ±¨,´´°ìÓÚ1889Äê.ÈÕ·¢ÐÐÁ¿´ï200Íò·Ý.ͬʱ³ö°æÁËÑÇÖް桢ŷÖÞ°æ¡¢ÍøÂç°æ .


    ÃÀ¹úÐÂÎÅÍøÕ¾NO_6: ʱ´úÖÜ¿¯   http://www.time.com/
        ÃÀ¹ú¡¶Ê±´ú¡·ÖÜ¿¯,´´°ìÓÚ1923Äê3ÔÂ.ÊÇÃÀ¹úÐÂÎÅÍøÕ¾NO_1: Ó°Ïì×î´óµÄÐÂÎÅÖÜ¿¯,ÓÐÊÀ½ç"Ê·¿â"Ö®³Æ.¡¶Ê±´ú¡·ÊÇÃÀ¹úÐÂÎÅÍøÕ¾NO_1: Èý´óʱÊÂÐÔÖÜ¿¯Ö®Ò»,ÄÚÈݹ㷺,¶Ô¹ú¼ÊÎÊÌâ·¢±íÖ÷ÕźͶԹú¼ÊÖØ´óʼþ½øÐиú×Ù±¨µÀ.

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_7: ÈËÎïÔÓÖ¾   http://www.people.com/
        ÃÀ¹ú¡¶ÈËÎï¡·ÔÓÖ¾1974Äê´´¿¯,ÊÓ½ÇרעÓÚÃÀ¹úÐÂÎÅÍøÕ¾NO_1: µÄÃûÈ˺ÍÁ÷ÐÐÎÄ»¯,ÊÇ Time Warner ýÌ弯ÍÅÆìÏÂÔÓÖ¾.¡¶ÈËÎï¡·ÊÇÈ«Çò¶¨Î»×ȷÓÖ×îÓÐЧµÄÔÓÖ¾Ö®Ò»,¾Û½¹Ö÷Á÷µÄ·çÔÆÈËÎï.

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_8: ÓéÀÖÖÜ¿¯   http://www.ew.com/
        ÃÀ¹ú¡¶ÓéÀÖÖÜ¿¯¡·ÊÇÃÀ¹ú×ÅÃûµÄÍõÅÆÓéÀÖÖÜ¿¯,ÊÇÒ»±¾Í¼Îļ汸µÄ´óÖÚµçÓ°ÔÓÖ¾,¿¯ÔØÃÀ¹ú ÓéÀÖ(°üÀ¨µçÓ°¡¢Â¼Ïñ¡¢ÒôÀֻᡢ³ªÆ¬¡¢´Å´øºÍͼÊéµÈ)·½ÃæµÄÏûÏ¢±¨µÀ¡¢²úÆ·½éÉÜ¡¢²É·Ã¼Ç¡¢ÆÀÂÛ .

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_9: È«¹ú¹ã²¥¹«Ë¾NBC   http://www.nbc.com/
        ÃÀ¹úÐÂÎÅÍøÕ¾NO_1: È«¹ú¹ã²¥¹«Ë¾NBC(National Broadcasting Company),ÊÇÃÀ¹úÐÂÎÅÍøÕ¾NO_1: Ò»¼ÒÖ÷Á÷¹ã²¥µçÊÓÍøÂ繫˾,×ܲ¿ÉèÔÚŦԼµÄÂå¿Ë·ÆÀÕÖÐÐÄ,ÒÔ¿×ȸΪ±ê¼Ç.Ä¿Ç°ÊÇ´«Ã½ÁªºÏ´óÆóÒµNBC UniversalµÄÒ»²¿·Ö .

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_10: ¶ÁÕßÎÄÕª   http://www.rd.com/
        ÃÀ¹ú¶ÁÕßÎÄÕª(Reader's Digest),ÃÀ¹ú×îÓÐÓ°ÏìÁ¦µÄÔÓÖ¾,Ò²ÊÇÊÀ½çÉÏ×î³É¹¦µÄÔÓÖ¾Ö®Ò».¡¶¶ÁÕßÎÄÕª¡·ÔÓÖ¾µÄ·ç¸ñÒÔÎÂÇéºÍÈËÐÔ¼û³¤,ËûÃÇ"Óó־õġ¢ÈËÐԵĶ«Î÷´ò°ÜÁËʱÉеġ¢Èȵã .


    ÃÀ¹úÐÂÎÅÍøÕ¾NO_11: »¨»¨¹«×ÓÔÓÖ¾   http://www.playboy.com/
        ÃÀ¹ú¡¶»¨»¨¹«×Ó¡·ÔÓÖ¾µÄ¹Ù·½ÍøÕ¾,¸ÃÔÓ־ÿÔ³ö°æ,ÄÚÈݳýÁËÅ®ÐÔÂãÕÕÍâ,ÉÐÓÐÎÄÕ½éÉÜʱװ¡¢Òûʳ¡¢ÌåÓý¡¢Ïû·ÑµÈ.ÔÓÖ¾ÉÏÃæµÄ·âÃæÅ®ÀÉ,ǧ½¿°ÙÃÄ,·çÇéÍòÖÖ.

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_12: ÃûÀû³¡ÔÓÖ¾   http://www.vanityfair.com/
        ÃÀ¹úÃûÀû³¡ÔÓÖ¾ÊÇÃÀ¹ú×ÅÃûÉú»îÔÓÖ¾,1913Äê´´¿¯.Ö÷ÒªÐûÑïµ±´úÎÄ»¯µÄ¿¯Îï.ÄÚÈÝ°üÀ¨ÕþÖΡ¢ÃûÈË¡¢Í¼Êé¡¢ÓÄĬ¡¢ÐÂÎÅ¡¢ÒÕÊõºÍÉãÓ°µÈ.ÃûÀû³¡ÔÓÖ¾ÒѾ­³ÉΪ¹«ÈϵÄÃÀ¹ú×îÖØÒªµÄÔÓÖ¾Ö®Ò».

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_13: ¿ÆѧÔÚÏß   http://www.sciencemag.org/
        ÃÀ¹ú¡¶¿Æѧ¡·ÖÜ¿¯ÓÉÍÐÂí˹¡¤°®µÏÉú´´°ìÓÚ1880Äê,×Ô1900ÄêÆð³ÉΪÃÀ¹ú¿Æѧ´Ù½ø»áµÄ¹Ù·½¿¯Îï.ÔÓÖ¾µÄÔçÆÚÒÔ±¨¸æÎïÀíÀà¿ÆѧÑо¿×ųÆ,ÓÐÎÞÏߵ籨¼¼Êõ¡¢ÐµĻ¯Ñ§ÔªËØ...

    ÃÀ¹úÐÂÎÅÍøÕ¾NO_14: Market Watch   http://www.marketwatch.com/
        Market WatchÊǵÀÇí˹ÆìϵÄÐÂÎÅÍøÕ¾,Ö÷Òª¹Ø×¢ÖØ´óÐÂÎÅ,·þÎñµÄ¶ÔÏó¸ü¶àµÄÊÇÃæÏòÉ¢»§Í¶×ÊÈË.Market Watch»¹Ìṩ¹©¸öÈËͶ×ÊÕ߶©ÔĵIJúÆ·.

    ת×Ô£ºhttp://hi.baidu.com/100books/blog/item/d94ab73cb1f9a806baa167de.html

     

  • HTTP_POST_GET_Çø±ðÏê½â

    2011-06-08 18:22:28

     

    HTTP POST GET ±¾ÖÊÇø±ðÏê½â

    Ò» Ô­ÀíÇø±ð

       
    Ò»°ãÔÚä¯ÀÀÆ÷ÖÐÊäÈëÍøÖ··ÃÎÊ×ÊÔ´¶¼ÊÇͨ¹ýGET·½Ê½£»ÔÚFORMÌá½»ÖУ¬¿ÉÒÔͨ¹ýMethodÖ¸¶¨Ìá½»·½Ê½ÎªGET»òÕßPOST£¬Ä¬ÈÏΪGETÌá½»


    Http
    ¶¨ÒåÁËÓë·þÎñÆ÷½»»¥µÄ²»Í¬·½·¨£¬×î»ù±¾µÄ·½·¨ÓÐ4ÖÖ£¬·Ö±ðÊÇGET£¬POST£¬PUT£¬
    DELETE

    URL
    È«³ÆÊÇ×ÊÔ´ÃèÊö·û£¬ÎÒÃÇ¿ÉÒÔÕâÑùÈÏΪ£ºÒ»¸öURLµØÖ·£¬ËüÓÃÓÚÃèÊöÒ»¸öÍøÂçÉϵÄ×ÊÔ´£¬¶øHTTPÖÐµÄ GET£¬POST£¬PUT£¬DELETE¾Í¶ÔÓ¦×ŶÔÕâ¸ö×ÊÔ´µÄ²é £¬¸Ä £¬Ôö £¬É¾ 4¸ö²Ù×÷¡£µ½ÕâÀ´ó¼ÒÓ¦¸ÃÓиö´ó¸ÅµÄÁ˽âÁË£¬GETÒ»°ãÓÃÓÚ»ñÈ¡/²éѯ ×ÊÔ´ÐÅÏ¢£¬¶øPOSTÒ»°ãÓÃÓÚ¸üР×ÊÔ´ÐÅÏ¢(¸öÈËÈÏΪÕâÊÇGETºÍPOSTµÄ±¾ÖÊÇø±ð£¬Ò²ÊÇЭÒéÉè¼ÆÕߵı¾Ò⣬ÆäËüÇø±ð¶¼ÊǾßÌå±íÏÖÐÎʽµÄ²îÒì )¡£


    ¡¡¡¡¸ù¾ÝHTTP¹æ·¶£¬GETÓÃÓÚÐÅÏ¢»ñÈ¡£¬¶øÇÒÓ¦¸ÃÊÇ°²È«µÄºÍÃÝµÈµÄ ¡£


    ¡¡¡¡1.Ëùν°²È«µÄÒâζןòÙ×÷ÓÃÓÚ»ñÈ¡ÐÅÏ¢¶ø·ÇÐÞ¸ÄÐÅÏ¢¡£»»¾ä»°Ëµ£¬GETÇëÇóÒ»°ã²»Ó¦²úÉú¸±×÷Ó᣾ÍÊÇ˵£¬Ëü½ö½öÊÇ»ñÈ¡×ÊÔ´ÐÅÏ¢£¬¾ÍÏñÊý¾Ý¿â ²éѯһÑù£¬²»»áÐ޸ģ¬Ôö¼ÓÊý¾Ý£¬²»»áÓ°Ïì×ÊÔ´µÄ״̬¡£


    ¡¡¡¡* ×¢Ò⣺ÕâÀﰲȫµÄº¬Òå½ö½öÊÇÖ¸ÊÇ·ÇÐÞ¸ÄÐÅÏ¢¡£


    ¡¡¡¡2.ÃݵȵÄÒâζ×ŶÔͬһURLµÄ¶à¸öÇëÇóÓ¦¸Ã·µ»ØͬÑùµÄ½á¹û¡£ÕâÀïÎÒÔÙ½âÊÍÒ»ÏÂÃÝµÈ Õâ¸ö¸ÅÄ


    ¡¡¡¡ÃÝµÈ £¨idempotent¡¢idempotence£©ÊÇÒ»¸öÊýѧ»ò¼ÆËã»úѧ¸ÅÄ³£¼ûÓÚ³éÏó´úÊýÖС£

    ¡¡¡¡ÃݵÈÓÐÒÔϼ¸ÖÖ¶¨Ò壺

    ¡¡¡¡¶ÔÓÚµ¥Ä¿ÔËË㣬Èç¹ûÒ»¸öÔËËã¶ÔÓÚÔÚ·¶Î§ÄÚµÄËùÓеÄÒ»¸öÊý¶à´Î½øÐиÃÔËËãËùµÃµÄ½á¹ûºÍ½øÐÐÒ»´Î¸ÃÔËËãËùµÃµÄ½á¹ûÊÇÒ»ÑùµÄ£¬ÄÇôÎÒÃǾͳƸÃÔËËãÊÇ Ãݵȵġ£±ÈÈç¾ø¶ÔÖµÔËËã¾ÍÊÇÒ»¸öÀý×Ó£¬ÔÚʵÊý¼¯ÖУ¬ÓÐabs(a) = abs(abs(a)) ¡£

    ¡¡¡¡¶ÔÓÚË«Ä¿ÔËË㣬ÔòÒªÇóµ±²ÎÓëÔËËãµÄÁ½¸öÖµÊǵÈÖµµÄÇé¿öÏ£¬Èç¹ûÂú×ãÔËËã½á¹ûÓë²ÎÓëÔËËãµÄÁ½¸öÖµÏàµÈ£¬Ôò³Æ¸ÃÔËËãÃݵȣ¬ÈçÇóÁ½¸öÊýµÄ×î´óÖµµÄº¯ Êý£¬ÓÐÔÚÔÚʵÊý¼¯ÖÐÃݵȣ¬¼´max(x,x)  =  x ¡£

    ¿´ÍêÉÏÊö½âÊͺó£¬Ó¦¸Ã¿ÉÒÔÀí½âGETÃݵȵĺ¬ÒåÁË¡£


    ¡¡¡¡µ«ÔÚʵ¼ÊÓ¦ÓÃÖУ¬ÒÔÉÏ2Ìõ¹æ¶¨²¢Ã»ÓÐÕâôÑϸñ¡£ÒýÓñðÈËÎÄÕµÄÀý×Ó£º±ÈÈ磬ÐÂÎÅÕ¾µãµÄÍ·°æ²»¶Ï¸üС£ËäÈ»µÚ¶þ´ÎÇëÇó»á·µ»Ø²»Í¬µÄÒ»ÅúÐÂÎÅ£¬¸Ã ²Ù×÷ÈÔÈ»±»ÈÏΪÊÇ°²È«µÄºÍÃݵȵģ¬ÒòΪËü×ÜÊÇ·µ»Øµ±Ç°µÄÐÂÎÅ¡£´Ó¸ù±¾ÉÏ˵£¬Èç¹ûÄ¿±êÊǵ±Óû§´ò¿ªÒ»¸öÁ´½Óʱ£¬Ëû¿ÉÒÔÈ·ÐÅ´Ó×ÔÉíµÄ½Ç¶ÈÀ´¿´Ã»Óиıä×ÊÔ´¼´ ¿É¡£


    ¡¡¡¡¸ù¾ÝHTTP¹æ·¶£¬POST±íʾ¿ÉÄÜÐ޸ıä·þÎñÆ÷ÉϵÄ×ÊÔ´µÄÇëÇó ¡£¼ÌÐøÒýÓÃÉÏÃæµÄÀý×Ó£º»¹ÊÇÐÂÎÅÒÔÍøվΪÀý£¬¶ÁÕ߶ÔÐÂÎÅ·¢±í×Ô¼ºµÄÆÀÂÛÓ¦¸Ãͨ¹ýPOSTʵÏÖ£¬ÒòΪÔÚÆÀÂÛÌá½»ºóÕ¾µãµÄ×ÊÔ´ÒѾ­²»Í¬ÁË£¬»òÕß˵×ÊÔ´±»ÐÞ¸Ä ÁË¡£


    ¡¡¡¡ÉÏÃæ´ó¸Å˵ÁËÒ»ÏÂHTTP¹æ·¶ÖУ¬GETºÍPOSTµÄһЩԭÀíÐÔµÄÎÊÌâ¡£µ«ÔÚʵ¼ÊµÄ×öµÄʱºò£¬ºÜ¶àÈËȴûÓа´ÕÕHTTP¹æ·¶È¥×ö£¬µ¼ÖÂÕâ¸öÎÊ ÌâµÄÔ­ÒòÓкܶ࣬±ÈÈç˵£º


    ¡¡¡¡1.ºÜ¶àÈËÌ°·½±ã£¬¸üÐÂ×ÊԴʱÓÃÁËGET£¬ÒòΪÓÃPOST±ØÐëÒªµ½FORM£¨±íµ¥£©£¬ÕâÑù»áÂé·³Ò»µã¡£


    ¡¡¡¡2.¶Ô×ÊÔ´µÄÔö£¬É¾£¬¸Ä£¬²é²Ù×÷£¬Æäʵ¶¼¿ÉÒÔͨ¹ýGET/POSTÍê³É£¬²»ÐèÒªÓõ½PUTºÍDELETE¡£


    ¡¡¡¡3.ÁíÍâÒ»¸öÊÇ£¬ÔçÆڵĵ«ÊÇWeb MVC¿ò¼ÜÉè¼ÆÕßÃDz¢Ã»ÓÐÓÐÒâʶµØ½«URLµ±×÷³éÏóµÄ×ÊÔ´À´¿´´ýºÍÉè¼Æ ¡£»¹ÓÐÒ»¸ö½ÏΪÑÏÖصÄÎÊÌâÊÇ´«Í³µÄWeb MVC¿ò¼Ü»ù±¾É϶¼Ö»Ö§³ÖGETºÍPOSTÁ½ÖÖHTTP·½·¨£¬¶ø²»Ö§³ÖPUTºÍDELETE·½·¨¡£


    ¡¡¡¡* ¼òµ¥½âÊÍÒ»ÏÂMVC£ºMVC±¾À´ÊÇ´æÔÚÓÚDesktop³ÌÐòÖеģ¬MÊÇÖ¸Êý¾ÝÄ£ÐÍ£¬VÊÇÖ¸Óû§½çÃ棬CÔòÊÇ¿ØÖÆÆ÷¡£Ê¹ÓÃMVCµÄÄ¿µÄÊǽ«MºÍVµÄʵÏÖ´úÂë ·ÖÀ룬´Ó¶øʹͬһ¸ö³ÌÐò¿ÉÒÔʹÓò»Í¬µÄ±íÏÖÐÎʽ¡£


    ¡¡¡¡ÒÔÉÏ3µãµäÐ͵ØÃèÊöÁËÀÏÒ»Ì׵ķç¸ñ£¨Ã»ÓÐÑϸñ×ñÊØHTTP¹æ·¶£©£¬Ëæ׿ܹ¹µÄ·¢Õ¹£¬ÏÖÔÚ³öÏÖREST(Representational State Transfer)£¬Ò»Ì×Ö§³ÖHTTP¹æ·¶µÄзç¸ñ£¬ÕâÀï²»¶à˵ÁË£¬¿ÉÒԲο¼¡¶RESTful Web Services¡·¡£


    ¶þ ±íÏÖÐÎʽÇø±ð


      
    ¸ãÇåÁËÁ½ÕßµÄÔ­ÀíÇø±ð£¬ÎÒÃÇÔÙÀ´¿´Ò»ÏÂËûÃÇʵ¼ÊÓ¦ÓÃÖеÄÇø±ð£º


       
    ΪÁËÀí½âÁ½ÕßÔÚ´«Êä¹ý³ÌÖеIJ»Í¬£¬ÎÒÃÇÏÈ¿´Ò»ÏÂHTTPЭÒéµÄ¸ñʽ£º


        HTTP
    ÇëÇó£º


    <request line>

    <headers>

    <blank line>

    <request-body>]

    ÔÚHTTPÇëÇóÖУ¬µÚÒ»ÐбØÐëÊÇÒ»¸öÇëÇóÐУ¨request line£©£¬ÓÃÀ´ËµÃ÷ÇëÇóÀàÐÍ¡¢Òª·ÃÎʵÄ×ÊÔ´ÒÔ¼°Ê¹ÓõÄHTTP°æ±¾¡£½ô½Ó×ÅÊÇÒ»¸öÊײ¿£¨header£©Ð¡½Ú£¬ÓÃÀ´ËµÃ÷·þÎñÆ÷ҪʹÓõĸ½¼ÓÐÅÏ¢¡£ÔÚÊײ¿Ö® ºóÊÇÒ»¸ö¿ÕÐУ¬ÔÙ´ËÖ®ºó¿ÉÒÔÌí¼ÓÈÎÒâµÄÆäËûÊý¾Ý[³Æ֮ΪÖ÷Ì壨body£©]¡£


    GET
    ÓëPOST·½·¨ÊµÀý£º

    GET /books/?sex=man&name=Professional HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Connection: Keep-Alive

    POST / HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 40
    Connection: Keep-Alive
        
    £¨----´Ë´¦¿ÕÒ»ÐÐ----£©

    name=Professional%20Ajax&publisher=Wiley



    ÓÐÁËÒÔÉ϶ÔHTTPÇëÇóµÄÁ˽âºÍʾÀý£¬ÎÒÃÇÔÙÀ´¿´Á½ÖÖÌá½»·½Ê½µÄÇø±ð£º


      
    £¨1£©GETÌá½»£¬ÇëÇóµÄÊý¾Ý»á¸½ÔÚURLÖ®ºó£¨¾ÍÊÇ°ÑÊý¾Ý·ÅÖÃÔÚHTTPЭÒéÍ·ÖУ©£¬ÒÔ?·Ö¸îURLºÍ´«ÊäÊý¾Ý£¬¶à¸ö²ÎÊýÓÃ&Á¬½Ó£»Àý È磺login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD¡£Èç¹ûÊý¾ÝÊÇÓ¢ÎÄ×Öĸ/Êý×Ö£¬Ô­Ñù·¢ËÍ£¬Èç¹ûÊÇ¿Õ¸ñ£¬×ª»»Îª+£¬Èç¹ûÊÇÖÐÎÄ/ÆäËû×Ö·û£¬ÔòÖ±½Ó°Ñ×Ö·û´®ÓÃBASE64¼ÓÃÜ£¬µÃ³öÈ磺 %E4%BD%A0%E5%A5%BD£¬ÆäÖУ¥XXÖеÄXXΪ¸Ã·ûºÅÒÔ16½øÖƱíʾµÄASCII¡£


    ¡¡¡¡POSTÌá½»£º°ÑÌá½»µÄÊý¾Ý·ÅÖÃÔÚÊÇHTTP°üµÄ°üÌåÖС£ÉÏÎÄʾÀýÖкìÉ«×ÖÌå±êÃ÷µÄ¾ÍÊÇʵ¼ÊµÄ´«ÊäÊý¾Ý


        
    Òò´Ë£¬GETÌá½»µÄÊý¾Ý»áÔÚµØÖ·À¸ÖÐÏÔʾ³öÀ´£¬¶øPOSTÌá½»£¬µØÖ·À¸²»»á¸Ä±ä


        (2)
    ´«ÊäÊý¾ÝµÄ´óС£ºÊ×ÏÈÉùÃ÷£ºHTTPЭÒéûÓжԴ«ÊäµÄÊý¾Ý´óС½øÐÐÏÞÖÆ£¬HTTPЭÒé¹æ·¶Ò²Ã»ÓжÔURL³¤¶È½øÐÐÏÞÖÆ¡£


    ¶øÔÚʵ¼Ê¿ª·¢ÖдæÔÚµÄÏÞÖÆÖ÷ÒªÓУº


    GET:
    Ìض¨ä¯ÀÀÆ÷ºÍ·þÎñÆ÷¶ÔURL³¤¶ÈÓÐÏÞÖÆ£¬ÀýÈçIE¶ÔURL³¤¶ÈµÄÏÞÖÆÊÇ2083×Ö½Ú(2K+35)¡£¶ÔÓÚÆäËûä¯ÀÀÆ÷£¬Èç Netscape¡¢FireFoxµÈ£¬ÀíÂÛÉÏûÓ㤶ÈÏÞÖÆ£¬ÆäÏÞÖÆÈ¡¾öÓÚ²Ù×÷ϵͳµÄÖ§³Ö¡£


    Òò´Ë¶ÔÓÚGETÌύʱ£¬´«ÊäÊý¾Ý¾Í»áÊܵ½URL³¤¶ÈµÄÏÞÖÆ¡£


    POST:
    ÓÉÓÚ²»ÊÇͨ¹ýURL´«Öµ£¬ÀíÂÛÉÏÊý¾Ý²»ÊÜÏÞ¡£µ«Êµ¼Ê¸÷¸öWEB·þÎñÆ÷»á¹æ¶¨¶ÔpostÌá½»Êý¾Ý´óС½øÐÐÏÞÖÆ£¬Apache¡¢IIS6¶¼ Óи÷×ÔµÄÅäÖá£


    (3)
    °²È«ÐÔ£º


    .POST
    µÄ°²È«ÐÔÒª±ÈGETµÄ°²È«ÐԸߡ£×¢Ò⣺ÕâÀïËù˵µÄ°²È«ÐÔºÍÉÏÃæGETÌáµ½µÄ¡°°²È«¡±²»ÊÇͬ¸ö¸ÅÄî¡£ÉÏÃæ¡°°²È«¡±µÄº¬Òå½ö½öÊDz»×÷Êý¾ÝÐÞ ¸Ä£¬¶øÕâÀﰲȫµÄº¬ÒåÊÇÕæÕýµÄSecurityµÄº¬Ò壬±ÈÈ磺ͨ¹ýGETÌá½»Êý¾Ý£¬Óû§ÃûºÍÃÜÂ뽫Ã÷ÎijöÏÖÔÚURLÉÏ£¬ÒòΪ(1)µÇ¼ҳÃæÓпÉÄܱ»ä¯ÀÀÆ÷ »º´æ£¬ (2)ÆäËûÈ˲鿴ä¯ÀÀÆ÷µÄÀúÊ·¼Í¼£¬ÄÇô±ðÈ˾ͿÉÒÔÄõ½ÄãµÄÕ˺źÍÃÜÂëÁË£¬³ý´ËÖ®Í⣬ʹÓÃGETÌá½»Êý¾Ý»¹¿ÉÄÜ»áÔì³ÉCross-site request forgery¹¥»÷


    £¨4£©Http get,post,soapЭÒ鶼ÊÇÔÚhttpÉÏÔËÐеÄ

    1
    £©get£ºÇëÇó²ÎÊýÊÇ×÷Ϊһ¸ökey/value¶ÔµÄÐòÁУ¨²éѯ×Ö·û´®£©¸½¼Óµ½URLÉϵÄ

           
    ²éѯ×Ö·û´®µÄ³¤¶ÈÊܵ½webä¯ÀÀÆ÷ºÍweb·þÎñÆ÷µÄÏÞÖÆ£¨ÈçIE×î¶àÖ§³Ö2048¸ö×Ö·û£©£¬²»Êʺϴ«Êä´óÐÍÊý¾Ý¼¯Í¬Ê±£¬ËüºÜ²»°²È«

    2
    £©post£ºÇëÇó²ÎÊýÊÇÔÚhttp±êÌâµÄÒ»¸ö²»Í¬²¿·Ö£¨ÃûΪentity body£©´«ÊäµÄ£¬ÕâÒ»²¿·ÖÓÃÀ´´«Êä±íµ¥ÐÅÏ¢£¬Òò´Ë±ØÐ뽫Content-typeÉèÖÃΪ:application/x-www-form- urlencoded¡£postÉè¼ÆÓÃÀ´Ö§³Öweb´°ÌåÉϵÄÓû§×ֶΣ¬Æä²ÎÊýÒ²ÊÇ×÷Ϊkey/value¶Ô´«Êä¡£

         
    µ«ÊÇ£ºËü²»Ö§³Ö¸´ÔÓÊý¾ÝÀàÐÍ£¬ÒòΪpostûÓж¨Òå´«ÊäÊý¾Ý½á¹¹µÄÓïÒåºÍ¹æÔò¡£

    3
    £©soap£ºÊÇhttp postµÄÒ»¸öרÓð汾£¬×ñÑ­Ò»ÖÖÌØÊâµÄxmlÏûÏ¢¸ñʽ

           Content-type
    ÉèÖÃΪ: text/xml   ÈκÎÊý¾Ý¶¼¿ÉÒÔxml»¯


    Èý HTTPÏìÓ¦

    1
    £®HTTPÏìÓ¦¸ñʽ£º



    <status line>
    <headers>
    <blank line>
    [<response-body>]

    ÔÚÏìÓ¦ÖÐΨһÕæÕýµÄÇø±ðÔÚÓÚµÚÒ»ÐÐÖÐÓÃ״̬ÐÅÏ¢´úÌæÁËÇëÇóÐÅÏ¢¡£×´Ì¬ÐУ¨status line£©Í¨¹ýÌṩһ¸ö״̬ÂëÀ´ËµÃ÷ËùÇëÇóµÄ×ÊÔ´Çé¿ö¡£

         
    HTTP
    ÏìӦʵÀý£º


    HTTP/1.1 200 OK
    Date: Sat, 31 Dec 2005 23:59:59 GMT
    Content-Type: text/html;charset=ISO-8859-1
    Content-Length: 122
    £¼html£¾

    £¼head£¾

    £¼title£¾Wrox Homepage£¼/title£¾

    £¼/head£¾

    £¼body£¾

    £¼!-- body goes here --£¾

    £¼/body£¾

    £¼/html£¾

    2
    £®×î³£ÓõÄ״̬ÂëÓУº


    ¡ô200 (OK): ÕÒµ½Á˸Ã×ÊÔ´£¬²¢ÇÒÒ»ÇÐÕý³£¡£

    ¡ô304 (NOT MODIFIED): ¸Ã×ÊÔ´ÔÚÉÏ´ÎÇëÇóÖ®ºóûÓÐÈκÎÐ޸ġ£Õâͨ³£ÓÃÓÚä¯ÀÀÆ÷µÄ»º´æ»úÖÆ¡£

    ¡ô401 (UNAUTHORIZED): ¿Í»§¶ËÎÞȨ·ÃÎʸÃ×ÊÔ´¡£Õâͨ³£»áʹµÃä¯ÀÀÆ÷ÒªÇóÓû§ÊäÈëÓû§ÃûºÍÃÜÂ룬ÒԵǼµ½·þÎñÆ÷¡£

    ¡ô403 (FORBIDDEN): ¿Í»§¶ËδÄÜ»ñµÃÊÚȨ¡£Õâͨ³£ÊÇÔÚ401Ö®ºóÊäÈëÁ˲»ÕýÈ·µÄÓû§Ãû»òÃÜÂë¡£

    ¡ô404 (NOT FOUND): ÔÚÖ¸¶¨µÄλÖò»´æÔÚËùÉêÇëµÄ×ÊÔ´¡£


    ËÄ ÍêÕûʾÀý£º


    Àý×Ó£º



    HTTP GET

    ·¢ËÍ


    GET /DEMOWebServices2.8/Service.asmx/CancelOrder?UserID=string&PWD=string&OrderConfirmation=string HTTP/1.1
    Host: api.efxnow.com

    »Ø¸´


    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <objPlaceOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
    <Success>boolean</Success>
    <ErrorDescription>string</ErrorDescription>
    <ErrorNumber>int</ErrorNumber>
    <CustomerOrderReference>long</CustomerOrderReference>
    <OrderConfirmation>string</OrderConfirmation>
    <CustomerDealRef>string</CustomerDealRef>
    </objPlaceOrderResponse>



    HTTP POST

    ·¢ËÍ


    POST /DEMOWebServices2.8/Service.asmx/CancelOrder HTTP/1.1
    Host: api.efxnow.com
    Content-Type: application/x-www-form-urlencoded
    Content-Length: length

    UserID=string&PWD=string&OrderConfirmation=string

    »Ø¸´


    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <objPlaceOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
    <Success>boolean</Success>
    <ErrorDescription>string</ErrorDescription>
    <ErrorNumber>int</ErrorNumber>
    <CustomerOrderReference>long</CustomerOrderReference>
    <OrderConfirmation>string</OrderConfirmation>
    <CustomerDealRef>string</CustomerDealRef>
    </objPlaceOrderResponse>



    SOAP 1.2

    ·¢ËÍ


    POST /DEMOWebServices2.8/Service.asmx HTTP/1.1
    Host: api.efxnow.com
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
        <CancelOrder xmlns="https://api.efxnow.com/webservices2.3">
          <UserID>string</UserID>
          <PWD>string</PWD>
          <OrderConfirmation>string</OrderConfirmation>
        </CancelOrder>
    </soap12:Body>
    </soap12:Envelope>

    »Ø¸´


    HTTP/1.1 200 OK
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: length

    <?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
    <soap12:Body>
        <CancelOrderResponse xmlns="https://api.efxnow.com/webservices2.3">
          <CancelOrderResult>
            <Success>boolean</Success>
            <ErrorDescription>string</ErrorDescription>
            <ErrorNumber>int</ErrorNumber>
            <CustomerOrderReference>long</CustomerOrderReference>
            <OrderConfirmation>string</OrderConfirmation>
            <CustomerDealRef>string</CustomerDealRef>
          </CancelOrderResult>
        </CancelOrderResponse>
    </soap12:Body>
    </soap12:Envelope>

    ³ö´¦£ºhttp://blog.csdn.net/gideal_wang/archive/2009/07/02/4316691.aspx

     

     

    ¸½¼þÖÐÓÐÁíÒ»ÎÄÕÂÂÛÊö£º

    http_get_post.rar(981 KB)

Open Toolbar