diff --git a/conf/nutch-default.xml b/conf/nutch-default.xml
index 99fdfb5..ab76c2f 100644
--- a/conf/nutch-default.xml
+++ b/conf/nutch-default.xml
@@ -254,6 +254,13 @@
   </description>
 </property>
 
+<property>
+  <name>http.store.responsetime</name>
+  <value>true</value>
+  <description>Enables us to record the response time of the 
+  host which is fetch a page from start connection to end connection.</description>
+</property>
+
 <!-- FTP properties -->
 
 <property>
diff --git a/src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java b/src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java
index ca21e2b..7bc3d9d 100644
--- a/src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java
+++ b/src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java
@@ -37,6 +37,7 @@
 
 // Hadoop imports
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
 // crawler-commons imports
@@ -47,7 +48,8 @@
  */
 public abstract class HttpBase implements Protocol {
   
-  
+  public static final Text RESPONSE_TIME = new Text("_rs_");
+
   public static final int BUFFER_SIZE = 8 * 1024;
   
   private static final byte[] EMPTY_CONTENT = new byte[0];
@@ -92,6 +94,9 @@
   
   /** Do we use HTTP/1.1? */
   protected boolean useHttp11 = false;
+
+  /** Response Time */
+  protected boolean responseTime = true;    
   
   /** Skip page if Crawl-Delay longer than this value. */
   protected long maxCrawlDelay = -1L;
@@ -123,6 +128,7 @@
       this.accept = conf.get("http.accept", accept);
       // backward-compatible default setting
       this.useHttp11 = conf.getBoolean("http.useHttp11", false);
+      this.responseTime = conf.getBoolean("http.store.responsetime", true);
       this.robots.setConf(conf);
       logConf();
   }
@@ -137,8 +143,16 @@
     String urlString = url.toString();
     try {
       URL u = new URL(urlString);
+      
+      long startTime = System.currentTimeMillis();
       Response response = getResponse(u, datum, false); // make a request
       
+      int elapsedTime =(int) (System.currentTimeMillis() - startTime);
+      
+      if(this.responseTime) {
+        datum.getMetaData().put(RESPONSE_TIME, new IntWritable(elapsedTime));
+      }
+      
       int code = response.getCode();
       byte[] content = response.getContent();
       Content c = new Content(u.toString(), u.toString(),