我正在尝试使Java Web服务器将if-modified-since与文件的最后修改时间进行比较。
但是,我不知道如何从客户端获取if-modified-since标头并进行比较。

最佳答案

我不会立即尝试处理特定的标头。如果要从头开始编写Web服务器,则应该编写一个通用的HTTP解析器,该解析器可以处理HTTP请求的每个部分:


请求行


请求方法(GETPOST等)
网址
HTTP版本

零个或多个形式为Name: Value的标头
空行
邮件正文


例如,您可以建立一个类似的类:

class HttpRequest {
    String method;
    URL url;
    String httpVersion;
    Map<String, String> headers;
    byte[] body;
}


由于标头名称不区分大小写,因此建议将map与String.CASE_INSENSITIVE_ORDER一起使用。

一旦可以解析所有标头,然后查找特定标头将是一个简单的任务。如果您有上述课程,那就像查找headers.get("If-Modified-Since")一样容易。

07-26 00:44
查看更多