ASP 를 해석합니다. 넷의 네 가지 상태.

이러한 상태의 원칙은 네트워크 개발에 매우 중요합니다. 이제 자세히 설명하겠습니다.

뷰 상태 뷰 상태가 바로 옆에 있습니다. 여러분이 ASP NET 에 관심을 가지고 있는지 모르겠습니다. 그것은 서비스 처리 이벤트를 기반으로 합니다. 서버가 이벤트를 처리한 후 이 양식으로 돌아오면 보기 상태가 없으면 원시 데이터가 존재하지 않습니다. 예를 들어, 회원으로 등록해야 하는 웹사이트가 있는데, 정보를 기입할 때 (일반적으로 페이지는 다른 곳으로 이동함) 여기에 문제를 설명하도록 하겠습니다. 원래 페이지로 돌아가서 계속 진행합니다. 보기 상태가 없으면 이전에 기입한 모든 데이터가 없습니다. 뷰 상태가 있는 경우 원시 데이터는 여전히 시도 중이며 계층 검증과 같은 특정 상황에서 유용합니다.

그럼 네트는 어떻게 계속 시도할까요? 여기서 Microsoft 는 브라우저에서 웹 페이지의 소스 코드를 여는 특별한 방법을 사용합니다. 웹 페이지를 편집할 때 추가하지 않은 HTML 컨트롤을 찾을 수 있습니다.

형식은 이렇습니다.

& lt input type = hidden name = _ viewstate id = _ viewstate value = 일부 암호화 값/> 이것은 NET 이 자동으로 너에게 추가한 것이고, 뷰 상태 실현의 공신이기도 하다. 이 공간은 숨겨져 있기 때문에 페이지의 레이아웃을 손상시키지 않습니다. 공백 값은 각 공백과 대비되는 데이터 (상태) 입니다. 이 데이터는 해시 함수를 통해 암호화됩니다. 이것은 안전상의 이유로 한 것이다. 웹 페이지가 제출되면 브라우저는 먼저 현재 웹 페이지의 다양한 상태 (컨트롤 및 컨트롤의 데이터 포함) 를 이 HTML 필드에 저장하고, 웹 페이지가 다시 브라우저로 돌아오면 자동으로 해당 상태를 웹 페이지로 반환하여 웹 페이지가 상태를 복원합니다.

다음은 뷰 상태에 주의해야 할 문제입니다.

보기 상태는 이 페이지와 서버 사이에서만 유지 관리할 수 있으며, 페이지 간에는 유지 관리할 수 없습니다. 기본적으로 거의 모든 ASP NET 컨트롤에는 뷰 상태를 유지하는 기능이 있습니다.

컨디션에는 많은 장점이 있지만, 좋은 기술을 포함하여 세상의 모든 것에는 양면성이 있다. (아리스토텔레스, 니코마코스 윤리학, 지혜명언) 첫째, 안전합니다. 데이터가 암호화되었지만 해커의 아이언 캐릭터에게는 안전하지 않다. 셋째, 페이지에 수백 개의 레코드가 포함되어 있다면 페이지 로드 속도에 영향을 줄 것이라고 생각할 수 있습니다.

적용 상태: 적용 객체는 적용되는 전역 객체입니다.): 적용을 저장하는 전역 리소스를 적용합니다. 그 본질은 사용자가 가상 디렉터리에서 리소스를 처음 요청할 때 생성되는 HttpapplicationState 클래스의 인스턴스입니다. 즉, 웹 사이트가 인터넷에 처음 게시되었을 때 정확히 한 사용자가 가상 디렉터리 리소스에 액세스하므로 Application 객체는 리소스와 응용 프로그램 사이에 버퍼를 만들었습니다.

응용 프로그램 상태는 웹 사이트가 실행 중일 때만 존재합니다. 응용 프로그램이 시작되거나 서버가 종료되면 (더 나쁜 것은 서버 충돌) 응용 프로그램 상태에 저장된 데이터가 손실되고 손상될 수 있으므로 영구적으로 보존해야 하는 리소스를 데이터베이스에 보관하는 것이 좋습니다.

응용 프로그램 객체의 몇 가지 작동 방법을 소개합니다.

물론 Application 객체는 가장 고전적인 키-값 쌍 사전 메서드로 정의됩니다. 여기서 키는 Application 객체 이름 값을 나타내는 문자열이고 값은 HTML CSS SQL 과 같은 모든 유형의 데이터일 수 있습니다.

적용 [소스] = 특수 소스 Stringmessage = application [source] tostring ();

응용 프로그램에 저장된 객체를 추가 및 제거합니다.

추가 적용 (소스 특수 소스);

응용 프로그램 삭제 (소스);

어려운 작업을 해서 응용 프로그램의 모든 대상을 초청해 봅시다.

