我正在尝试制作一个 Java Web 服务器,它将 if-modified-since 与文件的最后修改进行比较。但是,我不知道如何从客户端获取 if-modified-since 标头并进行比较。
问问题
125 次
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 回答