検索
ホームページバックエンド開発PHPチュートリアルHTTP の概要、http はアプリケーション層に属するオブジェクト指向プロトコルです。

regrupting転載時にソースを示してください:HTTPの紹介、HTTPはアプリケーションレイヤーに属するオブジェクト指向のプロトコルです


引用

HTTP は、アプリケーション層に属するオブジェクト指向プロトコルであり、そのシンプルで高速なメソッドのため、分散ハイパーメディア情報システムに適しています。これは 1990 年に提案され、数年間の使用と開発を経て継続的に改善および拡張されてきました。現在、WWW では HTTP/1.0 の 6 番目のバージョンが使用されており、HTTP/1.1 の標準化作業が進行中であり、HTTP-NG (Next Generation of HTTP) 提案が提案されています。 HTTP プロトコルの主な機能は次のように要約できます:
クライアント/サーバー モードをサポートします。
2. シンプルかつ高速: クライアントがサーバーにサービスをリクエストする場合、リクエストのメソッドとパスを送信するだけで済みます。一般的に使用されるリクエスト メソッドは、GET、HEAD、および POST です。各メソッドは、クライアントとサーバー間の異なるタイプの接続を指定します。 HTTP プロトコルは単純であるため、HTTP サーバーのプログラム サイズは小さく、通信速度は非常に高速です。
3. 柔軟性: HTTP では、あらゆる種類のデータ オブジェクトの送信が可能です。転送されるタイプは Content-Type によってマークされます。
4. 接続なし: 接続なしの意味は、各接続が 1 つのリクエストのみを処理するように制限することです。サーバーはクライアントの要求を処理し、クライアントの応答を受信した後、切断します。この方法により、送信時間が節約されます。
5. ステートレス: HTTP プロトコルはステートレス プロトコルです。ステートレスとは、プロトコルにトランザクション処理のためのメモリ機能がないことを意味します。ステータスがないということは、後続の処理で以前の情報が必要な場合にその情報を再送信する必要があることを意味し、その結果、接続ごとに転送されるデータ量が増加する可能性があります。一方、事前の情報が必要ない場合、サーバーはより速く応答します。

1. HTTPプロトコルの詳細説明 - URL

HTTP (ハイパーテキスト転送プロトコル) は、リクエストとレスポンスのモデルに基づいたステートレスなアプリケーション層プロトコルであり、ほとんどの Web 開発では TCP 接続メソッドが提供されます。 HTTP プロトコルに基づいて構築された Web アプリケーション。

HTTP URL (URL は、リソースを見つけるのに十分な情報を含む特別なタイプの URI) の形式は次のとおりです:
http://www.php.cn/[":"port][ abs_path] http は、HTTP プロトコルを通じてネットワーク リソースを見つけることを意味します。 host は、正当なインターネット ホストのドメイン名または IP アドレスを意味します。空の場合は、デフォルトのポート 80 が使用されます。 URL に abs_path が指定されていない場合、リクエスト URI として使用する場合は、通常、ブラウザーがこのタスクを自動的に完了します。
例:
1. 入力:
www.guet.edu.cn
ブラウザは自動的に次のように変換します: http://www.php.cn/
2、http:192.168.0.116:8080 /index.jsp

2. HTTPプロトコルの詳細説明 – リクエストセクション

http リクエストは、リクエスト行、メッセージ ヘッダー、リクエスト本文の 3 つの部分で構成されます

1. リクエスト行はスペースで区切られたメソッド記号で始まり、その後にリクエストされた URI とプロトコルのバージョンが続きます。 メソッド Request-URI HTTP-Version CRLF
Method はリクエスト メソッドを表します。統合リソース識別子、HTTP-Version は要求された HTTP プロトコルのバージョンを示し、CRLF は復帰と改行を示します (最後の CRLF を除き、個別の CR または LF 文字は許可されません)。

