0

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

4

1 回答 1

1

我不会直接尝试处理特定的标头。如果您正在从头开始编写 Web 服务器,那么您应该编写一个通用的 HTTP 解析器来处理 HTTP 请求的每个部分:

  • 请求行
    • 请求方法(GET,POST等)
    • 网址
    • HTTP 版本
  • 表单的零个或多个标题Name: Value
  • 一个空行
  • 邮件正文

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

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

由于标题名称不区分大小写,我建议使用带有String.CASE_INSENSITIVE_ORDER.

一旦您可以解析所有标头,而不是寻找特定标头,这将是一项简单的任务。如果你有上面的课程,它就像查找一样容易headers.get("If-Modified-Since")

于 2020-04-21T18:04:49.890 回答