Java веб-сервер сравнивает if-updated-Since с последним измененным - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь создать Java веб-сервер, который будет сравнивать if-Modified-Since с последним измененным файлом. Однако я не знаю, как получить от клиента заголовок if-updated-Since и выполнить сравнение.

1 Ответ

1 голос
/ 21 апреля 2020

Я бы не стал прыгать, пытаясь обработать конкретный заголовок. Если вы пишете веб-сервер с нуля, вам следует написать обобщенный синтаксический анализатор HTTP c, который может обрабатывать каждую часть HTTP-запроса:

  • Строка запроса
    • Метод запроса (GET, POST, et c.)
    • URL
    • 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").

...