リクエストメソッドは多数あります(メソッドはすべて大文字) 各メソッドの説明は次のとおりです:
GET Request-URIで特定されるリソースの取得リクエスト
POST Request-URIで特定されるリソースの後に新しいデータを追加します
HEAD 取得要求 Request-URI で識別されるリソースの応答メッセージ ヘッダー
PUT サーバーにリソースの保存を要求し、Request-URI を識別子として使用します
DELETE サーバーに Request-URI で識別されるリソースの削除を要求します
TRACE リクエスト受信したリクエスト情報をサーバーに送り返すため、主にテストまたは診断に使用されます
CONNECT 将来の使用のために予約されています
OPTIONS サーバーのパフォーマンスをクエリするためのリクエスト、またはリソースに関連するオプションと要件をクエリするためのリクエスト
アプリケーション例:
GET メソッド:ブラウザのアドレス バーに URL を入力して Web ページにアクセスすると、ブラウザは GET メソッドを使用してサーバーからリソースを取得します。例: GET /form.html HTTP/1.1 (CRLF)

POST メソッドは、リクエストされたサーバーがリクエストに添付されたデータを受け入れる必要があり、フォームの送信によく使用されます。
例:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)
...
HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF) //この CRLF は、メッセージ ヘッダーが終了する前にメッセージが終了したことを示しますheader
user =jeffrey&pwd=1234 //次の行は送信されたデータです

HEAD メソッドは GET メソッドとほぼ同じです。HEAD リクエストの応答部分については、HTTP ヘッダーに含まれる情報は GET リクエストで取得したものと同じです。この方法を使用すると、リソースの内容全体を送信することなく、Request-URI で識別されるリソースに関する情報を取得できます。この方法は、ハイパーリンクの有効性、アクセス可能かどうか、最近更新されたかどうかをテストするためによく使用されます。
2. リクエストヘッダについては後述
3. リクエストボディ(省略)

3. HTTPプロトコルの詳細説明 - レスポンス

リクエスト メッセージを受信して​​解釈した後、サーバーは HTTP レスポンス メッセージを返します。

HTTP レスポンスも、ステータス行、メッセージ ヘッダー、レスポンス本文の 3 つの部分で構成されます
1 ステータス行の形式は次のとおりです:
HTTP-Version Status-Code Reason-Phrase CRLF
このうち、HTTP-Version は、サーバーの HTTP プロトコルのバージョン。Status-Code はサーバーから返された応答ステータス コードを表します。Reason-Phrase はステータス コードのテキストの説明を表します。
ステータス コードは 3 桁で構成され、最初の数字は応答のカテゴリを定義し、可能な値は 5 つあります。
1xx: 指示情報 -- リクエストが受信され、処理が継続されていることを示します。
2xx: 成功 -- を示します。リクエストが処理されたこと 正常に受信、理解、受け入れられたこと
3xx: リダイレクト -- リクエストを完了するにはさらに操作を実行する必要があります
4xx: クライアント側エラー -- リクエストに構文エラーがあるか、リクエストを実行できません
5xx : サーバー側エラー - サーバーはリクエストを実行できませんでした 正当なリクエスト
共通のステータス コード、ステータスの説明、説明:
200 OK //クライアント リクエストは成功しました
400 Bad Request //クライアント リクエストには構文エラーがあるため、リクエストを実行できませんサーバーによって理解される
401 Unauthorized //リクエストは承認されていません。このステータスコードはWWW-Authenticateヘッダーフィールドと一緒に使用する必要があります
403 Forbidden //サーバーはリクエストを受信しましたが、サービスの提供を拒否しました
404 Not Found //要求されたリソースが存在しません。例: 間違った URL が入力されました
500 Internal Server Error / /サーバーで予期しないエラーが発生しました
503 Server Unavailable //サーバーは現在クライアントのリクエストを処理できず、返される可能性があります一定期間後に通常に戻ります
例: HTTP/1.1 200 OK (CRLF)

2. レスポンスヘッダについては後述します

3. 応答本文はサーバーから返されるリソースの内容です

4. HTTPプロトコルの詳細説明 - メッセージヘッダー

HTTP メッセージは、クライアントからサーバーへのリクエストとサーバーからクライアントへの応答で構成されます。要求メッセージと応答メッセージはどちらも開始行 (要求メッセージの場合は開始行が要求行、応答メッセージの場合は開始行がステータス行)、メッセージ ヘッダー (オプション)、空行 (CRLF のみ) で構成されます。行)、メッセージ本文(オプション)の構成。

