code: public void filter(Map<String, String> output, String key, String value,
  			ResultURIConverter uriConverter, CaptureSearchResult result) {
  
  		String keyUp = key.toUpperCase();
  
  		// first stick it in as-is, or with prefix, then maybe we'll overwrite
  		// with the later logic.
  		if (dropHeaders.contains(keyUp))
  			preserve(output, key, value);
  		else
  			preserveAlways(output, key, value);
  
  		// rewrite Location header URLs
  		if(rewriteHeaders.contains(keyUp)) {
  			String baseUrl = result.getOriginalUrl();
  			String cd = result.getCaptureTimestamp();
  			// by the spec, these should be absolute already, but just in case:
  			String u = UrlOperations.resolveUrl(baseUrl, value);
  			output.put(key, uriConverter.makeReplayURI(cd,u));
  		} else if(passThroughHeaders.contains(keyUp)) {
  			// let's leave this one as-is:
  			output.put(key,value);
  		}
  	}
docs: /* (non-Javadoc)
  @see org.archive.wayback.replay.HttpHeaderProcessor#filter(java.util.Map, java.lang.String, java.lang.String, org.archive.wayback.ResultURIConverter, org.archive.wayback.core.CaptureSearchResult)