웹 브라우저가 서버에 요청을 보낼 때는 엄청 많은 정보를 함께 보내게 됩니다. 이때 요청 정보에는 어떤 것들이 있는지 실습을 통해서 알아보고자 합니다.
Header 값 알아보기
요청이 들어올 때 어떤 정보가 들어오는지 알아봅시다. HeaderServlet 이라는 예제 파일을 하나 만들어서 실습을 진행해 보겠습니다. 클라이언트의 요청은 WAS 가 Request 라는 객체에 담아둔다고 했습니다.
담아둔 객체를 우리는 doGet 메서드의 파라미터로 가지고 들어온 것을 확인할 수 있습니다. 따라서 doGet 메서드 안에서 request 객체에 담긴 정보를 우리는 마음껏 사용할 수 있습니다.
Request 객체가 갖고 있는 정보들 중에 getHeaderNames( ) 라는 메서드가 있습니다. 이 메서드는 헤더에 담긴 모든 헤더 이름을 문자열 Enumeration 객체로 반환해 줍니다. getHeaderNames 메서드를 통해 request 를 통해 넘어온 모든 header의 이름을 headerNames 라는 변수에 담았습니다. header 의 이름을 가지고 해당 header 에 담긴 값을 볼 수 있는 메서드가 Request 에 getHeader( ) 있습니다. 따라서 우리는 Request 의 담긴 Header name 과 Header value 를 모두 꺼내 볼 수 있습니다.
출력된 값을 보겠습니다. host 라는 headerName 에는 localhost:8080 이라는 header value 가 들어있었네요. 이외에도 request 에 담긴 모든 header 의 이름과 각 header 의 담긴 value 값을 살펴볼 수 있습니다. 이렇게 클라이언트가 요청했을 때 가지고 들어온 Header 의 정보를 알아내는 방법을 실습을 통해서 알아보았습니다.