HTTP メッセージ ヘッダーには、通常のヘッダー、リクエスト ヘッダー、レスポンス ヘッダー、エンティティ ヘッダーが含まれます。
各ヘッダー フィールドは、名前 + ":" + スペース + 値で構成されます。メッセージ ヘッダー フィールドの名前は、大文字と小文字が区別されません。

1. 通常のヘッダー
通常のヘッダーには、すべてのリクエストおよび応答メッセージに使用されるいくつかのヘッダー フィールドがありますが、送信されるエンティティには使用されず、送信されるメッセージにのみ使用されます。
例:
Cache-Control は、キャッシュ命令を指定するために使用されます。キャッシュ命令は一方向であり (応答に表示されるキャッシュ命令はリクエストに表示されない場合があります)、独立しています (1 つのメッセージのキャッシュ命令は影響しません)。別のメッセージ) 処理のためのキャッシュ メカニズム)、HTTP 1.0 で使用される同様のヘッダー フィールドは Pragma です。
リクエスト時のキャッシュ ディレクティブには、no-cache (リクエストまたは応答メッセージをキャッシュできないことを示すために使用)、no-store、max-age、max-stale、min-fresh、only-if-cached が含まれます。命令には次が含まれます: public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage
例: IE ブラウザ (クライアント) にキャッシュしないように指示する場合ページのサーバー側 JSP プログラムは次のように記述できます。この関数は上記のコードと同等で、通常は // 両方が一緒に使用されます
このコードは、送信される応答メッセージの共通ヘッダー フィールドを設定します: Cache-Control: no-cache

Date 共通ヘッダー フィールドは、メッセージが生成された日時を示します

Connection 共通ヘッダー フィールドを使用すると、接続固有のオプションを送信できます。たとえば、接続が継続的であることを指定するか、「close」オプションを指定して、応答が完了した後に接続を閉じるようにサーバーに通知します

