これらの2つのオブジェクトは、ASPによって提供される最も一般的に使用される2つのオブジェクトです。ブラウザ(または他のユーザーエージェント)とWebサーバーの間で、リクエストと応答の間の情報交換は、これら2つのオブジェクトの2つのオブジェクトを介してアクセスおよび管理できます。
ASPページで実行されるほとんどすべての作業は、これらの2つのオブジェクトを使用する方法にアクセスする必要があります。もちろん、彼らの主な用途は、サーバーに送信されたユーザーの値、つまり、HTMLページの<form>段落からクエリ文字列として取得または添付されたユーザーの値にアクセスし、適切な出力を作成することです。それをユーザーに返し、彼らは多くの同じ要因を共有することができます。たとえば、両方のオブジェクトは、クライアントコンピューターに保存されたCookieを使用できます。
クライアントとサーバーの通信
スペースを節約するために、「ブラウザ」という単語が次のコンテンツで使用されます。しかし、覚えておく必要があるのは、Webページにアクセスできるアプリケーションがブラウザだけではないことです。 。最も明白な例は、検索エンジンがWeb上のサイトのロボットにアクセスするために使用されることです。通常のWebブラウザーを含むこれらの要因全体で、正確な語彙はユーザーエージェントでなければなりません。
ページリクエストダイアログ
ブラウザがWebサイトにページを要求する場合、サーバーにどのページが要求するかを通知する必要があることは明らかです。最初に行うことは、ドメイン名を介してサーバーとの接続を確立し、必要なページのフルパスと名前を提供することです。なぜあなたはフルパスと名前が欲しいのですか? Webは境界のない環境であるため、すべての顧客がセッションロゴを作成する必要があります。
これは、サーバーが顧客に送信されるたびに、サーバーが顧客を完全に忘れていることを意味します。したがって、顧客が次のページを要求する場合、それは新しい訪問者とまったく同じです。サーバーは、この顧客を覚えていません。なぜなら、相対パスはページを提供するために使用できないため、ページに相対リンクが含まれていても、それは機能しません。たとえば、::
<ahref = "doubled.asp"> nextpage </a>
ブラウザは、現在のページのドメインとパスを使用する完全な新しいページURLを自動的に構築します。例えば:
<baseherf = http://www.wrox.com/store>
マウスをページのリンクに向けると、ブラウザのステータスバーに表示できます。現在のページのパスと現在のドメイン名またはベースパスまたはベースパスは、リクエストページ名と既に組み合わされています。
1。顧客リクエストの詳細
パス全体とリクエストページの名前の組み合わせは、ブラウザリクエストページがブラウザリクエストページでリクエストされたときにサーバーを送信するブラウザの唯一のレジデンスです。実際の情報コンテンツは、異なるブラウザにそれに応じて変更され、検索エンジンロボットなどの他のアプリケーションで提供できるブラウザはごくわずかです。情報をより明確に理解するために、以下はIE5.0からページhttp://www.wrox.com/store/までのペアページです。
ダウンロード.aspリクエスト情報:
7/8/9910:27:16Sentget/store/download.asphttp/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://ww.wrox.com/main_menu.asp
Cookie:VisitCount = 2&lastDate = 6%2F4%2F99+10%3A13+AM
ユーザーエージェント:Mozilla/4.0(互換性; msie5.0; windows98)
ホスト:212.250.238.67
接続:Kep-Alive
この情報は、ユーザーエージェントの詳細(デフォルト言語など)であり、これらが多くのタイプであるファイルの種類があります。ブラウザは、いくつかの画像ファイルとさまざまなMicrosoftofficeファイルタイプを受け入れることができます。 TESX/HTMLやテキスト/テキストなどの「標準」ファイルタイプは、リストされていません。ファイルリストでは、*/*はブラウザに返送されてあらゆるタイプのファイルを送信できることを示します。これは、ブラウザで説明されるか、プラグインアプリケーションで説明されます。
Cookie:エントリに含まれるCookieは、クライアントのコンピューターに保存され、ドメインに対してのみ有効です。リクエストがブラウザのアドレスバーに直接URLを入力する代わりにリンクをクリックした結果である場合、参照:エントリが表示され、リンクページの完全なURLが含まれます。
ホスト:エントリには、顧客コンピューターのIPアドレスまたは名前が含まれています。ただし、これはクライアントを正確に区別するのに十分ではありません。 ISPを介して接続されている場合、IPアドレスは動的に割り当てられるか、プロキシサーバーが接続されている場合、IPアドレスは実際のクライアントではなくプロキシマシンです。
2。サーバーの応答の詳細
上記のリクエストに応じて、ページは匿名のブラウザのリクエストを提供しました(つまり、ユーザーはユーザー名を提供してパスワードにアクセスする必要はありません)、次のコンテンツがサーバーからクライアントに送信されます。
7/8/9910:27:16ReceivedTTP/1.1200OK
サーバー:Microsoft-IIS/5.0
接続:Kep-Alive
日付:Thu、8Jul199910:27:16gmt
コンテンツタイプ:Text/HTML
Accept-ranges:バイト
コンテンツ固有:2946
last-modify:t、8jul199910:27:16gmt
Cookie:VisitCount = 3&lastDate = 7%2F8%2F99+10%3A27%3A16+AM
<html>
…RESTOFPAGE ...
</html>
サーバーは、最初の行に使用するソフトウェアとバージョンを説明しています。 「200OK」という情報は、リクエストが受け入れられ、満足されることを意味します。後の情報は、MIMEタイプ固有の:)、サイズ(バイト)、最近の変更、クライアントに保存されているCookieを含む、返されたページの詳細です。応答の他の情報は、ページコンテンツの情報フローです。
場合によっては、サーバーがリクエストに応答した後、おそらくページが存在しないか、顧客がアクセスするための対応する権限がないためです。後でセキュリティの問題について説明します。これで、リクエストページが存在しない状況(たとえば、ユーザーがブラウザのアドレスバーに間違ったURLを入力した)と返される情報は次のとおりです。
7/8/9914:27:16ReceivedTP/1.1404NotFound
サーバー:Microsoft-IIS/5.0
刈り取り
ここで、ステータスコードと情報は、顧客の要求のページが見つからないことを示しています。ブラウザはこの情報を使用して対応する情報をユーザーに表示できます(この状況はIE5.0のサーバーの応答情報を表示せず、対応する「ヘルプセックス」エラープロンプトページが表示されます)、および作成されたデフォルトページが作成されましたサーバーによって、作成されたサーバーも表示できます(サーバーの設定に応じて)。
リクエストと応答オブジェクト
ASPからの顧客要求とサーバーの応答を適用できる詳細は、ASPが作成されたリクエストと応答オブジェクトによって達成されます。
・リクエストオブジェクト:クライアントがページを要求するとき、またはウィンドウを渡すときに、クライアントが提供するすべての情報をスクリプトに提供します。これには、ブラウザとユーザーを示すことができるHTTP変数、およびこのドメイン名の下にブラウザに配置されたCookie、URLの背後にある<form>セクションの<form>セクションに添付されている文字列にクエリ文字列として添付されています。エッセンスまた、SecureSocketLayer(SSL)またはその他の暗号化された通信プロトコルの使用への承認されたアクセスを提供し、接続の管理に役立ちます。
・応答オブジェクト:サーバー側によって作成された同時応答情報にアクセスするために使用されます。スクリプトにHTTP変数を提供し、サーバーとサーバーの機能、ブラウザのコンテンツに関する情報、およびこのドメインのブラウザに保存される新しいCookieを提供します。また、ユビキタスResponse.writeメソッドなど、出力を作成する一連の方法も提供します。
<H3>リクエストオブジェクトのメンバーの概要</h3>
リクエストオブジェクトのコレクション
文法:
Response.Collection |
リクエストオブジェクトは、Webサーバーが要求するクライアントのさまざまな情報にアクセスするための5つのセットを提供します。
clientcertified
クライアントが1つのページまたはその他のリソースにアクセスし、顧客の顧客証明書をサーバーに表示するために使用されるすべてのフィールドまたはエントリの数値コレクションにアクセスすると、各メンバーは読み取ります
クッキー
ユーザーのリクエストによると、ユーザーシステムによって発行されたすべてのCookie値のコレクションによると、これらのCookieは対応するドメインに対してのみ有効であり、各メンバーは読み取り専用です
形状
メソッドの属性値がpostである場合、要求されている<form>段落の<form>セクションのすべてのメンバーが読み取られます
クエリストリング
ユーザーが必要とするURLの背後にある名前/値ペアまたはリクエストとして送信されたメソッド属性は取得(またはその属性を省略)、または<フォーム>のすべてのHTMLコントロールユニットの値が読み取りのみで読み取られます。
serverVariables
クライアントリクエストでHTTPヘッダー値が発行され、Webサーバーのいくつかの環境変数の値の収集がある場合、各メンバーは読み取り専用です
2つの要求オブジェクトの属性
リクエストオブジェクトの唯一の属性と説明は、以下のテーブルに示されています。要求文字列全体。
totlbytes
読むだけで、クライアントが要求したバイトの全体を返します
3つの要求オブジェクトのメソッド
リクエストオブジェクトの唯一の方法と命令は、下の表に示されています。
binaryread(count)
データがPOSTリクエストの一部としてサーバーに送信されると、カウントバイトのデータは顧客の要求から取得され、バリアント配列(またはSafearray)が返されます。 ASPコードがrequest.formセットを引用した場合、このメソッドは使用できません。同時に、BinaryReadメソッドを使用する場合、request.formコレクションにアクセスすることはできません
<h3>応答オブジェクトの概要</h3>
文法:
Response.Collection |
1。コレクション
応答オブジェクトには1つのコレクションクーキのみがあり、Cookiesデータセットを使用すると、データをクライアントのブラウザに設定できます。指定されたCookieが存在しない場合は作成します。存在する場合は、データを自動的に更新してください。
文法:Response.Cookies(Cookie)[key.Attribute]
ここのクッキーは、指定されたクッキーの名前です。キーが指定されている場合、Cookieは辞書です。属性は、Cookie自体に関する関連情報を指定します。属性パラメーターは、次のいずれかです。
ドメインは書かれているだけです。指定されている場合、Cookieはドメインのリクエストに送信されます。
期限切れになります。 Cookieの有効期限を指定します。セッションが終わった後、クッキーをクライアントディスクに保存するには、日付を設定する必要があります。この属性の設定が現在の日付を超えない場合、タスクが終了した後、Cookieは期限切れになります。
ハスキーは読むだけです。 Cookieにキーワードが含まれているかどうかを指定します。
パスは書かれています。指定されている場合、Cookieはパスのリクエストにのみ送信します。プロパティが設定されていない場合、アプリケーションのパスが使用されます。
Secureは書かれています。 Cookieが安全かどうかを指定します。
2。メソッド
Response.Adddewername、value
答えに新しいHTMLタイトルを追加します。名前は新しいHTMLタイトルの名前です。値はヘッド変数の値です。任意の名前と任意の値で任意のHTMLタイトルを追加できます。同じ名前の既存のタイトルを置き換えません。タイトルが追加されると、削除されません。
Response.AppendTologString
Webサーバーのログバーに文字列を追加します。文字列は、ログファイルに追加される文字列です。
Response.binaryWritedData
この方法は、文字変換なしで正式な情報をHTTP出力に書き込むことができます。これは、主に非ストリング情報(クライアントアプリケーションなどに必要なバイナリデータなど)を記述するために使用されます。データは送信されるデータです。
Response.Clear
バッファ内のすべてのHTML出力を削除しますが、応答タイトルを削除せずに応答テキストのみを削除します。この方法を使用してエラーを処理できます。 response.bufferがtrueに設定されている場合、この方法は操作が間違っていることに注意する必要があります。
Response.End
Webサーバーに、より多くのスクリプトの実行を停止し、現在の結果を送信するように強制されました。ファイル内の残りのコンテンツは処理されません。 response.bufferがtrueに設定されている場合、respons.Endを呼び出すとバッファが出力されます。
Response.Flush
クッション性のある応答については、すべてのバッファー情報を送信します。 response.bufferがtrueに設定されている場合、この方法により操作が間違っています。
Response.redirecturl
クライアントのブラウザを新しいインターネットアドレスに減らします。 URLは、新しいWebページのインターネットアドレスです。
Response.WriteVariant
Response.Writeは、この方法で最も一般的に使用される方法です。バリアントは、文字列値を持つ文字列または変数です。
3つ、属性
Response.Buffer
Activeserverpageのクッション。応答は、特定のページまたはResponse.FlushまたはResponse.Endメソッドの最後にのみ送信されます。サーバーがクライアントに送信された後、バッファ属性を設定することはできません。
Response.CacheControl
プロキシサーバーがActiveServerPageをキャッシュできるかどうかを示します。デフォルトがある場合、その値は偽です。その属性をパブリックに設定するとき、プロキシサーバーはASPによって生成された出力をバッファすることができます。
Response.Charset(charsetname)
文字セット名(GBなど)をコンテンツタイプのタイトルの背後にある応答オブジェクトに添付し、それを使用してWebサーバーを設定して、ファイル文字コードにクライアントに応答します。可能な値は「ISO_LATIN_1」です。
Response.ContentType
応答コンテンツのタイプを示します。考えられる値は、テキスト/プレーンと画像/GIF、およびデフォルト値テキスト/HTMLです。
Response.Expires
ブラウザは、数分で現在のページの時間の長さをキャッシュできます。
Response.ExpiresAbsolute
ブラウザは、現在のページの日付と時刻をキャッシュできません。期限切れになる前に返すことができます。時間が指定されていない場合、ホームページは同じ日に真夜中に期限切れになります。
true/false = response.isclientConnect
属性は読み取り、最後のrespons.writeの最後の呼び出し以来、クライアントがサーバーに接続されているかどうかを示します。この属性により、ユーザーはクライアントやサーバーを接続することなく、より多くの制御を可能にします。たとえば、クライアントからのリクエストを作成するリクエストがサーバーに対応する場合、長い間使用する必要がある場合、これはスクリプトを処理し続ける前にクライアントがまだ接続されていることを確認するのに役立ちます。貴重な真または偽があります。
Response.pics(写真文字列)
Webページを追加するための写真レベル。写真レベルは、暴力やポルノの程度など、ウェブページのコンテンツレベルを示しています。
Response.status =ステータス説明文字列
Webサーバーの状態の値を設定して応答するために使用されます。