응용 프로그램 지우기 ();

또는 application removeall ();

정보 공유는 당연히 문제 자원의 동시 경쟁으로 이어질 수 있다. 물론 이러한 문제의 해결은 잠금에 달려 있다.

Application Lock()// 다른 프로세스의 자원을 잠급니다.

함수 (응용 프로그램 [소스]); //응용 프로그램 객체에 대한 몇 가지 작업

잠금 해제 적용 (); //잠금 해제

세션 상태: session 객체는 개별 사용자의 상태를 저장하는 데 사용됩니다. 웹 사이트에서 새로 액세스하는 각 사용자는 자체 세션 객체를 생성합니다. 이 세션 개체는 서버측에서 관리되며 바인딩된 사용자에게만 서비스될 수 있습니다. 다른 사용자도 이 사이트를 방문하면, 그도 자신의 세션 개체를 가지고 있다. 두 사용자의 세션 개체 이름이 같더라도 * * * * 할 수 없습니다. 동일한 세션 객체를 공유하는 것은 다릅니다. 실제로 Session 객체는 HttpSessionState 클래스의 인스턴스이며 많은 속성과 메서드가 있습니다. 여러분 한번 보세요, 여기서는 자세히 설명하지 않겠습니다.

단지 몇 가지 예일 뿐이다.

세션 [소스] = 특수 소스; Stringmessage = session [source] tostring (); 응용 프로그램 상태는 웹 사이트에서 항상 사용할 수 있습니다. 우리는 그물 프레임 워크의 내부 메커니즘에 관심이 없습니다. 대화 대상을 살펴 보겠습니다. Machine config 구성 파일에서 세션 설정이 시작되었기 때문에 추가 단계 없이 사용할 수 있습니다. 그럼에도 불구하고, 우리는 여전히 기계 구성과 응용의 몇 가지 원리와 본질을 이해해야 한다. Web config 의 설정에 따라 세션 객체의 시작 또는 종료 여부가 결정됩니다. 물론, 필요할 때까지 미루고 싶다면, 시동을 걸 수도 있다. 페이지 수준에서 설정할 수 있습니다.

//이 명령문의 역할은 세션 상태를 이 페이지에서 사용할 수 없다는 것입니다. 세션 개체에는 세션 개체의 주기를 설정하는 시간 초과 속성이 있습니다. 기본값은 분 단위입니다. 유효 시간 내에 서버에 연결되지 않으면 세션에 대한 모든 설정이 유효하지 않게 됩니다. 세션 객체를 종료해야 하는 경우 above () 메서드를 사용할 수 있습니다.

나는 회화가 매우 중요하다는 것을 잊을 뻔했다.

Session 의 키워드는 대/소문자를 구분하지 않으므로 case 를 사용하여 session 변수를 구분하지 마십시오. 즉 Session[ source] 와 Session[ SOURCE] 는 동일합니다. 그 중 하나를 삭제하면 예상치 못한 결과가 나타납니다.

쿠키 상태: 쿠키 상태는 사용자 자원의 상태를 저장하는 데 사용됩니다. Session 과는 달리 브라우저에 저장되며 일반적으로 바이트 이하의 정보만 포함할 수 있습니다 (일부 최신 브라우저는 I 바이트에 도달할 수 있음). ASP NET 에서 세션 객체와 쿠키 객체가 결합되어 사용자를 식별합니다. 사용자가 사이트에 접속하기 시작할 때마다 시스템은 메모리 블록에 해당 사용자와 관련된 Session 객체를 자동으로 만들고, 사용자 ID 를 저장하고 브라우저에 현재 사용자와 고유한 연결을 저장하는 쿠키 객체를 만들어 사용자가 다음에 해당 사이트에 액세스할 때 사용자의 TD 를 제출하도록 합니다. 즉, 쿠키와 세션을 비교하여 원래 세션 상태를 정확하게 복원할 수 있습니다. 이는 무상태형 프로토콜 Http 조건에서 사용자 상태를 유지하는 방법입니다.

쿠키를 브라우저에 쓰는 방식은 이렇습니다. 예를 들면.

Http 쿠키 쿠키 = new http 쿠키 (사용자 이름 id); //쿠키 객체를 만들고 쿠키 value = username id//쿠키가 이미 있는 경우 이렇게 할당할 수 있습니다.

쿠키 expires = datetime now+timespan; //쿠키의 주기를 설정합니다.

다음은 TimeSpan 클래스의 인스턴스입니다. 쿠키의 기본 시간은 분입니다.

응답 쿠키 추가 (쿠키); //브라우저에 쿠키 쓰기

Http 쿠키 쿠키 = 요청 쿠키 [쿠키]; //쿠키 읽기

Lishi Xinzhi/article/program/net/201311//kloc-0