2. リクエスト ヘッダー
リクエスト ヘッダーを使用すると、クライアントはリクエストの追加情報とクライアント自身の情報をサーバーに渡すことができます。
一般的に使用されるリクエスト ヘッダー
Accept
Accept リクエスト ヘッダー フィールドは、クライアントが受け入れる情報の種類を指定するために使用されます。例: Accept: image/gif、クライアントが GIF 画像形式のリソースを受け入れたいことを示します。Accept: text/html、クライアントが HTML テキストを受け入れたいことを示します。
Accept-Charset
Accept-Charset リクエスト ヘッダー フィールドは、クライアントが受け入れる文字セットを指定するために使用されます。例: Accept-Charset:iso-8859-1、gb2312 このフィールドが要求メッセージに設定されていない場合、デフォルトでは任意の文字セットが受け入れられます。
Accept-Encoding
Accept-Encoding リクエスト ヘッダー フィールドは Accept と似ていますが、許容可能なコンテンツ エンコーディングを指定するために使用されます。例: Accept-Encoding:gzip.deflate このドメインがリクエスト メッセージに設定されていない場合、サーバーはクライアントがさまざまなコンテンツ エンコーディングを受け入れることができると想定します。
Accept-Language
Accept-Language リクエスト ヘッダー フィールドは Accept と似ていますが、自然言語を指定するために使用されます。例: Accept-Language:zh-cn このヘッダー フィールドがリクエスト メッセージに設定されていない場合、サーバーはクライアントがさまざまな言語を受け入れることができると想定します。
Authorization
Authorization リクエスト ヘッダー フィールドは主に、クライアントが特定のリソースを表示する権利を持っていることを証明するために使用されます。ブラウザがページにアクセスし、サーバーから応答コード 401 (Unauthorized) を受信すると、Authorization リクエスト ヘッダー フィールドを含むリクエストを送信して、サーバーに検証を依頼できます。
ホスト (このヘッダー フィールドはリクエストを送信するときに必要です)
ホスト リクエスト ヘッダー フィールドは主に、リクエストされたリソースのインターネット ホストとポート番号を指定するために使用されます。通常、HTTP URL から抽出されます。例:
ブラウザを使用します。次のように入力します:
http://www.php.cn/
ブラウザによって送信されるリクエスト メッセージには、次のようなホスト リクエスト ヘッダー フィールドが含まれます:
ホスト:
www.guet.edu.cn
ここではデフォルトのポート番号 80 が使用されます。ポート番号を指定すると、次のようになります。 ホスト: www.guet.edu.cn: オンライン フォーラムにログインするときのポート番号
User-Agent
を指定します。 、オペレーティング システムの名前とバージョン、および使用しているブラウザの名前とバージョンがリストされているウェルカム情報が表示されることがよくあります。実際、サーバー アプリケーションはユーザーから起動されます。 - エージェントは、リクエスト ヘッダー フィールドからこの情報を取得します。 User-Agent リクエスト ヘッダー フィールドを使用すると、クライアントはサーバーにオペレーティング システム、ブラウザ、およびその他の属性を伝えることができます。ただし、ブラウザを自分で作成し、User-Agent リクエスト ヘッダー フィールドを使用しない場合、このヘッダー フィールドは必要ありません。サーバーはその情報を知ることができません。
リクエストヘッダーの例:
GET /form.html HTTP/1.1 (CRLF)
Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel, application/vnd.ms-powerpoint,application/msword,*/* (CRLF)
Accept-Language:zh-cn (CRLF)
Accept-Encoding:gzip,deflate (CRLF)
If-Modified-Since:Wed,05 2007 年 1 月 11:21:25 GMT (CRLF)
If-None-Match:W/"80b1a4c018f3c41:8317" (CRLF)
ユーザー エージェント:Mozilla/4.0(互換性;MSIE6.0;Windows NT 5.0) (CRLF)
ホスト:www.guet.edu.cn (CRLF)
接続:キープアライブ (CRLF)
(CRLF)

3. 応答ヘッダー
応答ヘッダーを使用すると、サーバーは、ステータス行に配置できない追加の応答情報、およびサーバーに関する情報と、Request-URI で識別されるリソースへの次のアクセスに関する情報を渡すことができます。
一般的に使用される応答ヘッダー
Location
Location 応答ヘッダー フィールドは、受信者を新しい場所にリダイレクトするために使用されます。 Location 応答ヘッダー フィールドは、ドメイン名を変更するときによく使用されます。
サーバー
サーバー応答ヘッダー フィールドには、サーバーがリクエストを処理するために使用するソフトウェアに関する情報が含まれています。 User-Agent リクエスト ヘッダー フィールドに対応します。以下は、
Server 応答ヘッダー フィールドの例です。
Server: Apache-Coyote/1.1
WWW-Authenticate
WWW-Authenticate 応答ヘッダー フィールドは 401 (Unauthorized) 応答メッセージに含める必要があり、クライアントは 401 応答を受信しますメッセージを送信し、Authorization ヘッダー フィールドを送信してサーバーに検証を要求すると、サーバーの応答ヘッダーにはこのヘッダー フィールドが含まれます。
例: WWW-Authenticate:Basic realm="Basic Auth Test!" //サーバーがリソースの要求に基本的な検証メカニズムを使用していることがわかります。


4. エンティティ ヘッダー
リクエスト メッセージとレスポンス メッセージの両方でエンティティを送信できます。エンティティはエンティティ ヘッダー フィールドとエンティティ本文で構成されますが、エンティティ ヘッダー フィールドとエンティティ本文を一緒に送信する必要があるという意味ではありません。エンティティ ヘッダーは、エンティティ本体に関するメタ情報 (例: エンティティ本体の有無) とリクエストによって識別されるリソースを定義します。
一般的に使用されるエンティティ ヘッダー
Content-Encoding
Content-Encoding エンティティ ヘッダー フィールドは、メディア タイプの修飾子として使用され、その値はエンティティ本体に適用された追加コンテンツのエンコーディングを示します。で参照されるメディア タイプは、対応するデコード メカニズムを使用する必要があります。 Content-Encoding は、ドキュメントの圧縮方法を記録するために使用されます。例: Content-Encoding: gzip
Content-Language
Content-Language エンティティ ヘッダー フィールドは、リソースで使用される自然言語を記述します。このフィールドが設定されていない場合、エンティティ コンテンツはすべての言語の読者に利用可能であると想定されます。例: Content-Language:da
Content-Length
Content-Length エンティティ ヘッダー フィールドは、エンティティ本体の長さを示すために使用され、バイト単位で格納された 10 進数として表されます。
Content-Type
Content-Type エンティティ ヘッダー フィールドの用語は、受信者に送信されるエンティティ本文のメディア タイプを示します。例:
Content-Type: text/html; charset=ISO-8859-1
Content-Type: text/html; charset=GB2312
Last-Modified
Last-Modified エンティティ ヘッダー フィールドは、エンティティの最終変更日を示すために使用されます。リソースと時間。
Expires
Expires エンティティ ヘッダー フィールドは、応答の有効期限が切れる日時を示します。プロキシ サーバーまたはブラウザが一定期間後にキャッシュ内のページを更新できるようにするには (以前にアクセスしたページに再度アクセスするときは、そのページをキャッシュから直接ロードして、応答時間を短縮し、サーバーの負荷を軽減します)、次のことができます。 Expires エンティティ ヘッダー フィールドを使用して、ページの有効期限を指定します。例: Expires: Thu, 15 Sep 2006 16:23:12 GMT
HTTP 1.1 のクライアントとキャッシュは、他の不正な日付形式 (0 を含む) を期限切れとして扱う必要があります。例: ブラウザーがページをキャッシュしないようにするには、Expires エンティティ ヘッダー フィールドを使用して、それを 0 に設定することもできます。JSP のプログラムは次のとおりです: response.setDateHeader("Expires","0");

5. Telnetを使用してhttpプロトコルの通信プロセスを観察します

実験の目的と原理: MS の Telnet ツールを使用して、http リクエスト情報を手動で入力してサーバーにリクエストを送信します。サーバーがリクエストを受信、解釈し、受け入れると、応答が返され、画面に表示されます。 Telnet ウィンドウを使用して、http プロトコルの通信プロセスを知覚的な観点から理解します。

実験手順:

1. Telnet を開きます1.1 Telnet を開きます
Run-->cmd-->telnet を開きます

1.2 Telnetエコー機能をオンにするlocalechoを設定する

2. サーバーに接続してリクエストを送信
2.1 open
www.guet.edu.cn 80 //ポート番号は省略できないことに注意してください

HEAD /index.asp HTTP/1.0
Host:www.guet.edu.cn
/*リクエスト方法を変更して桂林電子ホームページのコンテンツをリクエストすることができます。次のようにメッセージを入力してください*/

