2016. 3. 30. 16:14ㆍprogramming/asp.net
●Request
사용자가 웹 브라우저를 통해 웹 서버에 페이지를 요구할 때, 웹 브라우저는 웹 페이지를 실행하는 데 필요한 모든 정보를 제공합니다. 서버는 이들 정보를 Request 객체를 통해 얻습니다.
Request 객체의 주요 속성
속성 |
설명 |
PhysicalApplicationPath |
사용자가 요구한 페이지의 물리적 경로 |
ApplicationPath |
물리적 디렉터리에 대응하는 가상 디렉터리 |
Path |
사용자가 요구한 페이지까지 포함하는 가상 경로 |
Url |
사용자가 요구한 전체 URL |
UserHostAddress |
사용자의 IP 주소 |
Browser |
사용자가 사용 중인 웹 브라우저에 대한 정보를 담고 있는 객체 |
Cookies |
컬렉션 객체로 사용자가 보낸 쿠키 정보를 저장 |
QueryString |
GET 방식으로 전송된 페이지 매개변수를 저장 |
QueryString 예시
Request에 존재하는 값을 반환한다.
Key가 존재하지 않는 경우 빈 문자열을 반환한다.
public static string QueryString(string key)
{
HttpContext context = HttpContext.Current;
try
{
if (!context.Request.QueryString[key].Equals(null))
{
return context.Request[key];
}
else
{
return string.Empty;
}
}
catch
{
return string.Empty;
}
}
이 부분에서 SqlInjection Defence 처리는 제외하였습니다.
쿠키(Cookies)
사용자가 웹 사이트를 방문하다 보면 웹 사이트에서 사용자에 대한 정보를 기억하기 위해 사용자의 하드 디스크에설치하는 작은 기록 정보 파일을 일컫는 이를 '쿠키(Cookie)'라고 합니다. 쿠키는 컴퓨터내에서 프로그램처럼 실행될 수 없으며 바이러스를 옮길 수도, 악성코드를 설치할 수도 없지만, 스파이웨어를 통해 유저의 브라우징 행동을 추적하는데에 사용될 수 있고, 누군가의 쿠키를 훔쳐서 해당 사용자의 웹 계정 접근권한을 획득할 수도 있습니다.
세션(Session)
네트워크 환경에서 정보 교환을 하기 위한 논리적인 연결로, 웹 브라우저 마다 하나의 세션이 생성됩니다.
연결이 이루어지면 클라이언트와 서버는 연결에 대한 정보를 갖습니다. 이를 '세션ID(식별자)' 라고 합니다.
ASP.NET은 120비트의 세션 ID를 사용하여 각 세션을 식별합니다.
세션ID는 세션과 관련하여 서버와 클라이언트 사이에 주고받는 유일한 정보로, 누가 본다고 해도 서버에 저장된 내용을 알 수 없습니다. 사용자가 세션ID를 서버에 전달하면, ASP.NET은 대상 세션을 찾습니다. 대상 세션을 통해 이전에 저장한 객체를 검색하고 이를 프로그램에서 사용합니다.
서버에 세션ID를 전달하는 데는 두 가지 방법이 있습니다.
쿠키 사용 : default 로 세션을 사용하면 자동으로 만들어지는 ASP.NET_SessionID라는 이름의 쿠키로 세션 ID가 전달됩니다.
URL에 포함 : 세션 ID를 URL에 포함하여 전달. 쿠키를 지원하지 않는 클라이언트에 사용할 수 있습니다.
ASP.NET의 세션상태(Session State)는 다음과 같은 경우에 유용합니다.
웹 응용프로그램이 쿠키나 쿼리 스트링을 통해 쉽게 저장할 수 없는 복잡한 정보를 저장하고 접근하는 경우
철저한 보안이 요구되는 경우
세션 상태를 이용하면 서버의 메모리에 데이터를 저장할 수 있으며, 저장된 데이터는 사용자에게 전달되지 않기 때문에 좀 더 안전합니다. 그러나 많은 사용자가 서버의 메모리를 사용하면, 응용프로그램의 성능이 저하될 수 있으므로 세션 상태에서 사용 시는 신중을 기해야 합니다.
<ASP.NET 4.0프로그래밍 서적 중 일부 발췌>
쿠키와 세션에 대해 자세한 설명은 다음 글에서....
'programming > asp.net' 카테고리의 다른 글
[ASP.NET] HTTP Error 404.15 - Not Found (0) | 2016.05.04 |
---|---|
Document.all , document.getElementById , (0) | 2016.04.05 |
escape() 함수와 unescape() 함수 (0) | 2016.04.05 |