Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

ネットワーク (Network)

HTTPリクエストの構造や各ヘッダーの概要について

投稿日:2021年3月4日 更新日:

<目次>

(1) HTTPリクエストの構造や各ヘッダーの概要について
 (1-1) HTTPリクエストの構造
 (1-2) HTTPリクエスト行について
 (1-3) HTTPリクエストの各部分の概要
  (1-3-1) 一般ヘッダー
  (1-3-2) リクエストヘッダー
  (1-3-3) エンティティヘッダー
 (1-4) HTTPリクエストのボディ部について

(1) HTTPリクエストの構造や各ヘッダーの概要について

(1-1) HTTPリクエストの構造

「HTTPリクエストメッセージ」というのは、「クライアントのブラウザ」から「サーバ」に対して送られるメッセージ(リクエストやイベントの内容を表したデータ)の事です。構造は大まかには下図のようになっています。

(図111)HTTPリクエストの構造

(表)HTTPリクエストを構成する要素

項目 両方or片方
(リクエストのみ or リクエストとレスポンス両方に含まれる)
リクエスト行 リクエストのみ
一般ヘッダー 両方にあり
リクエストヘッダー リクエストのみ
エンティティヘッダー 両方にあり
ボディ 両方にあり

各部分の概要について1つずつご紹介します。

目次にもどる

(1-2) HTTPリクエスト行について

URLにアクセスする際のメソッドやプロトコルを指定する行です。

(構文)

[メソッド名] [URI] [HTTPプロトコル]

 

■[メソッド名]

GET   指定URIのリソース情報(Webページの内容など)を取得するメソッドです。
HEAD GETとほぼ同じだが、違いはレスポンスに「メッセージボディ」を含まない点です。
POST 指定URIのリソースにデータを送り、追加/更新するためのメソッドです。

など

■[URI]
リクエスト対象のURIを指定します。

■[HTTPプロトコル]
「HTTP/」の後ろにバージョン番号を付記します。

(例)

GET /XXX/index.html HTTP/1.1

 

目次にもどる

(1-3) HTTPリクエストの各部分の概要

(1-3-1) 一般ヘッダー

・リクエスト/レスポンスのいずれにも適用されるヘッダーです。
・ただし、データ自体には影響せず、主にメタデータの保持に使われます。

(例のご紹介)
■Date
メッセージが生成された日時を表します。
(構文)

Date = "Date" ":" HTTP-date

(例)

Date: Tue, 15 Nov 1994 08:12:31 GMT

 

■Via
「経由」という意味の単語の通り、プロキシやゲートウェイなど、User Agentとサーバとの間で別のノードを経由する場合には必須の項目となります。内容としては、その仲介時に使用するプロトコルや受信者の指定を行います。

(例)

Via: 1.0 rainbow, 1.1 somewhere.com (Apache/1.1)

ユーザーエージェントはHTTP/1.0でリクエストを送り、「rainbow」という名前のプロキシを経由し、更にHTTP/1.1を使って「somewhere.com」という別のプロキシに転送し、目的地のサーバに到達することを意味します。

目次にもどる

(1-3-2) リクエストヘッダー

「リクエストに関する追加情報」や「クライアント自身の情報」を付与するためのヘッダーです。例えば、ブラウザの種類、バージョン、機能などをサーバに伝える事で、サーバがブラウザと互換性があるデータを返却できるように補助します。

(例のご紹介)
■Host
リクエスト対象のリソースがある「ホスト名」と「ポート番号」を指定します。

(例)

Host: HostName:8080

 

■User-Agent
User-AgentはブラウザからWebサイトにアクセスする際に使うソフトウェアで、このフィールドに指定するのは、リクエストを発している端末のユーザーエージェントを記述します。

(例)

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)

 

目次にもどる

(1-3-3) エンティティヘッダー

ボティ部に関する情報を保持するためのヘッダーです。ボディ部が無い場合は、リクエスト対象のリソースに関する情報が記載されます。

(例のご紹介)
■Conent-Length
ボディ部のデータ長を表しています。

(例)

Content-Length: 352

 

■Allow
リクエスト対象URIのリソースにて許可されているメソッドを表しています。この項目の目的は受信者(ブラウザ)に対して、対象のリソースが許可するメソッドを通知する事です。

(例)

Allow: GET, HEAD, PUT

 

目次にもどる

(1-4) ボディ部

ボディ部は全てのリクエストに存在する訳ではありません。GETやHEADといったリソースを取得するのみのメソッドにおいてはボディ部は必須ではありません(PUTメソッド等で必要となる)。内容としては「Content-Type」で指定された形式の、「Content-Length」分の長さのデータが入っています。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-ネットワーク (Network)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

SSLとは?簡単に仕組みや種類についてご紹介(さらっと読めます)

<目次> (1) SSLとは?簡単に仕組みや種類についてご紹介  (1-1) SSLとは?  (1-2) ハッカーの手口について  (1-3) SSL証明書の種類   (1-3-1) EV証明書(Ex …

デフォルトゲートウェイとは?仕組みや特徴をご紹介

  <目次> (1) デフォルトゲートウェイとは?仕組みや特徴をご紹介  (1-1) デフォルトゲートウェイとは?  (1-2) デフォルトゲートウェイの仕組み  (1-3) デフォルトゲー …

公開鍵方式と共通鍵方式の違いや特徴について

  <目次> (1) 公開鍵方式と共通鍵方式の違いや特徴について  (1-1) はじめに  (1-2) 共通鍵方式   (1-2-1) どんな方式?   (1-2-2) 特徴   (1-2- …

GlobalProtectとは?概要・仕組み・VPNとの違い等についてご紹介

  <目次> (1) GlobalProtectとは?概要・仕組み・VPNとの違い等についてご紹介  (1-1) 従来のIPアドレスベースの保護の問題点  (1-2) GlobalProte …

パブリックIPとプライベートIPの違いとは?

  <目次> (1) パブリックIPとプライベートIPの違いとは?  (1-1) パブリックIPアドレスとは?  (1-2) プライベートIPアドレスとは?  (1-3) 比較表 (1) パ …

  • English (United States)
  • 日本語
Top