logo
Ответы к экзамену по ПИИ

Заголовки http-запросов и ответов. Назначение. Принципы применения. Заголовки запроса

Заголовки http-запроса представляют собой предшествующие телу запроса пары «имя-значение», которые формируются клиентом web-приложения (браузером) и пересылаются серверу. В общем случае одному заголовку может соответствовать несколько значений.

В простых сервлетах или jsp-странице разработчику доступны только три метода для работы с заголовками запроса: getHeader(получить первое значение заголовка по егоимени), setHeaders (получить все значения заголовка по имени), и getHeaderNames (получить все имена заголовков запроса).

Если же запрос формируется с помощью классов пакета httpclient (раздел 3.4), тотодaddRequestHeader объекта типаGetMethod(илиPostMethod) позволяет добавить собственные заголовки запроса, как это сделано в примере.

protected void doGet(HttpServletRequest rq, HttpServletResponse rs)

throws ServletException, IOException {

HttpClient hc = new HttpClient();

String uri = "http://localhost:8080/ANaive/Jjj";

GetMethod gm = new GetMethod(uri);

gm.addRequestHeader("MyHeader1", "MyHeadetValue1");

gm.addRequestHeader("MyHeader2", "MyHeadetValue2");

gm.addRequestHeader("MyHeader3", "MyHeadetValue3");

hc.executeMethod(gm);

rs.setContentType("text/html");

InOutServlet inout = new InOutServlet(rs.getOutputStream(),

gm.getResponseBodyAsStream());

inout.perform();

}

На представлен фрагмент сервлета, формирующего три дополнительных заголовка запроса с именами MyHeader1, MyHeader2, MyHeader3. В данном примере все значения заголовком имеют строковый формат.

Кроме строкового значения заголовков запроса могут быть целочисленного типа или типа Date. В этих случаях можно воспользоваться двумя другими разновидностями метода getHeader:getIntHeaderилиgetDateHeader.