推奨:ASPヒント:リクエストコレクションの使用効率を向上させる値を抽出するためのASPコレクションにアクセスすることは、時間のかかるリソース消費プロセスです。この操作には関連セットの一連の検索が含まれているため、ローカル変数にアクセスするよりもはるかに遅いです。そのため、ページ内のリクエストコレクションの値を複数回使用する場合は
リクエストと応答は、ASPが提供する最も一般的に使用される2つの組み込みオブジェクトです。ブラウザ(または他のユーザーエージェント)とWebサーバーの間で、リクエストと応答で発生する情報交換は、リクエストと応答オブジェクトと呼ばれるASPの2つの組み込みオブジェクトを介してアクセスおよび管理できます。
ASPページで実行されるほとんどすべての作業には、これら2つのオブジェクトにアクセスする必要があります。これらの2つのオブジェクトを使用すると、ページの効率と信頼性に影響します。もちろん、彼らの主な目的は、ユーザーからサーバーに送信された値にアクセスすること、つまりHTMLページの<form>セグメントから取得するか、クエリ文字列としてURLに添付し、ユーザーに戻るための適切な出力を作成することです。同じ要因の多くを共有できます。たとえば、両方のオブジェクトは、クライアントコンピューターに保存されたCookieを使用できます。
したがって、コンテンツを2つの独立した部分(各オブジェクトの一部)に分割し、最初にクライアントとサーバーの間の情報交換から始めて、各オブジェクトを調べます。
研究コンテンツは次のとおりです。
・クライアントがサーバーと通信してWebまたはその他のリソースを配信する方法。
・リクエストと応答オブジェクトの詳細、およびそれらが共通しているもの。
・フォームとクエリの文字列を介して対応する値にアクセスする方法。
・Cookieを読み取りまたは作成し、クライアントのコンピューターに保存する方法。
・サーバーの変数は何ですか? HTTPヘッダーにアクセスして変更する方法。
・顧客の証明書の使用など、他の関連するエントリの変更を説明します。
クライアントとサーバー間の通信
スペースを保存するために、ブラウザという単語は次のコンテンツで使用されます。ただし、Webページにアクセスできるアプリケーションはブラウザだけでなく、多くの特別なアプリケーションが、ビジョン欠陥がある人や通常のブラウザを使用して他の困難を抱えている人向けに設計された特別なクライアントプログラムなど、サイトからWebページをダウンロードすることを覚えておく必要があります。最も明白な例は、Web上のサイトにアクセスするために検索エンジンが使用するロボットです。通常のWebブラウザーなど、これらの要因を包括的に考慮してください。正確な単語はユーザーエージェントである必要があります。
ページリクエストの会話
ブラウザがWebサイトにページリクエストを行うと、どのページが要求しているかをサーバーに伝える必要があります。最初に行うことは、ドメイン名を介してサーバーへの接続を確立し、要求されたページのフルパスと名前を提供することです。なぜフルパスと名前が必要なのですか? Webは境界のない環境であるため、各クライアントを識別するためにセッションを作成する必要があります(ASPは後でこれを行う方法)。
これは、サーバーがページをクライアントに送信するたびに、サーバーがクライアントを完全に忘れていることを意味します。したがって、クライアントが次のページを要求する場合、それは新しい訪問者とまったく同じです。サーバーはこの顧客を思い出せないため、前回要求したページを決定できません。なぜなら、相対パスを使用してページを提供することはできないからです。たとえページに相対リンクが含まれていても、たとえば:
href = http://www.cuoxincom/download.asp>次ページ</a>
ブラウザは、現在のページのドメインとパスを使用して、完全な新しいページURLを自動的に作成します。または、ページの<head>セクションの<base>要素を使用して、ページ内のすべてのリンクのURLが何であるかをブラウザに伝えます。例えば:
base herf = http://www.cuoxin.com>
マウスをページへのリンクに向けると、ブラウザのステータスバーに表示されます。現在のページと現在のドメインまたはベースドメインまたはベースパスへのパスは、要求されたページ名と組み合わされています。
1。顧客リクエストの詳細
要求されたページのフルパスと名前の組み合わせは、ブラウザがページをリクエストするときにサーバーの唯一のレジデンスです。ブラウザリクエストには、ブラウザホストのレジデンスとクライアントが実行しているオペレーティングシステムも含めることができます。実際の情報コンテンツは、ブラウザにそれに応じて変更され、検索エンジンロボットなどの他のアプリケーションで提供できるのはごく少数です。この情報をより明確に理解するために、IE 5.0から発行されたページのペアを次に示します。
ダウンロード.aspリクエスト情報:
7/8/99 10:27:16は、get /store/download.asp http/1.1を送信します
受け入れ:Application/MSWORD、Application/VND.MS-EXECL、Application/VND.MS-
PowerPoint、image/gif、image/x-xbitmap、image/jpeg、image/pjpeg、application/x-
彗星、 */ *
Accept-Language:en-us
エンコーディング:gzip、deflate
参照者:http://wwrox.com/main_menu.asp
Cookie:VisitCount = 2&LastDate = 6/4/99 10:10:13 AM
ユーザーエージェント:Mozilla/4.0(互換性、MSIE 5.0; Windows98)
ホスト:212.250.238.67
接続:キープアライブ
このことから、情報には、ユーザーエージェントとユーザー接続に関する詳細(デフォルト言語など)、およびMIMEタイプの許容可能なファイルまたはアプリケーションのタイプのリストが含まれていることがわかります。ブラウザは、いくつかの画像ファイルと複数のMicrosoft Officeファイルタイプを受け入れることができます。 TESX/HTMLやテキスト/テキストなどの標準ファイルタイプはリストされていません。 */*ファイルリストでは、あらゆるタイプのファイルをブラウザまたはプラグインアプリケーションを介して解釈するブラウザに返送できることを意味します。
Cookie:エントリに含まれるCookieは、クライアントのコンピューターに保存され、このドメインに対してのみ有効です。リクエストがリンクをクリックした結果である場合、ブラウザのアドレスバーにURLを直接入力する代わりに、リンクページの完全なURLを含む参照:エントリが表示されます。
ホスト:エントリには、クライアントコンピューターのIPアドレスまたは名前が含まれています。ただし、これはクライアントを正確に識別するのに十分ではありません。 ISPを介して接続すると、IPアドレスが動的に割り当てられている場合、またはプロキシサーバーを介して接続すると、IPアドレスは実際のクライアントではなくプロキシからのものです。
2。サーバーの応答の詳細
上記のリクエストに応答し、要求されたページを匿名のブラウザに提供するために(つまり、ユーザーはユーザー名とアクセスパスワードを提供する必要はありません)、次のコンテンツがサーバーからクライアントに送信されます。
7/8/99 10:27:16はHTTP/1.1 200 OKを受け取りました
サーバー:Microsoft-IIS/5.0
接続:キープアライブ
日付:木曜日、1999年7月8日10:27:16 GMT
コンテンツタイプ:Text/HTML
Accept-ranges:バイト
コンテンツレングス:2946
ラスト修飾:木、1999年7月8日10:27:16 GMT
Cookie:VisitCount = 3&LastDate = 7/8/99 10:27:16 AM
html>
…残りのページ…
</html>
サーバーがクライアントに使用するソフトウェアとバージョンを説明することがわかります。最初の行は、HTTPプロトコルが使用され、リターンコードのステータスが使用されていることを示しています。メッセージ200 OKは、リクエストが受け入れられ、満足されたことを意味します。次の情報は、MIMEタイプ(コンテンツレングス:)、サイズ(バイト)、最後の変更時間、クライアントが保存する返品Cookieなど、返されるページの詳細です。応答の他の情報は、ページコンテンツの情報フローです。
場合によっては、おそらくページが存在しないか、クライアントがアクセスするための対応する権限がないため、リクエストに応答した後、サーバーはページを返すことができません。後でセキュリティの問題について説明します。これで、リクエストページが存在しない状況(たとえば、ユーザーがブラウザのアドレスバーに間違ったURLを入力した場合)の場合、返された情報は以下で始まります。
7/8/99 14:27:16は、HTTP/1.1 404を受け取っていません
サーバー:Microsoft-IIS/5.0
…
ここで、ステータスコードと情報は、クライアントが要求したページが見つからないことを示しています。ブラウザはこの情報を使用して、対応する情報をユーザーに表示できます(この場合、IE 5.0では、サーバーの応答情報が表示されませんが、対応するヘルプエラープロンプトページ)またはサーバーによって作成されたデフォルトページ(サーバーの設定に応じて)。リクエストと応答オブジェクト
ASPからクライアントリクエストとサーバーの応答を適用できることの詳細は、ASPの組み込みリクエストおよび応答オブジェクトを通じて実装されます。
・リクエストオブジェクト:クライアントがページをリクエストしたり、フォームを渡したりしたときに、クライアントが提供するすべての情報をスクリプトに提供します。これには、ブラウザとユーザーを示すことができるHTTP変数、このドメイン名の下にブラウザに保存されているCookie、URLまたはPageの<フォーム>セクションの後に文字列に文字列に添付されているHTMLコントロール値が含まれます。セキュアソケットレイヤー(SSL)またはその他の暗号化された通信プロトコルを使用した承認されたアクセス、および接続の管理に役立つ属性。
・応答オブジェクト:サーバーによって作成され、クライアントに送信された応答情報にアクセスするために使用されます。サーバーとサーバーの関数を示すスクリプトのHTTP変数と、ブラウザに送られたコンテンツに関する情報、およびこのドメインのブラウザに保存される新しいCookieを提供します。また、ユビキタスResponse.writeメソッドなど、出力を作成するさまざまな方法も提供します。
1。リクエストオブジェクトメンバーの概要
a)リクエストオブジェクトのコレクション
リクエストオブジェクトは、クライアントが要求したさまざまな情報にWebサーバーにリクエストするために使用できる5つのコレクションを提供します。これらのコレクションは次のとおりです。
リクエストオブジェクトの収集と説明
| コレクション名 | 説明します |
| ClientCertificate | クライアントがページまたはその他のリソースにアクセスすると、サーバーに身元を示すために使用されるクライアント証明書のすべてのフィールドまたはエントリの数値セットにアクセスすると、各メンバーは読み取り専用です |
| クッキー | ユーザーのリクエストによると、ユーザーシステムによって発行されたすべてのCookieのコレクション。これらのCookieは対応するドメインに対してのみ有効であり、各メンバーは読み取り専用です |
| 形状 | メソッドの属性値がpostの場合、各メンバーは、リクエストとして提出された<form>セクションのHTMLコントロールユニットのすべての値セットについて読み取り専用です。 |
| クエリストリング | 各メンバーは、ユーザーがリクエストした後、またはリクエストとして送信されたURL後の名前/値ペアに応じて、<フォーム>のすべてのHTMLコントロールユニットの値に対して読み取り専用です。 |
| serverVariables | クライアントリクエストによって発行されたHTTPヘッダー値のコレクションと、Webサーバーのいくつかの環境変数の値は、各メンバーが読み取り専用です |
b)リクエストオブジェクトのプロパティ
リクエストオブジェクトの一意のプロパティと説明を次の表に示します。ユーザーが要求したバイト数に関する情報を提供します。 ASPページで使用されることはめったにありません。通常、要求文字列全体ではなく、指定された値に焦点を当てます。
| 財産 | 説明します |
| totlbytes | 読み取り専用、クライアントが発行したリクエストのバイトの全数を返します |
c)リクエストオブジェクトの方法
リクエストオブジェクトの唯一のメソッドと説明を次の表に示します。これにより、<form>セグメントからサーバーに渡されたユーザー要求パーツの完全なコンテンツにアクセスできます。
リクエストオブジェクトの方法と説明
| 方法 | 説明します |
| binaryread(count) | POSTリクエストの一部としてデータがサーバーに送信されると、データのカウントバイトがクライアントリクエストから取得され、バリアント配列(またはSafearray)が返されます。 ASPコードが既にrequest.formコレクションを参照している場合、この方法は使用できません。同時に、BinaryReadメソッドが使用されている場合、Request.Formコレクションにアクセスできません |
2。応答オブジェクトメンバーの概要
a)応答オブジェクトのコレクション
応答オブジェクトには、次の表に示すように1つのコレクションのみがあり、クライアントシステムに配置するCookieの値を設定します。
応答オブジェクトの収集と説明
| コレクション名 | 説明します |
| クッキー | 現在の応答では、クライアントに返送されるすべてのCookieの値では、このセットは書き込み専用です |
b)応答オブジェクトのプロパティ
応答オブジェクトは、(ほとんどの場合)読み取ることができる一連のプロパティを提供し、応答をリクエストに適合させることができるように変更できます。これらはサーバーによって設定されており、セットアップする必要はありません。特定のプロパティを設定する場合、使用される構文は一般的に使用されるものとは異なる場合があることに注意してください。
応答オブジェクトのプロパティと説明
| 財産 | 説明します |
| buuffer = true | false | ASPページによって作成された出力が、現在のページのすべてのサーバースクリプトが処理されるか、フラッシュおよびエンドメソッドが呼び出されるまでIISバッファーに保存されるかどうかを示します。このプロパティは、出力(HTTPレポート情報を含む)がIISに送信される前に設定する必要があります。したがって、.aspファイルでは、この設定は<%@leanguase =…%>ステートメントの後に最初の行にある必要があります。 ASP 3.0デフォルトバッファリングがオン(True)がオンになっていますが、以前のバージョンではオフ(false) |
| Cachecontrolsetting | 読み取り/書き込み、文字タイプ、このプロパティを公開に設定して、プロキシサーバーがページをキャッシュできるようにします。プライベートの場合、プロキシサーバーがキャッシュすることを禁止します。 |
| charset = value | 読み取り/書き込み、文字タイプ、各応答に対してサーバーによって作成されたHTTPコンテンツタイプのヘッダーで使用されている文字セット名を添付します(例:ISO-Latin-7) |
| コンテンツタイプ= mime-type | 読み取り/書き込み、文字タイプ、応答のHTTPコンテンツタイプ、および標準のMIMEタイプ(テキスト/XMLまたは画像/GIFなど)を指定します。デフォルトの場合、MIMEタイプテキスト/HTMLが使用され、コンテンツタイプがブラウザに予想されるコンテンツのタイプを指示します。 |
| 数分の期限が切れます | 読み取り/書き込み、数値タイプは、ページが数分で有効な時間の長さを示します。有効期間の有効期限の前にユーザーが同じページを要求した場合、ディスプレイバッファ内のコンテンツは直接読み取られます。この有効期間の後、ページはプライベート(ユーザー)またはパブリック(プロキシ)バッファで保持されなくなります。 |
| 絶対的な#date [time]#expies## | 読み取り/書き込み、日付/時刻のタイプ、ページが期限切れになり、有効でない絶対日付と時刻を示します |
| isclientConnected | 読み取り専用のBooleanは、クライアントがまだ接続されてダウンロードされているかどうかのステータスフラグを返します。現在のページが実行される前に、クライアントが別のページに転送された場合、このフラグを使用して処理を中止できます(Response.ENDメソッドを使用) |
| 写真(写真label-string) | 文字のみを書く、写真ヘッダーを作成して、暴力、性別、悪い言葉などのページコンテンツの語彙レベルを定義します。 |
| ステータス=コードメッセージ | HTTPヘッダーがクライアントの応答に送信されたかどうかを示す、読み取り/書き込み、文字タイプ、ステータス値、および情報がエラーまたはページ処理が成功しているかどうかを示します。たとえば、200 OKと404が見つかりません |
c)応答オブジェクトの方法
応答オブジェクトは、次の表に示すように一連のメソッドを提供し、作成されたページコンテンツの直接処理をクライアントに返すようにします。
応答オブジェクトの方法と説明
| 方法 | 説明します |
| addheader(名前、コンテンツ) | 名前とコンテンツ値を使用してカスタムHTTPヘッダーを作成し、応答に追加します。同じ名前の既存のヘッダーを置き換えることはできません。ヘッダーが追加されると、削除することはできません。この方法は、ページコンテンツ(つまり、テキストとHTML)がクライアントに送信される前に使用する必要があります |
| appenttolog(文字列) | W3C拡張ログファイル形式ファイル形式を使用する場合、ユーザーが要求したWebサーバーのログファイルへのエントリを追加します。少なくとも、ページを含むサイトの拡張プロパティページでURLステムを選択する必要があります |
| binarywrite(safearray) | 文字変換なしで、現在のHTTP出力ストリームにバリアントタイプのSafearrayを作成します。カスタムアプリケーションによって要求されたバイナリデータや、画像ファイルを構成するバイナリバイトなど、非弦情報を記述するのに非常に便利です |
| クリア() | response.bufferがtrueの場合、IIS応答バッファーから既存のバッファーページコンテンツを削除します。ただし、HTTP応答のヘッダーを使用して、部分的に完了したページを放棄することができます |
| 終わり() | ASPがページを処理するためのスクリプトを終了し、現在作成されているコンテンツを返してから、ページのさらに処理を放棄します |
| フラッシュ() | IISバッファー内のすべての現在のバッファーページをクライアントに送信します。 response.bufferが真の場合、より大きなページのコンテンツの一部を個々のユーザーに送信するために使用できます |
| リダイレクト(URL) | 応答に302オブジェクトの移動httpヘッダーを送信することにより、ブラウザは文字列URLに従って対応するアドレスのページを指示します |
| 書き込み(文字列) | 現在のHTTP応答情報フローとIISバッファーに指定された文字を記述して、それを返すページの一部にします |
共有:ASP開発におけるストアドプロシージャアプリケーションとの完全な連絡ASPとストアドプロシージャに関する多くの記事がありますが、著者が実際にそれを実践しているとは思いません。私が最初にいたときに多くの関連情報を読みましたが、提供された方法の多くは実際にはそうではないことがわかりました。簡単なアプリケーションの場合、これらのデータ