www を開きます。 guet.edu. cn 80
GET /index.asp HTTP/1.0 //要求されたリソースのコンテンツ
ホスト:www.guet.edu.cn

2.2 open www.sina.com.cn 80 //コマンドプロンプトで直接telnetと入力します www.sina.com.cn 80 HEAD /index.asp HTTP/1.0
Host:www 。 sina.com.cn

3 実験結果:

3.1 情報 2.1 を要求することで得られる応答は次のとおりです:

HTTP/1.1 200 OK : 木、2007 年 3 月 08 日07:17 :51 GMT接続: キープアライブ タイプ: text/html
Expries: Thu,08 Mar 2007 07:16:51 GMT
セット Cookie: ASPSESSIONIDQAQBQQQB=BEJCDGKADEDJKLKKAJEOIMMH ; パス=/
キャッシュ制御: プライベート



//リソースの内容は省略されました

3.2 情報 2.2 を要求することで得られる応答は次のとおりです:

HTTP/1.0 404 Not Found //リクエストが失敗しましたDate: Thu, 08 Mar 2007 07:50:50 GMTServer: Apache/2.0.54

Last-Modified: Thu, 30 Nov 2006 11:35 :41 GMT

ETag: "6277a-415-e7c76980"Accept-Range: bytes
X-Powered-By: mod_xlayout_jh/0.0.1vhs.markII.remix
Vary: Accept-Encoding
Content-Type: text/html
X-キャッシュ: zjm152-78.sina.com.cn からのミス
経由: 1.0 zjm152-78.sina.com.cn:80
X-キャッシュ: th-143 からのミス。 sina.com.cn
接続: 閉じる




