HTTP基礎入門

日常でインターネットを利用しない日は無いという方が大多数になるほど普及したインターネットですが、Webブラウザーを起動してWebページを閲覧するという仕組みについてはHTTPというプロトコルが根幹を成しております

Webやインフラのシステムエンジニアは、HTTPのアクセスログを眺める方も多いかと思います

また、これからシステムエンジニアを目指すという方もHTTPを勉強していて損になることはないと思います

HTTPは長い歴史を持っていますが、新規格のHTTP2を控えているといってもまだまだ現役です

HTTPについての勉強資料として非常に良質なページを見つけたのでご紹介します

atmarkitの超入門HTTPプロトコルです

今回はHTTPプロトコルに関連してよく見聞きする「ユーザーエージェント」「リファラ」「クッキー」や認証、高速化などについて説明する。
スポンサーリンク
スポンサーリンク

記事の内容

全3回でhttpについて解説されていますが内容は以下の通りです

Webの基本プロトコル、HTTPとは?

Webブラウザを使ってWebサイト(Webサーバ)にアクセスする場合、そこでは「HTTP(Hypertext Transfer Protocol)」というネットワークプロトコルが利用されている。Webブラウザのアドレスバーに「http://www.atmarkit.co.jp/」などと入力した場合の、「http:」の部分のことである。これはHTTPというプロトコルを使って、サイトwww.atmarkit.co.jpにアクセスせよ、という指令である。

昨今ではセキュリティを強化するため、HTTPに代わってHTTPS(HTTP over SSL/TLS、常時SSLなどとも呼ばれる)の導入も要請されるようになった。だがHTTPSはセキュアな通信路上でHTTPを利用できるようにしたものであり、中核のプロトコルについてはHTTPと大きな違いはない。

HTTPプロトコルの仕組み

HTTPプロトコルの仕組みは非常にシンプルである。Webサーバ(HTTPのサーバ)とWebブラウザ(HTTPのクライアント)の2つが、TCPの80番ポートを使って、サーバ/クライアント形式で通信する。最初にサーバ側がTCPの80番ポートで待ち受け(リッスン)していて、クライアント側はその80番ポートに対してTCPの接続を行う。

一般的なWebブラウザでは、WebサーバとWebブラウザ間で複数のHTTP通信路(TCPコネクション)を開設して、幾つかのデータを同時に取得して通信時間を短縮している。

現在のHTTP規格(HTTP/1.1以降)では、基本的にはコネクションはずっとオープンしたままでデータのやりとりを行う。データのやりとりが終わってもTCPのコネクションをクローズしない。

明示的にCloseするように指示された場合には(例えばサイトからサインアウトする場合など)、コネクションを終了するようになっている。

HTTPは基本的にはステートレスな(“状態”を持たない)、シンプルなプロトコルである。Webサーバに対して要求をする前に、通信路をセットアップするなどの準備は不要だし、データを取得した後もクローズ処理などは不要である。それぞれのGET要求はお互い独立しているため、同時並行処理すれば比較的容易に高速化できる。

HTTPプロトコルの歴史

HTTPプロトコルの通信の例

HTTPプロトコルの基本的なやりとり

プロトコル名「HTTP」で、メソッド名「GET」のエントリが幾つも並んでいる。これらが実際にWebサーバとWebブラウザの間でやりとりされているコマンドの例である。1つのWebページを表示させるためには、現在ではこのように複数のコマンドがやりとりされるのが普通である。

HTTPプロトコルの詳細

●HTTP要求の例
●HTTP応答の例

HTTP要求の一覧

ここはHTTPのメソッドについて書かれてます
超重要なのでご一読ください!!

HTTPヘッダフィールドの一覧

HTTPステータスコードの一覧

超重要なのでご一読ください!!

ユーザーエージェント(User Agent)

「ユーザーエージェント(UA)」とは、Webサーバにアクセスするクライアント側のプログラムのことであり、通常はWebブラウザのことを指す。HTTPのクライアントはHTTPのGET要求の送信時に、自身の属性に応じた適切なUA文字列をヘッダフィールドにセットして送信する。これはHTTPのクライアントからサーバ側に渡す情報である。

HTTPリファラ

「HTTPリファラ(HTTP referer)」とは、簡単に言うとWebページがどこから指されているか(リンクされているか)を表す情報である(リファラの正しいつづりは「Referrer」だが、HTTPの規格では「referer」となっている)。

クッキー

「HTTPクッキー(HTTP cookie)」とは、Webサーバとクライアント間でユーザーの状態などを維持・管理するための仕組みである。

コンテンツのキャッシュ管理

Web表示の高速化で最も効果が大きい、コンテンツ(ファイルなど)のキャッシング機能について

ユーザー認証

Webページによっては、誰にでもアクセスを許可するのではなく、特定のユーザーにのみ許可したいことがある。そんな場合は、ユーザー認証によるリソースへのアクセス制限を利用する。

HTTPの高速化

必要なTCPのコネクションを抑えつつ、通信効率を向上させる方法について

最後に

atmarkitの超入門HTTPプロトコルについて解説いたしましたが、一番乗の勉強はWebサーバのアクセスログを見てみる事だと思います

Webサーバのアプリケーションについてはapacheやnginx、IISなどが有名ですが、まずはネット上の情報や市販のテキストも多いapacheでWebサーバを構築してみることをオススメします

その際にはファイアウォールによるフィルタリングなど、セキュリティの意識を持って構築することにお気をつけいただければと思います

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする