RequestHeaderServlet
package com.haenin.request;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
@WebServlet("/headers")
public class RequestHeaderServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/* 설명.
* 요청 시 전달되는 헤더라는 것이 가진 정보는 전통적으로 4가지 카테고리로 구분된다.
* 설명.
* 1. General Header
* : 요청 및 응답 모두에 적용되지만 최종적으로는 body에 전송되는 것과는 관련이 없는 헤더이다.
* 2. Request Header
* : 패치 될 리소스나 클라이언트 자체에 대한 상세 정보를 포함하는 헤더이다.
* 3. Response Header
* : 요청 위치나 서버 응답에 대한 부가적인 정보를 갖는 헤더이다.
* 4. Entity Header
* : 컨텐츠 길이나 MIME 타입과 같은 엔티티 바디에 대한 상세 정보를 포함하는 헤더이다.
* ( GET 요청은 해당되지 않음(body의 컨텐츠를 나타내기 때문))
* (Content-Length, Content-Type, Contente-Language, Content-Encoding)
* */
Enumeration<String> headerNames = req.getHeaderNames();
while (headerNames.hasMoreElements()){
System.out.println(headerNames.nextElement());
}
}
}
index.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<h1>Request Header</h1>
<a href="headers">
요청 헤더 값 출력해 보기(request header)
</a>
</body>
</html>