Windows Server 2003 Resource Kit에는 tinyget이라는 외부 명령어가 있다. tinyget은 명령줄 기반의 HTTP 클라이언트로 웹 브라우징에 사용하기 위한 용도로 제공되는 것이 아니라 디버깅 및 단순 스트레스 테스트를 위해서 사용할 수 있는 프로그램이다.
tinyget을 실행해보면 복잡한 옵션이 있지만, 복잡한 옵션 중에서 화면에 결과물을 보기위한 기본적인 사용법은 다음과 같이 하면 된다.
기본 사용법 : tinyget –srv:[DOMAIN or IP] –uri:[PAHT] –[D or T or H]
예를 들어, www.ntfaq.co.kr 사이트의 결과를 보고 싶다면 다음과 같이 명령어를 사용하면 된다.
C:\> tinyget –srv:www.ntfaq.co.kr –uri:/ –d
위의 예제에 쓰인 옵션을 설명하면 다음과 같다.
- srv : 서버에 접속할 주소로 파일 명까지 포함한 것이 아니라 도메인 명이나 IP만 써야 한다.
- uri : 접속할 경로 및 페이지와 파라메터. 예제에서는 /를 지정하였으므로 기본 페이지를 지정함. 특정 파일 경로와 파일 지정할 때에는 /대신에 다음과 같이 입력하면 된다. /guestbook?page=2
- d : 데이터를 보여 준다. h는 헤더를 보여주며, t를 사용할 시에는 주고 보낸 모든 응답을 보여준다.
하지만, 서버 앞에 L4같은 로드벨런서 장비가 있는 경우에는 원하는 결과를 얻을 수 없다. 예를 들면, tinyget –srv:www.ntfaq.co.kr –uri:/ –d 는 정상적인 NTFAQ Korea 사이트로 표기되지만, tinyget –srv:211.172.252.15 –uri:/ –d 는 원하는 결과가 아니다. 이러한 차이는 호스트 헤더를 통해 웹서비스를 구분하기 때문인데, tinyget에는 –rh(-reqheaders) 를 이용하여 다음과 같이 지정할 수 있다.
C:\> tinyget -srv:211.172.252.15 -uri:/ -d -rh:"Host: www.ntfaq.co.kr\r\n"
-d 옵션을 사용하는 경우, 결과물을 눈으로 보기란 힘들기 때문에 -h를 사용해서 간략화 시키는 방안도 좋지만,
C:\> tinyget -srv:211.172.252.15 -uri:/ -h -rh:"Host: www.ntfaq.co.kr\r\n"
보다 깔끔하게 하기 위해서는 정상일 때 결과값을 지정해두고 오류가 났을 때만 보이도록 설정하는 게 더 깔끔하다.
C:\> tinyget -srv:211.172.252.15 -uri:/ -rh:"Host: www.ntfaq.co.kr\r\n" -status:200
헤더값 체크로 만족스럽지 않다면, 아예 본문에 오류 문자열이 있는지 확인하는 것도 좋다
C:\> tinyget -srv:211.172.252.15 -uri:/ -rh:"Host: www.ntfaq.co.kr\r\n" -testnotcontainstring:장애
이렇게 다양한 옵션을 통해 원하는 결과를 얻을 수 있지만, 이 결과를 어떻게 효과적으로 모니터링할 것인지는 관리자의 몫으로 남겨두겠다.
tinyget을 모니터링 이외에 사용하는 또 하나의 좋은 방안은 ASP.NET이나 JSP로 된 사이트의 경우 접속자가 매우 적거나 시스템을 재부팅한 경우, 첫번째 접속자는 컴파일이 되기 전이므로 컴파일 완료시까지 오류를 만나기 쉬운데 이를 막고자 하는 용도로도 사용하기에 적합하다는 점이다.
출처 : http://www.ntfaq.co.kr/4314