<%@ page import="java.util.*" %>
<html>
<head>
<title>Header Info</title>
</head>
<body>
<h1>HTTP Request Header Info</h1>
<table border="1" cellpadding="4" cellspacing="0">
<%
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String name = (String)headerNames.nextElement();
String value = request.getHeader(name);
out.print(name + ": " + value + "<br>");
}
%>
</table>
</body>
</html>
요청 헤더 확인용 JSP 예제
위 코드는 현재 요청에 포함된 HTTP 헤더 이름을 request.getHeaderNames()로 순회한 뒤, 각 헤더 값을 request.getHeader(name)으로 가져와 화면에 출력하는 간단한 JSP 예제입니다. 브라우저 종류, 프록시, 인증 방식, 캐시 정책 등에 따라 전달되는 헤더가 달라질 수 있으므로 디버깅할 때 요청이 실제로 어떻게 들어오는지 확인하는 용도로 사용할 수 있습니다.
다만 하나의 헤더 이름에 여러 값이 올 수 있는 경우에는 request.getHeader(name)이 첫 번째 값만 반환할 수 있습니다. 모든 값을 확인해야 한다면 Servlet API의 request.getHeaders(name)를 함께 사용하는 방식으로 확장하는 것이 좋습니다.
확인 방법
- 위 내용을 JSP 파일로 저장한 뒤 서블릿 컨테이너에서 실행합니다.
- 브라우저로 해당 JSP에 접속하면 요청에 포함된 헤더 목록이 출력됩니다.
- 명령줄에서 확인하려면
curl -H "X-Test: hello" URL처럼 임의의 헤더를 추가해 요청한 뒤, 출력 결과에 해당 헤더가 포함되는지 확인할 수 있습니다.