|
본 문서에서는 클라이언트(Client)의 요청(Request)을 ASP.NET이 어떻게 처리하고 그 구조가 어떠한 형태로 이루어져 있는지 대략적으로 살펴보게 됩니다.
ASP.NET은 클라이언트가 요청한 페이지(Page)를 컴파일하고 처리하여 요청에 대한 응답(Response)을 하기까지 몇 가지의 .NET 컴포넌트(.NET Component)들과 상호 작용을 하며, 많은 이벤트(Event)들을 발생시킵니다.
클라이언트는 웹 서버(일반적으로 IIS; Internet Information Services)로 ASP.NET 요청을 합니다.
기본적으로 IIS 웹 서버는 모든 ASP.NET 요청과 응답을 aspnet_isapi.dll 이라는 파일명을 가진 ASP.NET ISAPI(Internet Server Application Programming Interface) 익스텐션(Extension)을 통해 처리합니다.
HttpRuntime .NET 컴포넌트는 HttpContext 클래스 인스턴스를 생성하여 요청에 대한 모든 정보를 HttpRequest 클래스 인스턴스로, 응답에 대한 모든 정보를 HttpResponse 클래스 인스턴스로 생성, 초기화(Initialization) 합니다.
MSDN의 설명문을 인용하자면,
| The HttpContext class contains objects that are specific to the current application request, such as the HttpRequest and HttpResponse objects. The HttpRequest object contains information about the current request, including cookies and browser information. The HttpResponse object contains the response that is sent to the client, including all rendered output and cookies. |
예를 들어, 클라이언트의 브라우저(Browser) 버전이나 운영체제(OS ;Operating System) 정보, 쿠키(Cookie), IP주소(IP Address) 등과 같이 요청을 한 클라이언트에 대한 정보는 모두 HttpRequest 클래스를 통해서 다룰 수 있고, 요청 처리 후 클라이언트에 보낸 요청 처리 결과, 웹 서버에서 생성한 쿠키 정보 등은 모두 HttpResponse 클래스를 통해서 다룰 수 있습니다.
일반적으로, 개발시 ASP.NET 구문에서 HttpRequest 클래스 인스턴스는 'Request'로, HttpResponse 클래스 인스턴스는 'Response'로 접근합니다.
자주 사용하는 다음의 ASP.NET 구문을 간단하게 살펴보십시오.
| HttpRequest |
클라이언트 IP 주소 접근 |
Request.ServerVariables["REMOTE_ADDR"].ToString() |
| 브라우저 쿠키 접근 |
Request.Cookies |
| 쿼리 문자열 접근 |
Request.QueryString |
| 양식 데이터 접근 |
Request.Form |
| 요청 URL 정보 접근 |
Request.Url |
| HttpResponse |
웹 페이지 캐시 접근 |
Response.Cache |
| 서버 응답 쿠키 접근 |
Response.Cookies |
| 서버 응답 헤더 정보 접근 |
Response.Headers |
| 서버 응답 스트림(stream) 접근 |
Response.Output |
| 서버 응답 인코딩 |
Response.ContentEncoding |
예시와 같이 ASP.NET 구문에서는 'HttpRequest', 'HttpResponse' 클래스에 대한 각 인스턴스를 'Request.', 'Response.'와 같은 형태로 접근하여 필요한 속성(property)이나 메소드(method)를 얻거나 호출합니다.
구문상으로는 이러한 형태를 띄게 되지만 실제적으로는 ASP.NET 프로세스 내에 'System.Web.HttpRequest' 클래스 인스턴스와 'System.Web.HttpResponse' 클래스 인스턴스가 각각 생성되어 할당된 것입니다.
물론, 필요한 경우 개발자가 코딩시 임의로 다른 이름을 가진 'HttpRequest', 'HttpResponse' 클래스 인스턴스를 생성하고 다룰 수 있습니다.
보다 많은 'HttpRequest'와 'HttpResponse' 클래스의 각각 속성 및 메서드 등의 멤버 요소를 살펴보려면 MSDN - .NET 클래스 라이브러리 : HttpRequest 클래스 문서와 MSDN - .NET 클래스 라이브러리 : HttpResponse 클래스 문서를 참고하십시오.
|
- 작성자 / 게시자 Publisher : Essayer (http://www.essayer7.com)
- 문서언어 Language : 한국어 Korean
- 문서일자 : 2007년 03월 23일 (대한민국 표준시 GMT+09:00)
- 1차 수정 : 2008년 11월 25일 (대한민국 표준시 GMT+09:00)
- 2차 수정 : 2009년 01월 05일 (대한민국 표준시 GMT+09:00)
- 문서버전 : 1.2.1741
- 적용범위 : Microsoft .NET Framework / ASP.NET 3.5
- 저작권 정보 :
- 본 문서의 작성 권한 및 저작권은 작성자 및 게시자에게 있습니다.
- 본 문서에 일부 사용, 인용된 기술적, 문헌적 내용에 대한 저작권은 해당 저작권자에게 있습니다.
- 본 문서에 대한 의견 및 잘못된 정보에 대한 이의 제기 사항 등 여러분의 의견을 제안해주시기 바랍니다.
게시자는 여러분의 의견을 소중하게 생각합니다.
이의 제기를 할 경우에는 보다 정확한 정보 제공을 위해 객관적 근거 자료를 제시하면서 제기하여 주실 것을 권장합니다.
- 본 문서에 사용된 일부 요소(이미지, 사운드, 동영상, 기타 첨부 문서 등)의 저작권은 해당 저작권자가 소유하고 있습니다.
따라서, 문서의 무단 복제 및 전제, 변형 게시를 금지하며 이런 행위로 인해 발생되는 모든 법적 불이익 및 사건에 대한 모든 책임은 무단 행위자 본인에게 있음을 알려드립니다.
Copyright© 2008 ~ 2009 All rights NOT reserved. 일부 권한 소유. 무단 복사 및 수정 금지 / 출처 명시 없는 재배포 금지 |