본문 바로가기

[뭘, 이런걸 다?]

[뭘, 이런걸 다?] 이클립스 자바 EE에서 HTTP 프로토콜 메시지 보기

이번주는 경기도 가평 모처의 연수원에서 신입사원 교육을 하고 있습니다. Servlet & JSP를 가르치는 과정입니다만, 바로 웹 개발을 가르치기 보다는 HTTP 프로토콜을 먼저 가르칩니다. 그런데 이왕이면, 말보다 실제 프로토콜의 메시지를 보면 더 재밌어 하지 않을까 하는 생각이 들어 이클립스에서 HTTP 프로토콜 메시지를 보는 방법에 대한 간단 매뉴얼을 만들어 보았습니다. 물론 관련 프로토콜 캡처관련 전문 툴이나 브라우저 플러그인 들이 다수 있지만, 수강생 PC에 이클립스가 이미 설치되어 있고 UI가 간결하다는 점에서 는 이클립스 내장 모니터링 툴도 나쁘지 않다고 판단하였습니다. 내일 교육 과정에서 한번 적용해 보고 괜찮으면 다른 강사들과 공유해 볼 생각입니다. :)

[이클립스에서 HTTP 프로토콜 메시지 보기]

아래 내용은 이클립스 Helios 버전을 기준으로 갈무리 했습니다만, 하위 버전인 Galileo 버전에서도 정상적으로 동작하는걸 확인했습니다. 참! 톰캣은 이클립스에서 미리 설정되어 있어야 겠죠? :)


index.html 이 위와 같다고 가정합니다. (참, 간단하네요~)



! 웹 프로젝트는 또 위와 같다고 가정할게요.



이클립스메뉴 => [Window] => [Pererences] 선택


일일이 찾아가려면 번거로우니까, 필터(filter) 박스에 대고 monitor라고 타이핑 합니다. 그러면 TCP/IP Monitor설정 화면을 바로 찾을 수 있습니다. 우측에서 [Add..]버튼을 눌러서 모니터를 추가해 봅시다.


로컬 모니터링 포트(Local monitoring port)는 모니터링 대상 포트(8080)와 다른 포트로 지정합니다. 일종의 프록시 처리를 하기 위해서입니다. 지금은 8081 포트로 8080 포트를 모니터링 할 예정입니다. 간편하게 사용하기 위해 '자동으로 모니터링 시작(Start monitor automatically)'도 체크한 다음 OK 버튼을 누릅니다.


설정 화면이 위와 같이 되어 있는지 확인해 봅니다.

웹 브라우저에서 접속을 해 볼까요?

그런데 잠깐! 이 때 주의할 점은 모니터링 대상 포트를 직접지정하는 것이 아니라, 모니터가 사용할 포트(지금은 8081포트)를 이용해서 접속해야 합니다. 내부적으로 포트 포워딩(Port forwarding)이 일어나면서HTTP 프로토콜 메시지를 캡쳐하거든요. , 그럼 접속해 봅시다.


웹 브라우저에 정상적으로 메시지가 출력되네요. 현재, 이클립스는 어떤 모습일까요?

 

TCP/IP 모니터 탭이 자동으로 뜬 것을 볼 수 있습니다. 간단한 Request 헤더와Response 헤더의 메시지가 보이고, Response Body도 보이네요. 만약 Response Body가 텍스트로 보이지 않고 웹 브라우저처럼 렌더링 되어 보인다면, 셀렉트 박스가 Byte로 지정되어 있는지 확인해 보세요.


이번엔HTTP 헤더를 자세히 봐 볼까요?


 

TCP/IP모니터 탭의 우측 상단의 역삼각형 모양을 누르면 메뉴가 나타납니다.


 

헤더보기(Show Header)를 선택합니다.

 

 

짜짠!! 이제 HTTP 프로토콜의 메시지 헤더(Header)와 바디(body)를 모두 볼 수 있네요!