HTTPヘッダーとは?

it-terminology
スポンサーリンク
スポンサーリンク

HTTPに触れていると、HTTPヘッダーなるものが登場した人もいると思います。

私も何回か出くわしたことがありましたが、完璧に理解はできていませんでした。

今回はこのHTTPヘッダーについて見ていこうと思います。

HTTPヘッダーとは

HTTP(HyperText Transfer Protocol)は、Web上でデータをやり取りするためのプロトコルです。

HTTPプロトコルとは何なのか?
HTTPは「HyperText Transfer Protocol」の略で、webサイトとサーバー間で情報のやり取りを行う際に決められているルールのことを指します。

そして、HTTPヘッダーはこのデータのやり取りの関する情報を含む部分で、サーバーとクライアント間の通信を円滑にするためのメタデータを提供します。

HTTPヘッダーはリクエストヘッダーレスポンスヘッダーに分かれています。

リクエストヘッダー

リクエストヘッダーは、クライアント(通常はwebブラウザ)からサーバーに送信されるリクエストに付加される情報です。

以下のようなものがあります。

Host

リクエストがどのサーバーに送信されるべきかを指定します。

例:’Host:www.example.com’

User-Agent

リクエストを送信しているクライアントの情報(ブラウザやOSなと)を示します。

例:’User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64)’

Accept

クライアントが受け入れることができるメディアタイプ(MIMEタイプ)を示します。
HTML、画像、JSONなど様々な形式を受け入れることができます。

例:’Accept : text/html’  ‘Accept : application/json’

Authorization

認証情報を送信するために使用されます。

例:’Authorization : Basic dXNlcjpwYXNz’

Cookie

Cクライアントがサーバーから受け取ったCookie情報を再送信するために使用されます。

Cookieについての概要はこちら

ファーストパーティクッキー、サードパーティクッキーとは?概要と使用法について
Cookieの種類であるファーストパーティクッキーとサードパーティクッキーの概要とその使用法について解説していきます。

レスポンスヘッダー

レスポンスヘッダーは、サーバーからクライアントに送信されるレスポンスに付加される情報です。

以下のようなものがあります。

1.Content-Type

レスポンスするコンテンツのメディアタイプを示します。
これによりクライアントは、データの正しい処理方法を理解できます。

例:’Content-Type : text/html; charset=UTF-8′

2.Content-Length

レスポンスボディのバイト数を示します。

例:’Content-Length : 348′

Set-Cookie

サーバーがクライアントにクッキーを設定するために使用します。
セッション管理のために使用されることが一般的です。

例:’Set-Cookie : sessionId = abc123; Path=/; HttpOnly’

Cache-Control

キャッシュの制御方法を指定します。

例:’Cache-Control : no-cache’  ‘Cache-Control : max-age=3600’

Server

サーバーのソフトウェア情報を示します。

例:’Server : Apache/2.4.41(Ubuntu)’  

具体例

HTTPリクエストの例

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html

このリクエストは、クライアントが’www.example.com’サーバーの’index.html’ページを取得しようとしていることを示しています。

  • GET:リクエストメソッドで、指定されたリソースを取得することを示します。
  • /index/html:取得しようとしているリソースのパス。
  • HTTP/1.1:使用しているHTTPのバージョン。
  • Host:リクエストが送信されるサーバーのホスト名。
  • User-Agent:リクエストを送信しているクライアント情報。
  • Accept:クライアントが受け入れることができるメディアタイプ。

HTTPレスポンスの例

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 138
Server: Apache/2.4.41 (Ubuntu)
Set-Cookie: sessionId=abc123; Path=/; HttpOnly

<html>
<head><title>Example</title></head>
<body><p>This is an example page.</p></body>
</html>

このレスポンスは、サーバーが’index.html’ページを正常に提供したことを示しています。

  • HTTP/1.1 200 OK:ステータスラインで、HTTPのバージョンとステータスコード200(成功)を示す。
  • Content-Type:レスポンスのコンテンツタイプ(HTML)と文字エンコーディング(UTF-8)を示す。
  • Content-Length:レスポンスボディの長さをバイト単位で示す。
  • Server:サーバーのソフトウェア情報を示す。
  • Set-Cookie:クライアントに送信するクッキー情報を設定。

HTTPヘッダーのセキュリティ

HTTPヘッダーはセキュリティにも重要な役割を果たしています。

‘Strict-Transport-Security’ヘッダーは、ブラウザに対して常にHTTPSで接続するように指示します。

また、’X-Content-Type-Options: nosniff’はブラウザがレスポンスのContent-Typeヘッダーを信用し、不正なコンテンツの実行を防ぐために使用されます。

まとめ

以上のようにHTTPヘッダーは、HTTPを用いたWeb通信において重要な役割を持ち、情報を提供します。

HTTPヘッダーを理解し、自身で設定することができれば、自身のWebサービスの機能を充実させたり、セキュリティを高めることができます。

Cookieの具体的な使い方について詳しく知りたい方はこちら

Cookieの使い方【どうやったらブラウザで使えるようになるのか?】
CookieとはWeb体験を快適にするために用いられている技術で、本記事ではCookieの具体的な使い方について紹介します。
スポンサーリンク
スポンサーリンク
it-terminology
お猿SEをフォローする
タイトルとURLをコピーしました