ホストへの接続が失われました


続行するには任意のキーを押してください...

4. 注: 1. 入力エラーがある場合、リクエストは成功しません。
2. ヘッダーフィールドでは大文字と小文字が区別されません。
3. HTTP プロトコルの詳細については、RFC2616 を参照し、
http://www.php.cn/ でファイルを見つけてください。
4. バックグラウンド プログラムを開発するには、http プロトコルをマスターする必要があります

6. HTTPプロトコル関連の技術補足

1. 基本:
高レベルのプロトコルには、ファイル転送プロトコル FTP、電子メール転送プロトコル SMTP、ドメイン ネーム システム サービス DNS、ネットワーク ニュース転送プロトコル NNTP および HTTP プロトコルなどが含まれます。
仲介者には 3 種類あります: プロキシとゲートウェイチャネル (トンネル) では、プロキシが URI の絶対形式に基づいてリクエストを受け入れ、メッセージのすべてまたは一部を書き換え、フォーマットされたリクエストを URI 識別子を通じてサーバーに送信します。ゲートウェイは、他のサーバーの上の層として機能する受信プロキシであり、必要に応じてリクエストを基礎となるサーバー プロトコルに変換できます。チャネルは、メッセージを変更しない 2 つの接続間の中継ポイントとして機能します。チャネルは、通信が仲介者 (ファイアウォールなど) を通過する必要がある場合、または仲介者がメッセージの内容を識別できない場合によく使用されます。
プロキシ: 他のクライアントへのリクエストを確立するためにサーバーまたはクライアントとして機能できる中間プログラム。リクエストは内部的に、または可能な変換を介して他のサーバー経由で渡されます。プロキシは、リクエスト メッセージを送信する前に、リクエスト メッセージを解釈し、可能であれば書き換える必要があります。プロキシは、多くの場合、ファイアウォールを介してクライアントのポータルとして機能し、ユーザー エージェントによって完了されないプロトコル経由のリクエストを処理するヘルパー アプリケーションとしても機能します。
ゲートウェイ: 他のサーバーの仲介として機能するサーバー。プロキシとは異なり、ゲートウェイは、要求されたリソースのオリジン サーバーであるかのように要求を受け入れます。要求元のクライアントは、ゲートウェイを処理していることを認識しません。
ゲートウェイは、ファイアウォールを介してサーバー側のポータルとして機能することが多く、非 HTTP システムに保存されているリソースにアクセスするためのプロトコル トランスレーターとしても機能します。
チャネル (トンネル): 2 つの接続間のリレーとして機能する中間プログラムです。チャネルは、一度アクティブ化されると、HTTP 要求によって開始される可能性がありますが、HTTP 通信に属しているとは見なされません。中継された接続の両端が閉じられると、チャネルは消滅します。チャネルは、ポータルが存在する必要がある場合、または仲介者が中継されたトラフィックを解釈できない場合によく使用されます。

2. プロトコル分析の利点 - HTTP アナライザーがネットワーク攻撃を検出します
モジュール形式で高レベルのプロトコルを分析および処理することが、将来の侵入検出の方向性となります。
HTTP の一般的に使用されるポート 80、3128、8080 とそのプロキシは、ネットワーク セクションのポート タグで指定されます

3. HTTP プロトコルのコンテンツの長さ制限の脆弱性により、サービス拒否攻撃が引き起こされます
POST メソッドを使用する場合、次のように設定できますContentLenth は送信する必要があるコンテンツのデータ長を定義します (ContentLenth:999999999 など)。攻撃者はこの欠陥を利用して、送信が完了するまでガベージ データを WEB サーバーに送信し続けることができます。 WEBサーバーのメモリが不足しています。この攻撃方法は基本的に痕跡を残しません。
http://www.php.cn/

