diff --git conf/nutch-default.xml conf/nutch-default.xml
index 99fdfb5..1388acf 100644
--- conf/nutch-default.xml
+++ conf/nutch-default.xml
@@ -254,6 +254,16 @@
   </description>
 </property>
 
+<property>
+  <name>http.store.responsetime</name>
+  <value>true</value>
+  <description>Enables us to record the response time of the 
+  host which is the time period between start connection to end 
+  connection of a pages host. The response time in milliseconds
+  is stored in CrawlDb in CrawlDatum's meta data under key &quot;_rs_&quot;
+  </description>
+</property>
+
 <!-- FTP properties -->
 
 <property>
diff --git src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java
index ca21e2b..5754670 100644
--- src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java
+++ src/plugin/lib-http/src/java/org/apache/nutch/protocol/http/api/HttpBase.java
@@ -37,6 +37,7 @@ import org.apache.nutch.util.DeflateUtils;
 
 // 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 @@ import crawlercommons.robots.BaseRobotRules;
  */
 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,12 @@ public abstract class HttpBase implements Protocol {
   
   /** Do we use HTTP/1.1? */
   protected boolean useHttp11 = false;
+
+  /**
+   * Record response time in CrawlDatum's meta data, see property
+   * http.store.responsetime.
+   */
+  protected boolean responseTime = true;    
   
   /** Skip page if Crawl-Delay longer than this value. */
   protected long maxCrawlDelay = -1L;
@@ -123,6 +131,7 @@ public abstract class HttpBase implements Protocol {
       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 +146,15 @@ public abstract class HttpBase implements Protocol {
     String urlString = url.toString();
     try {
       URL u = new URL(urlString);
+      
+      long startTime = System.currentTimeMillis();
       Response response = getResponse(u, datum, false); // make a request
       
+      if(this.responseTime) {
+        int elapsedTime = (int) (System.currentTimeMillis() - startTime);
+        datum.getMetaData().put(RESPONSE_TIME, new IntWritable(elapsedTime));
+      }
+      
       int code = response.getCode();
       byte[] content = response.getContent();
       Content c = new Content(u.toString(), u.toString(),
