[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [onionoo/master] Implement caching using Last-Modified/If-Modified-Since headers.
commit 163ee8c8472ce13e6e1e589d245b102c7d684a67
Author: Karsten Loesing <karsten.loesing@xxxxxxx>
Date: Fri Mar 9 13:56:35 2012 +0100
Implement caching using Last-Modified/If-Modified-Since headers.
---
src/org/torproject/onionoo/Main.java | 16 ++++++++--------
src/org/torproject/onionoo/ResourceServlet.java | 7 ++++++-
web/index.html | 8 +++-----
3 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/src/org/torproject/onionoo/Main.java b/src/org/torproject/onionoo/Main.java
index 8c4497d..20367d2 100644
--- a/src/org/torproject/onionoo/Main.java
+++ b/src/org/torproject/onionoo/Main.java
@@ -17,14 +17,6 @@ public class Main {
cn.setBridgeRunningBits();
cn.writeRelaySearchDataFile();
- printStatus("Updating summary data.");
- SummaryDataWriter sdw = new SummaryDataWriter();
- sdw.setLastValidAfterMillis(cn.getLastValidAfterMillis());
- sdw.setLastPublishedMillis(cn.getLastPublishedMillis());
- sdw.setCurrentRelays(cn.getCurrentRelays());
- sdw.setCurrentBridges(cn.getCurrentBridges());
- sdw.writeSummaryDataFile();
-
printStatus("Updating detail data.");
DetailDataWriter ddw = new DetailDataWriter();
ddw.setCurrentRelays(cn.getCurrentRelays());
@@ -42,6 +34,14 @@ public class Main {
bdw.readExtraInfoDescriptors();
bdw.deleteObsoleteBandwidthFiles();
+ printStatus("Updating summary data.");
+ SummaryDataWriter sdw = new SummaryDataWriter();
+ sdw.setLastValidAfterMillis(cn.getLastValidAfterMillis());
+ sdw.setLastPublishedMillis(cn.getLastPublishedMillis());
+ sdw.setCurrentRelays(cn.getCurrentRelays());
+ sdw.setCurrentBridges(cn.getCurrentBridges());
+ sdw.writeSummaryDataFile();
+
printStatus("Terminating.");
}
diff --git a/src/org/torproject/onionoo/ResourceServlet.java b/src/org/torproject/onionoo/ResourceServlet.java
index 016c9ef..b28eca1 100644
--- a/src/org/torproject/onionoo/ResourceServlet.java
+++ b/src/org/torproject/onionoo/ResourceServlet.java
@@ -26,7 +26,7 @@ public class ResourceServlet extends HttpServlet {
this.readSummaryFile();
}
- long summaryFileLastModified = 0L;
+ long summaryFileLastModified = -1L;
boolean readSummaryFile = false;
private String relaysPublishedLine = null, bridgesPublishedLine = null;
private List<String> relayLines = new ArrayList<String>(),
@@ -69,6 +69,11 @@ public class ResourceServlet extends HttpServlet {
this.readSummaryFile = true;
}
+ public long getLastModified(HttpServletRequest request) {
+ this.readSummaryFile();
+ return this.summaryFileLastModified;
+ }
+
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
diff --git a/web/index.html b/web/index.html
index 27bb094..ff781f6 100755
--- a/web/index.html
+++ b/web/index.html
@@ -16,11 +16,9 @@ responds with JSON-formatted replies.</p>
gzip"</i> header in their requests and handle gzip-compressed responses.
Only requests starting at a certain size will be compressed by the
server.</li>
-<li><b>Caching:</b> Clients should cache all responses for up to five
-minutes.
-A better caching strategy may be employed in the future that will be based
-on the server's information when new data is expected to be
-available.</li>
+<li><b>Caching:</b> Clients should make use of the <i>"Last-Modified"</i>
+header of responses and include that timestamp in a
+<i>"If-Modified-Since"</i> header of subsequent requests.</li>
<li><b>Protocol changes:</b> There are plenty of reasons why we may have
to change the protocol described here.
Clients should be able to handle all valid JSON responses, ignoring
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits