권장 : ASP 팁 : 요청 컬렉션 사용 효율성 향상 값을 추출하기 위해 ASP 컬렉션에 액세스하는 것은 시간이 많이 걸리고 자원 소비 프로세스입니다. 이 작업에는 관련 세트에 대한 일련의 검색이 포함되어 있으므로 로컬 변수에 액세스하는 것보다 훨씬 느립니다. 따라서 페이지에서 요청 수집의 값을 여러 번 사용하려는 경우
요청 및 응답은 ASP가 제공하는 가장 일반적으로 사용되는 두 가지 내장 객체입니다. 브라우저 (또는 기타 사용자 에이전트)와 웹 서버 사이에서 요청 및 응답에서 발생하는 정보 교환은 ASP의 두 개의 내장 객체 (요청 및 응답 개체)를 통해 액세스하고 관리 할 수 있습니다.
ASP 페이지에서 수행되는 거의 모든 작업은이 두 객체에 대한 액세스가 필요합니다. 이 두 객체를 사용하면 페이지의 효율성과 신뢰성에 영향을 미칩니다. 물론 주요 목적은 사용자가 서버로 다시 전송 된 값에 액세스하는 것입니다. 예를 들어, 두 개체 모두 클라이언트 컴퓨터에 저장된 쿠키를 사용할 수 있습니다.
따라서 컨텐츠를 두 개의 독립적 인 부분 (각 객체의 일부)으로 나누고 먼저 클라이언트와 서버 간의 정보 교환으로 시작한 다음 각 객체를 연구합니다.
연구 내용은 다음과 같습니다.
· 클라이언트가 서버와 통신하여 웹 또는 기타 리소스를 제공하는 방법.
· 요청 및 응답 개체의 세부 사항 및 공통점.
· 양식 및 쿼리 문자열을 통해 해당 값에 액세스하는 방법.
· 쿠키를 읽거나 만들고 고객의 컴퓨터에 저장하는 방법.
· 서버의 변수는 무엇입니까? HTTP 헤더에 액세스하고 수정하는 방법.
· 고객 인증서 사용과 같은 다른 관련 항목에 대한 변경 사항을 설명하십시오.
클라이언트와 서버 간의 커뮤니케이션
공간을 절약하기 위해 단어 브라우저는 다음 내용에 사용됩니다. 그러나 웹 페이지에 액세스 할 수있는 애플리케이션은 브라우저 일뿐 만 아니라 비전 결함이있는 사람들을 위해 설계된 특수 클라이언트 프로그램이나 일반적인 브라우저를 사용하는 다른 어려움을 겪는 특수 클라이언트 프로그램과 같은 사이트에서 웹 페이지를 다운로드합니다. 가장 분명한 예는 검색 엔진에서 웹에서 사이트에 액세스하는 데 사용하는 로봇입니다. 일반적인 웹 브라우저를 포함하여 이러한 요소를 포괄적으로 고려하십시오. 정확한 단어는 사용자 에이전트 여야합니다.
페이지 요청 대화
브라우저가 웹 사이트에 페이지 요청을 할 때는 서버에 어떤 페이지를 요청하는지 알려야합니다. 가장 먼저해야 할 일은 도메인 이름을 통해 서버에 대한 연결을 설정 한 다음 요청 된 페이지의 전체 경로와 이름을 제공하는 것입니다. 전체 경로와 이름이 필요한 이유는 무엇입니까? 웹은 국경없는 환경이므로 각 클라이언트를 식별하기 위해 세션을 만들어야합니다 (ASP가 나중에 수행 할 수있는 방법).
즉, 서버가 페이지를 클라이언트로 보내는 것을 완료 할 때마다 서버는 클라이언트를 완전히 잊어 버립니다. 따라서 클라이언트가 다음 페이지를 요청하면 새 방문자와 정확히 동일합니다. 서버는이 고객을 기억할 수 없으므로 지난번에 요청한 페이지를 결정할 수 없습니다. 예를 들어 페이지에 상대 링크가 포함 된 경우에도 상대 경로를 사용하여 페이지를 제공 할 수 없기 때문입니다.
href = http : //www.cuoxincom/download.asp> 다음 페이지 </a>
브라우저는 현재 페이지의 도메인과 경로를 사용하여 완전한 새 페이지 URL을 자동으로 생성합니다. 또는 페이지의 <head> 섹션에있는 <base> 요소를 사용하여 브라우저에 페이지의 모든 링크의 URL이 무엇인지 알려줍니다. 예를 들어:
base herf = http : //www.cuoxin.com >
마우스를 페이지에 대한 링크로 지적 할 때는 브라우저의 상태 표시 줄에서 볼 수 있습니다. 현재 페이지 및 현재 도메인 또는 기본 도메인 또는 기본 경로로가는 경로는 요청 된 페이지 이름과 결합되었습니다.
1. 고객 요청에 대한 세부 사항
요청 된 페이지의 전체 경로와 이름의 조합은 브라우저가 페이지를 요청할 때 서버의 유일한 거주지입니다. 브라우저 요청에는 브라우저 호스트의 거주지와 클라이언트가 운영하는 운영 체제도 포함 할 수도 있습니다. 실제 정보 컨텐츠는 브라우저와 함께 변경되며 검색 엔진 로봇과 같은 다른 응용 프로그램에서는 소수만 제공 할 수 있습니다. 이 정보에 대한 명확한 이해를 얻으려면 IE 5.0에서 발행 된 한 쌍의 페이지가 있습니다.
Download.asp 요청 정보 :
7/8/99 10:27:16 보내기 get /store/download.asp http/1.1
수락 : 응용 프로그램/msword, 응용 프로그램/vnd.ms-execl, application/vnd.ms-
PowerPoint, 이미지/gif, 이미지/x-xbitmap, 이미지/jpeg, 이미지/pjpeg, 응용 프로그램/x-
혜성, */ *
허용 : en-us
인코딩 : gzip, deflate
참조 : http://wwrox.com/main_menu.asp
쿠키 : VisitCount = 2 & lastdate = 6/4/99 10:10:13 AM
사용자 에이전트 : Mozilla/4.0 (호환 가능; MSIE 5.0; Windows 98)
호스트 : 212.250.238.67
연결 : 계속하십시오
이를 통해 정보에는 사용자 에이전트 및 사용자 연결 (예 : 기본 언어)에 대한 세부 정보와 MIME 유형 인 허용 가능한 파일 또는 응용 프로그램 유형 목록이 포함되어 있으며 나중에 더 많이 볼 수 있습니다. 브라우저는 여러 이미지 파일과 여러 Microsoft Office 파일 유형을 허용 할 수 있습니다. TESX/HTML 및 텍스트/텍스트와 같은 표준 파일 유형은 나열되지 않습니다. */* 파일 목록의 경우 브라우저 또는 플러그인 애플리케이션을 통해 해석 된 모든 유형의 파일을 브라우저로 다시 전송할 수 있습니다.
쿠키 : 항목에 포함 된 쿠키는 클라이언트의 컴퓨터에 저장 되며이 도메인에만 유효합니다. 요청이 링크를 클릭 한 결과, 브라우저 주소 표시 줄에 URL을 직접 입력하는 대신 링크 페이지의 전체 URL이 포함 된 항목이 표시됩니다.
호스트 : 항목에는 클라이언트 컴퓨터의 IP 주소 또는 이름이 포함되어 있습니다. 그러나 이것은 클라이언트를 정확하게 식별하기에 충분하지 않습니다. ISP를 통해 연결할 때 IP 주소가 동적으로 할당되거나 프록시 서버를 통해 연결할 때 IP 주소는 실제 클라이언트가 아닌 프록시에서 나옵니다.
2. 서버 응답의 세부 사항
위의 요청에 응답하고 요청 된 페이지를 익명 브라우저에 제공하기 위해 (즉, 사용자는 사용자 이름과 액세스 암호를 제공 할 필요가 없음) 다음 컨텐츠가 서버에서 클라이언트로 전송됩니다.
7/8/99 10:27:16 HTTP/1.1 200 OK를 받았습니다
서버 : Microsoft-IIS/5.0
연결 : 계속하십시오
날짜 : Thu, 1999 년 7 월 8 일 10:27:16 GMT
내용 유형 : Text/HTML
수락 범위 : 바이트
컨텐츠 길이 : 2946
최종 수정 : Thu, 1999 년 7 월 8 일 10:27:16 GMT
쿠키 : VisitCount = 3 & lastdate = 7/8/99 10:27:16 AM
HTML t
… 나머지 페이지…
</html >
서버가 클라이언트에 사용하는 소프트웨어와 버전을 설명한다는 것을 알 수 있습니다. 첫 번째 줄은 HTTP 프로토콜이 사용되었으며 리턴 코드의 상태를 보여줍니다. Message 200 OK는 요청이 수락되고 만족되었음을 의미합니다. 다음 정보는 MIME 유형 (Content-Length :), Size (BYTE), 마지막 변경 시간 및 클라이언트가 저장 한 반환 쿠키를 포함하여 페이지를 반환하는 페이지의 세부 사항입니다. 응답의 다른 정보는 페이지 컨텐츠의 정보 흐름입니다.
경우에 따라 페이지가 존재하지 않거나 클라이언트에 액세스 할 수있는 권한이 없기 때문에 요청에 응답 한 후 서버가 페이지를 반환 할 수 없습니다. 나중에 보안 문제에 대해 논의 할 것입니다. 이제 요청 페이지가 존재하지 않는 상황에서 (예 : 사용자가 브라우저 주소 표시 줄에 잘못된 URL을 입력 했음) 반환 된 정보는 다음과 같이 시작합니다.
7/8/99 14:27:16 HTTP/1.1 404를받지 못했습니다
서버 : Microsoft-IIS/5.0
…
여기에서 상태 코드 및 정보는 클라이언트가 요청한 페이지를 찾을 수 없음을 나타냅니다. 브라우저는이 정보를 사용하여 해당 정보를 사용자에게 표시 할 수 있습니다 (이 경우 IE 5.0에서 서버의 응답 정보가 표시되지 않고 해당 도움말 오류 프롬프트 페이지가 표시되지 않음) 또는 서버에서 생성 한 기본 페이지 (서버의 설정에 따라). 요청 및 응답 개체
ASP에서 클라이언트 요청 및 서버 응답을 적용 할 수 있다는 세부 사항은 ASP의 내장 요청 및 응답 개체를 통해 구현됩니다.
· 요청 객체 : 클라이언트가 페이지를 요청하거나 양식을 전달할 때 클라이언트가 제공 한 모든 정보를 스크립트에 제공합니다. 여기에는 브라우저 및 사용자,이 도메인 이름의 브라우저에 저장된 쿠키, URL 또는 페이지의 <form> 섹션 이후 문자열에 쿼리 문자열로 첨부 된 HTML 제어 값을 표시 할 수있는 HTTP 변수가 포함됩니다. SSL (Secure Socket Layer) 또는 기타 암호화 된 통신 프로토콜을 사용한 승인 된 액세스뿐만 아니라 연결을 관리하는 데 도움이되는 속성.
· 응답 객체 : 서버에서 만든 응답 정보에 액세스하고 클라이언트로 다시 전송하는 데 사용됩니다. 서버 및 서버의 기능과 브라우저로 전송 된 컨텐츠에 대한 정보 와이 도메인의 브라우저에 저장 될 새로운 쿠키를 나타내는 스크립트에 대한 HTTP 변수를 제공합니다. 또한 유비쿼터스 응답. 쓰기 방법과 같은 출력을 생성하는 다양한 방법을 제공합니다.
1. 요청 객체 멤버의 개요
a) 요청 객체의 수집
요청 객체는 클라이언트가 웹 서버에 요청한 다양한 정보에 액세스하는 데 사용할 수있는 5 개의 컬렉션을 제공합니다. 이 컬렉션은 다음과 같습니다.
요청 객체의 수집 및 설명
| 수집 이름 | 설명 |
| ClientCertificate | 클라이언트가 페이지 또는 기타 리소스에 액세스하면 서버에 대한 ID를 나타내는 데 사용되는 모든 필드 또는 클라이언트 인증서의 숫자 세트는 각 멤버가 읽기 전용입니다. |
| 쿠키 | 사용자의 요청에 따르면, 사용자 시스템에서 발행 한 모든 쿠키 모음. 이 쿠키는 해당 도메인에만 유효하며 각 멤버는 읽기 전용입니다. |
| 형태 | 메소드의 속성 값이 POST 인 경우, 요청으로 제출 된 <form> 섹션의 HTML 제어 장치의 모든 값 세트에 대해 각 멤버는 읽기 전용입니다. |
| 쿼리 스트링 | 각 멤버는 사용자가 요청한 후 URL이 요청한 후 이름/값 쌍에 따라 <form>의 모든 HTML 제어 장치의 값에 대해 읽기 전용으로 읽기 전용이며 요청으로 제출되며 메소드 속성은 GET (또는 그 속성이 생략 됨) 또는 <form>의 모든 HTML 제어 장치의 값입니다. |
| ServerVariable | 클라이언트 요청에 의해 발행 된 HTTP 헤더 값 모음 및 웹 서버의 여러 환경 변수의 값은 각 멤버가 읽기 전용입니다. |
b) 요청 오브젝트의 속성
요청 객체의 고유 한 속성 및 설명은 다음 표에 나와 있습니다. 사용자가 요청한 바이트 수에 대한 정보를 제공합니다. ASP 페이지에서는 거의 사용되지 않습니다. 우리는 일반적으로 전체 요청 문자열이 아닌 지정된 값에 중점을 둡니다.
| 재산 | 설명 |
| Totlbytes | 읽기 전용은 클라이언트가 발행 한 요청의 전체 바이트 수를 반환합니다. |
c) 요청 객체의 방법
요청 객체에 대한 유일한 방법과 설명은 다음 표에 표시되어 있으며, <form> 세그먼트에서 서버로 전달 된 사용자 요청 부분의 전체 내용에 액세스 할 수 있습니다.
요청 객체의 메소드 및 설명
| 방법 | 설명 |
| Binaryread (count) | 사후 요청의 일부로 데이터가 서버로 전송되면 클라이언트 요청에서 데이터의 카운트 바이트가 얻어지고 변형 배열 (또는 SafeArray)이 반환됩니다. ASP 코드가 이미 request.form Collection을 참조하면이 메소드를 사용할 수 없습니다. 동시에 BinaryRead 메소드를 사용하는 경우 request.form 컬렉션에 액세스 할 수 없습니다. |
2. 응답 개체 멤버의 개요
a) 응답 개체의 수집
응답 객체에는 다음 테이블과 같이 하나의 컬렉션이 있습니다.이 표는 클라이언트 시스템에 배치하려는 쿠키의 값을 설정합니다.
응답 개체 수집 및 설명
| 수집 이름 | 설명 |
| 쿠키 | 현재 응답에서 클라이언트로 다시 전송 된 모든 쿠키의 값은 쓰기 전용입니다. |
b) 응답 객체의 속성
응답 객체는 또한 응답이 요청에 맞게 조정될 수 있도록 (대부분의 경우) 읽고 수정할 수있는 일련의 속성을 제공합니다. 이들은 서버에서 설정되며 설정할 필요가 없습니다. 특정 속성을 설정할 때 사용 된 구문은 일반적으로 사용되는 것과 다를 수 있습니다.
응답 객체의 속성 및 설명
| 재산 | 설명 |
| buuffer = true | false | 읽기/쓰기, 부울, ASP 페이지에서 생성 된 출력이 현재 페이지의 모든 서버 스크립트가 처리 될 때까지 IIS 버퍼에 저장되어 있는지 여부를 나타냅니다. 이 속성은 출력 (HTTP보고 정보 포함)이 IIS로 전송되기 전에 설정해야합니다. 따라서 .asp 파일 에서이 설정은 <%@language =…%> 문의 첫 줄에 있어야합니다. ASP 3.0 기본 버퍼링이 켜져 있고 (true), 이전 버전에서는 꺼져 있습니다 (false) |
| CacheControlsetting | 읽기/쓰기, 문자 유형,이 속성을 대중으로 설정하여 프록시 서버에서 캐시 페이지로 캐시 페이지로 설정하십시오. 비공개 인 경우 프록시 서버가 캐시로 금지됩니다. |
| charset = 값 | 읽기/쓰기, 문자 유형, 각 응답에 대해 서버에서 생성 한 HTTP 컨텐츠 유형 헤더에 사용 된 문자 세트 이름 첨부 (예 : Iso-Latin-7) |
| 내용 유형 = 마임 유형 | 읽기/쓰기, 문자 유형, 응답의 HTTP 컨텐츠 유형 및 표준 MIME 유형 (예 : 텍스트/XML 또는 이미지/gif)을 지정하십시오. 기본값 인 경우 MIME 유형 텍스트/HTML이 사용되며 콘텐츠 유형은 브라우저에 예상되는 컨텐츠 유형을 알려줍니다. |
| 몇 분이 만료됩니다 | 읽기/쓰기, 숫자 유형은 페이지가 몇 분 안에 유효한 시간을 나타냅니다. 유효 기간이 만료되기 전에 사용자가 동일한 페이지를 요청하면 디스플레이 버퍼의 내용이 직접 읽습니다. 이 유효한 기간이 지나면 페이지는 더 이상 개인 (사용자) 또는 공개 (프록시) 버퍼에 보관되지 않습니다. |
| 절대 #date [time] #을 만료합니다. | 읽기/쓰기, 날짜/시간 유형, 페이지가 만료되고 더 이상 유효하지 않은 절대 날짜 및 시간을 나타냅니다. |
| IsClientConnected | 읽기 전용, 부울은 클라이언트가 여전히 연결되어 다운로드되었는지 여부의 상태 플래그를 반환합니다. 현재 페이지가 실행되기 전에 클라이언트가 다른 페이지로 전송되면이 플래그를 사용하여 처리를 중단 할 수 있습니다 (응답 메소드 사용) |
| 사진 (Pics-Label-String) | 문자 유형 만 쓰고, 폭력, 성별, 나쁜 언어 등과 같은 페이지 내용의 어휘 수준을 정의하기 위해 사진 헤더를 작성하십시오. |
| 상태 = 코드 메시지 | 읽기/쓰기, 문자 유형, 상태 값 및 정보는 클라이언트의 응답으로 전송 된 HTTP 헤더가 오류 또는 페이지 처리가 성공했는지 여부를 나타냅니다. 예를 들어 200 OK와 404를 찾을 수 없습니다 |
c) 응답 객체의 방법
응답 객체는 다음 표에서 볼 수 있듯이 일련의 메소드를 제공하므로 클라이언트에 반환 할 수있는 페이지 컨텐츠를 직접 처리 할 수 있습니다.
응답 객체의 방법 및 설명
| 방법 | 설명 |
| AddHeader (이름, 콘텐츠) | 이름 및 컨텐츠 값을 사용하여 사용자 정의 HTTP 헤더를 작성하고 응답에 추가하십시오. 이름이 같은 기존 헤더를 교체 할 수 없습니다. 헤더가 추가되면 삭제할 수 없습니다. 이 방법은 페이지 내용 (예 : 텍스트 및 HTML)이 클라이언트에게 전송되기 전에 사용해야합니다. |
| 부록 (문자열) | W3C 확장 로그 파일 형식 파일 형식을 사용하는 경우 사용자가 요청한 웹 서버의 로그 파일에 항목을 추가하십시오. 최소한 페이지가 포함 된 사이트의 확장 속성 페이지에서 URL 스템을 선택해야합니다. |
| Binarywrite (SafearRay) | 문자 변환없이 현재 HTTP 출력 스트림에 변형 유형의 SafeArray를 작성하십시오. 사용자 정의 응용 프로그램에서 요청한 이진 데이터 또는 이미지 파일을 구성하는 이진 바이트와 같은 비 스트링 정보를 작성하는 데 매우 유용합니다. |
| 분명한() | Response.Buffer가 true 일 때 IIS 응답 버퍼에서 기존 버퍼링 된 페이지 컨텐츠를 삭제하십시오. 그러나 HTTP 응답의 헤더는 부분적으로 완성 된 페이지를 포기하는 데 사용될 수 있습니다. |
| 끝() | ASP가 페이지를 처리하기 위해 스크립트를 끝내고 현재 생성 된 컨텐츠를 반환 한 다음 더 이상 페이지 처리를 포기하십시오. |
| 플러시() | IIS 버퍼의 현재 버퍼링 된 모든 페이지를 클라이언트로 보냅니다. Response.Buffer가 True 일 때, 더 큰 페이지의 내용의 일부를 개별 사용자에게 보내는 데 사용될 수 있습니다. |
| 리디렉션 (URL) | 응답으로 302 개체 MizedHTTP 헤더를 보내면 브라우저는 문자열 URL에 따라 해당 주소의 페이지를 지시합니다. |
| 쓰기 (String) | 현재 HTTP 응답 정보 흐름 및 IIS 버퍼에 지정된 문자를 쓰려고합니다. |
공유 : ASP 개발에서 저장 프로 시저 응용 프로그램과의 전체 연락 ASP 및 저장 절차에 대한 기사가 많이 있지만 저자가 실제로 연습했다고 의심합니다. 처음에 있었을 때 많은 관련 정보를 읽었으며 제공된 많은 방법이 실제로는 그렇지 않다는 것을 알았습니다. 간단한 응용 프로그램의 경우이 데이터가 있습니다