1. Request 란?
Request
개체는 System.Web namespace에 존재합니다. 이것은 HttpRequest class에 의해 구현되는 개체입니다.
예제를 통해 이해하는 것이 가장 빠르기에 Request 개체를 이용한 예제를 만들어 보겠습니다.

Request 를 이용한 정보 알아내기

아래의 순서를 보고 따라합니다.
1. Visual Web Developer 2005를 실행
2. 새로운 프로젝트를 생성 (이전의 것이 존재한다면 그것을 오픈)
3. 새로운 웹 폼 페이지를 생성
4. Label 컨트롤을 웹 폼 페이지에 드레그 한다.
5. 코드 비하인드 페이지로 이동한다.
6. Page_Load 부분에 다음의 코드를 입력합니다.
 
void Page_Load(object sender, EventArgs e)
{

   string strInfo = "";
   strInfo += "브라우저정보 : " + Request.Browser.Browser + "<br>";
   strInfo += "컨텐츠인코딩 : " + Request.ContentEncoding.EncodingName + "<br>";
   strInfo += "전송방식 : " + Request.HttpMethod + "<br>";
   strInfo += "서버측물리적경로 : " + Request.PhysicalApplicationPath + "<br>";
   strInfo += "클라이언트가 보낸 데이터의 총 크기 : " + Request.ContentLength + "<br>";
   strInfo += "클라이언트가 보낸 데이터의 총 바이트 : " + Request.TotalBytes + "<br>";
   strInfo += "현 파일의 완전한 경로 : " + Request.Url + "<br>";
   strInfo += "현재 URL 이전 URL : " + Request.UrlReferrer + "<br>";
   strInfo += "현재 사용자 접속 IP : " + Request.UserHostAddress + "<br>";


   lblView.Text = strInfo;

}

7. 저장한 후 Solution Explorer을 통해서 View in Browser 를 실행합니다.

[실행결과]

따로 설명할 것은 없습니다. 보는 바와 같이 정해진 속성값에 따라 출력물을 만들어 내기 때문입니다.


2. Response 란?
Response는 System.Web namespace 안에 있으며, HttpResponse class 에 의해 구현되는 개체 입니다.
서버에서 클라이언트에게로 응답을 보내는 역할을 하는 개체이며, 클라이언트 브라우저에 output 되는 데이터를 제어하기 위해 사용합니다.

쿠키를 이용한 Response 사용 예
HttpCookie MyCookie = new HttpCookie("LastVisit");
DateTime now = DateTime.Now;

MyCookie.Value = now.ToString();
MyCookie.Expires = now.AddHours(1);

Response.Cookies.Add(MyCookie);

위의 코드를 설명하자면
1. 먼저 쿠키 개체를 생성합니다.
2. now라는 변수에 현재 시간을 저장합니다.
3. Expires 속성에 현재 시간 + 1을 만료 시간으로 지정합니다. 그리고 그것을 add()로 쿠키에 저장합니다.

간단합니다.
사실 닷넷에서는 Response 개체는 이전 보다 많이 사용되지 않습니다.
설명할 것이 그다지 많지 않은 관계로 다음으로 넘어 가겠습니다.

마지막으로 Browser개체를 간략하게 다뤄 보겠습니다.
이것 역시 예제를 통해 보도록 하겠습니다.
System.Web.HttpBrowserCapabilities browser = Request.Browser;
string s = "Browser Capabilities\n"
+ "Type = " + browser.Type + "\n"
+ "Name = " + browser.Browser + "\n"
+ "Version = " + browser.Version + "\n"
+ "Major Version = " + browser.MajorVersion + "\n"
+ "Minor Version = " + browser.MinorVersion + "\n"
+ "Platform = " + browser.Platform + "\n"
+ "Is Beta = " + browser.Beta + "\n"
+ "Is Crawler = " + browser.Crawler + "\n"
+ "Is AOL = " + browser.AOL + "\n"
+ "Is Win16 = " + browser.Win16 + "\n"
+ "Is Win32 = " + browser.Win32 + "\n"
+ "Supports Frames = " + browser.Frames + "\n"
+ "Supports Tables = " + browser.Tables + "\n"
+ "Supports Cookies = " + browser.Cookies + "\n"
+ "Supports VBScript = " + browser.VBScript + "\n"
+ "Supports JavaScript = " + browser.JavaScript + "\n"
+ "Supports Java Applets = " + browser.JavaApplets + "\n"
+ "Supports ActiveX Controls = " + browser.ActiveXControls + "\n";
TextBox1.Text = s;

[결과화면]


위의 소스코드를 사용하여 브라우저의 많은 특징을 볼 수 있습니다. 사실 MSIE가 클라이언트의 많은 부분을 차지하지만 FireFox, Avant, 모질라 같은 브라우저도 클라이언트는 사용하기 때문에 프로그램 작성시에는 클라이언트 브라우저를 체크하여 예기치 못한 상황에 대응하는 코드를 만들어 줘야 합니다. Browser 개체는 이런 경우에 유용하게 사용되어 질 수 있을 것입니다.

+ Recent posts