Я бы не стал прыгать, пытаясь обработать конкретный заголовок. Если вы пишете веб-сервер с нуля, вам следует написать обобщенный синтаксический анализатор 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")
.