4. HTTP プロトコルの特性を利用してサービス拒否攻撃を実行するためのいくつかのアイデア
サーバーは攻撃者によって偽造された TCP 接続リクエストの処理で忙しく、時間がありません。クライアントの通常のリクエストに注意してください (結局のところ、クライアントの通常のリクエストの割合は非常に小さいです)。このとき、通常のクライアントから見ると、サーバーは応答を失います。この状況をサーバーが対象と呼びます。 SYN フラッド攻撃 (SYN フラッド攻撃) につながります。
Smurf、TearDrop などは、ICMP メッセージを使用してフラッド攻撃や IP フラグメンテーション攻撃を実行します。この記事では、「通常の接続」方法を使用してサービス拒否攻撃を生成します。
ポート 19 は、初期の Chargen 攻撃、つまり Chargen_Denial_of_Service に使用されていましたが、!彼らが使用した方法は、2 つの Chargen サーバー間に UDP 接続を生成することで、サーバーが大量の情報を処理してダウンすることを可能にしました。その場合、WEB サーバーを停止するには 2 つの条件が必要です。1. Chargen サービスがある。2. Chargen サービスがある。 HTTP サービス
メソッド: 攻撃者はソース IP を偽造し、N Chargen に接続リクエスト (Connect) を送信します。 Chargen が接続を受信すると、1 秒あたり 72 バイトの文字ストリームが返されます (実際、この速度は、実際のネットワーク状況) をサーバーに送信します。

5. HTTP フィンガープリント技術
HTTP フィンガープリントの原理は基本的に同じです。異なるサーバーによる HTTP プロトコルの実行のわずかな違いを記録することは、TCP/IP スタック フィンガープリントよりもはるかに複雑です。カスタマイズされた HTTP サーバー構成ファイルでは、プラグインやコンポーネントを追加すると、HTTP 応答情報を簡単に変更できるため、識別が困難になりますが、TCP/IP スタックの動作のカスタマイズにはコア層の変更が必要となるため、簡単に変更できます。
Apache などのオープンソースの HTTP サーバーの場合、ユーザーはソース コード内のバナー情報を変更し、HTTP サービスを再起動して有効にすることができます。 Microsoft の IIS や Netscape などの HTTP サーバーは、バナー情報を格納する DLL ファイルで変更できます。これについては関連記事で説明しているため、ここでは詳しく説明しません。バナー情報をぼかす別の方法は、プラグインを使用することです。
一般的なテストリクエスト:
1: HEAD/Http/1.0 は基本的な HTTP リクエストを送信します
2: DELETE/Http/1.0 は削除リクエストなどの許可されていないリクエストを送信します
3: GET/Http/3.0 は不正なバージョンの HTTP プロトコルリクエストを送信します
4: GET/JUNK/1.0 は誤った仕様の HTTP プロトコルを送信しますリクエスト
HTTP 指紋識別ツール Httprint は、統計原理を使用し、ファジー論理手法を組み合わせることで、HTTP サーバーの種類を効果的に判断できます。さまざまな HTTP サーバーによって生成された署名を収集および分析するために使用できます。

6. その他: ブラウザー使用時のユーザーのパフォーマンスを向上させるために、最新のブラウザーは、Web ページを閲覧するときに複数の接続を同時に確立し、Web ページ上の複数のアイコンを迅速に取得します。これは、Web ページ全体の転送をすばやく完了するのに便利です。
HTTP1.1 は、この継続的な接続方法と、次世代の HTTP プロトコルを提供します。HTTP-NG は、
より効率的な接続を提供するために、セッション制御、リッチ コンテンツ ネゴシエーション、およびその他の方法のサポートを追加しました。

以上がHTTP の概要、http はアプリケーション層に属するオブジェクト指向プロトコルです。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?Apr 23, 2025 am 12:16 AM

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?Apr 23, 2025 am 12:13 AM

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

session.gc_maxlifetime構成設定とは何ですか?session.gc_maxlifetime構成設定とは何ですか?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでセッション名をどのように構成しますか?PHPでセッション名をどのように構成しますか?Apr 23, 2025 am 12:08 AM

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、