HTTP(Hypertext Transfer Protocol)とは

/ネットワーク

概要

HTTP(Hypertext Transfer Protocol)は、Webページにアクセスするためのプロトコルとして広く利用されています。

HTTP通信の構成

HTTPでは、HTTPメッセージによってクライアントとサーバ間のデータの受渡しを行います。クライアントからサーバへ送るメッセージをリクエスト、サーバからクライアントに返されるメッセージをレスポンスと呼びます。

メッセージは、メッセージヘッダとメッセージボディから構成されます。メッセージヘッダの先頭には、リクエストの場合はメソッド、レスポンスの場合はステータスが格納されます。

リクエスト HTTPメソッド サーバに対する要求と取得するパス
リクエストヘッダ リクエストの構成情報、クライアント情報など
リクエストボディ 送信されるデータ
レスポンス HTTPステータス サーバでの処理結果とメッセージ
レスポンスヘッダ コンテンツの構成情報、クライアント情報など
レスポンスボディ コンテンツ本体
HTTPとHTTPS

HTTPとHTTPS(HTTP Secure)の違いは、通信が暗号化されていないか暗号化されているかの違いです。HTTPSは、Web通信の盗聴を防ぐための仕組みで、現在ではほとんどのWeb通信に利用されます。HTTPとHTTPSの違いは以下になります。

項目 HTTP HTTPS
暗号化 なし あり
URL http:// https://
ポート番号 80 443

HTTPSの暗号化プロトコルとして、SSL(Secure Sockets Layer)/TLS(Transport Layer Security)が利用されています。

メソッド

HTTPメソットは、クライアントからサーバに対して発行する直接の命令で、①メソッド名、②パス、③プロトコル情報で構成されます。

 GET /index.html HTTP/1.1
  ①            ②            ③

主なメソッドの種類は以下になります。

GET Webページの取得
POST Webページの取得
HEAD リソースのヘッダ情報を取得
PUT Webページの内容を作成・置換
DELETE Webページの内容を削除
CONNECT プロキシにトンネリング通信を要求
TRACE クライアントからのリクエストをそまま通す

特にGETメソッドとPOSTメソッドの違いは以下になります。

項目 GETメソッド POSTメソッド
データの格納場所 URLの後ろに付加 メッセージボディにセットしサーバの標準入力を使用
データの種類 テキストのみ テキスト、バイナリ
データのサイズ URLエンコードした状態で255文字まで 制限なし
秘匿性 URLからデータの読取りや改ざんが可能 URLからデータは読取れない
アクセスログ 記録される 記録されない

ステータスコード

HTTPステータスは、サーバでの処理結果を表し、プロトコル情報①、ステータスコード②、ステータスメッセージ③で構成されます。

 HTTP/1.1 200 OK
   ①           ②     ③

主なステータスの種類は以下になります。


成功

200 OK 正常終了
201 Created 正常終了(リソースを生成)
202 Accepted 受付完了(未処理)

リダイレクト


301 Moved Permanently リソースの恒久的な移動
302 Found リソースの一時的な移動
303 See Other リソースが別の場所に存在
304 Not Modified リソースが変更されていない

クライアント
エラー




400 Bad Request 不正なリクエスト
401 Unauthorized HTTP認証を要求
403 Forbidden アクセスを拒否
404 Not Found リソースが見つからない
405 Method Not Found HTTPメソッドが不許可
407 Proxy Authentication Required プロキシ認証が必要
408 Request Tione-out リクエストタイムアウト

サーバエラー

500 Internal Server Error サーバエラー
501 Not Implemented 応答に必要な機能が未実装
503 Service Unavailable HTTPサーバが利用不可

ヘッダ情報

メッセージヘッダには、リクエストとレスポンスの内容に応じた情報が入ります。

Authorization 認証方式や認証情報(リクエスト)
Referer リンク元のURL情報(リクエスト)
User-Agent ブラウザの名称やバージョン情報(リクエスト)
Cookie クライアントがWebサーバに提示するクッキー(リクエスト)
Set-Cookie Webサーバがクライアントにセットするクッキー(レスポンス)
Content-Type 送信するファイルや文字セットの種類(リクエスト/レスポンス)
Server Webサーバのプログラム名やバージョン情報(レスポンス)
Location リダイレクトさせる先のURI情報(レスポンス)
リファラー

リファラー(Referrer、メッセージヘッダでは”Referer”と表記)は、リンク元のURLがセットされます。そのため、Web管理者はReferrerを調べることで、自分のサイトがどのリンクから参照されているか分析することができます。

Referrerにはパラメタを含めたURLがセットされるため、URLにセッション管理情報などをセットしている場合には、それらの情報が漏えいする可能性があります。

クッキー

クッキー(Cookie)とは、Webサーバが、アクセスしてきたクライアントに対しブラウザを通じで一時的にデータを書き込むことで、相手を識別したり、セッションの状態を管理する仕組みです。

クッキーは、WebサーバがHTTPヘッダにセットすることで発行され、それ以降、そのサーバへのアクセス時には毎回自動的にHTTPヘッダに付加されます。クッキーには、以下のような制限があります。

  • 1つのクッキーには最大4,096バイトのデータを記録可能
  • 1つのWebブラウザには最大300個のクッキーが保存可能
  • 1台のWebサーバは同じクライアントに対し最大20個のクッキーが発行可能

 

IT
マネジメント、セキュリティ、ネットワーク、システム
散策路TOP
数学、応用数学、古典物理、量子力学、物性論、電子工学、IT、力学、電磁気学、熱・統計力学、連続体力学、解析学、代数学、幾何学、統計学、論理・基礎論、プラズマ物理、量子コンピュータ、情報・暗号、機械学習、金融・ゲーム理論

 

タイトルとURLをコピーしました