1 はじめに
メールサーバーSMTPポートを外部公開すると、
毎日毎日不正アクセスを試みるヤツラが多いことに気づきます。
ヤツラが何を企んでいるのか、流れるパケットをWiresharkで監視してみると、
よく分からないプロトコルの通信がたくさん流れています。
それで、2022年現在いろいろな通信プロトコルについて調べている最中です。
本記事は、わたしが調べた結果であり、自分の備忘録として残しておくものです。
探せば同様の記事はすぐに見つかりますが、こうして自分で記録を作ることによって、
より理解が深まったのではないかと思っています。
今記事は、HTML編です。
2 HTTPとは?
Hypertext Transfer Protocol(ハイパーテキスト・トランスファー・プロトコル、略称HTTP)
とは、WebブラウザがWebサーバーと通信する際に主として使用する通信プロトコルであり、
インターネット・プロトコル・スイートのメンバです。
HTMLなどのテキストによって記述されたWebページなどのコンテンツの送受信に用いられます。
2.1 HTTPのバージョン
HTTPは、最初は非常にシンプルなプロトコルでした。
月日がながれ、
バージョンが上がるごとに機能追加や通信速度改善に対する取り組みが行われています。
また、HTTPは前方互換性が保たれるように策定されています。
それぞれのバージョンの概要を表2.1-1にまとめます。
2.2 HTTPのプロトコルとパケット
HTTPはTCPプロトコル上で動作しており、Webサーバーにアクセスするために使用しています。
ポート番号は、80番です。
HTTPは、とてもシンプルなプロトコルです。
HTTPでは、データを要求するHTTPリクエストと、
それに応答して要求されたデータを送り返すHTTPレスポンスの2つのやりとりを繰り返して
Webページを表示しています。
HTTPリクエストとHTTPレスポンスのパケットの基本構造は、 図2.1-2に示すようになっています。
2.3 URLの構成
Webアクセスのためには、 WebブラウザでURL(Uniform Resource Locators)を指定する必要があります。
インターネット上の資源の場所を示すURLは、以下の書式で記述します。 大きく3つの構成要素があります。
3 HTTPリクエスト
3.1 HTTPリクエストの構成
HTTPリクエストのメッセージは、
リクエスト行、リクエストヘッダー、空白行、メッセージボディーで構成されます。
3.2 メソッド
メソッドは、
Webブラウザでリクエストを送る際に、ホームページの取得などといった命令にあたります。
3.3 リクエストヘッダー
HTTPの要求メッセージは、命令を指定したメソッドに続き、
さらに詳細な指定を行うためのHTTP一般ヘッダーやリクエストヘッダーを持っています。
これにより、どのドキュメントを取得するかを指定することができます。
4 HTTPレスポンス
4.1 HTTPレスポンスの構成
HTTPレスポンスのメッセージは、
ステータス行、レスポンスヘッダー、空白行、メッセージボディーで構成されます。
4.2 ステータスコード
ステータス行にあるステータスコードは多くの種類があり、
ステータスコードの番号帯により以下の通り内容によって、
5つ(情報、成功、リダイレクト、クライアントエラー、サーバーエラー)に分類できます。
4.3 レスポンスヘッダー
HTTPレスポンスメッセージもHTTPリクエストメッセージと同様に、
詳細な情報を付加するために複数のHTTP一般ヘッダーやレスポンスヘッダーを持ちます。
レスポンスヘッダーには、表4.3-1のようなものがあります。
以上
HTMLだと、
思うように編集することは難しく、やろうすればとっても時間が掛かります。
ですので、本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。
役に立てていただければ、うれしく思います。
このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元と著者名は明らかにしてください。
なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。