📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の1版が非表示)
137行目: 137行目:
==== HTTPリクエストの構成 ====
==== HTTPリクエストの構成 ====
HTTPリクエストは、以下の要素で構成される。<br>
HTTPリクエストは、以下の要素で構成される。<br>
<br>
POST /submit HTTP/1.1              # リクエスト行
Host: example.com                  # ヘッダフィールド
Content-Type: application/json    # ヘッダフィールド
Content-Length: 38                # ヘッダフィールド
                                    # 空行
{"username": "john", "age": 30}    # メッセージボディ
<br>
<br>
[[ファイル:HTTP Request 1.png|中央]]
[[ファイル:HTTP Request 1.png|中央]]
154行目: 161行目:
  GET /index.html HTTP/1.1
  GET /index.html HTTP/1.1
<br>
<br>
===== ヘッダフィールド =====
===== ヘッダフィールド =====
リクエストの追加情報を含む。<br>
リクエストの追加情報を含む。<br>
166行目: 172行目:
  Accept: text/html
  Accept: text/html
<br>
<br>
 
===== 空行 =====
===== ボディ =====
単純な改行であるが、ヘッダフィールドとメッセージボディを区切る重要な要素である。<br>
主に、POST通信時のパラメータが記述される。<br>
<br>
  # 例
===== メッセージボディ =====
  name=tarou&age=30
主に、POSTリクエスト等でデータを送信する時にパラメータが記述される。<br>
GETリクエストの場合は、空になることが多い。<br>
<br>
  # 例 (POSTパラメータ)
  {"username": "john", "age": 30}
<br>
<br>


==== HTTPレスポンスの構成 ====
==== HTTPレスポンスの構成 ====
HTTPレスポンスは、以下の要素で構成される。<br>
HTTPレスポンスは4つの主要な部分から構成されており、各部分が明確な役割を持つ。<br>
* HTTPプロトコルのバージョン
<br>
* HTTPリクエストが成功したか否か、および、その理由を示すステータスコード
特にヘッダフィールドは、クライアントがレスポンスを適切に処理するための重要な情報を提供する。<br>
* ステータスメッセージ、ステータスコードの非正規の短い説明
<br>
* HTTPリクエストと同様のHTTPヘッダ
# HTTPレスポンスの例
* オプションとして、取得したリソースを含むボディ
HTTP/1.1 200 OK                        # ステータス行
Date: Thu, 14 Nov 2024 12:00:00 GMT    # ヘッダフィールド
Server: Apache/2.4.41 (Unix)            # ヘッダフィールド
Content-Type: text/html; charset=UTF-8  # ヘッダフィールド
Content-Length: 138                    # ヘッダフィールド
                                        # 空行
<nowiki><!DOCTYPE html>                        # ボディ
<html>
  <head>
    <title>Example Page</title>
  </head>
  <body>
    <h1>Hello, World!</h1>
  </body>
</html></nowiki>
<br>
<br>
[[ファイル:HTTP Response 1.png|中央]]
[[ファイル:HTTP Response 1.png|中央]]
<center>図. HTTPレスポンス</center>
<center>図. HTTPレスポンス</center>
<br>
<br>
下表に、主なHTTPレスポンスのステータス番号の一覧を示す。<br>
===== ステータス行 =====
* HTTPプロトコルのバージョン
* ステータスコード (HTTPリクエストが成功の可否、および、その理由が記載)
* ステータスメッセージ、ステータスコードの非正規の短い説明
<br>
下表に、主なHTTPレスポンスのステータスコードの一覧を示す。<br>
* 1xx
* 1xx
*: 情報
*: 情報
198行目: 228行目:
<center>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
{| class="wikitable" | style="background-color:#fefefe;"
|+ HTTPレスポンスのステータス番号
|+ HTTPレスポンスのステータスコード
|-
|-
! style="background-color:#66CCFF; width="30%";" | ステータスコード  
! style="background-color:#66CCFF; width="30%";" | ステータスコード  
226行目: 256行目:
|}
|}
</center>
</center>
<br>
===== ヘッダフィールド =====
レスポンスに関する各種メタ情報がある。<br>
<br>
* HTTPリクエストと同様のHTTPヘッダ
* オプションとして、取得したリソースを含むボディ
<br>
# 例
Date: Thu, 14 Nov 2024 12:00:00 GMT
Server: Apache/2.4.41 (Unix)
Content-Type: text/html; charset=UTF-8
Content-Length: 138
Cache-Control: no-cache
<br>
主要なヘッダフィールドの役割を以下に示す。<br>
* Content-Type
*: メッセージボディのデータ形式を指定
* Content-Length
*: メッセージボディのサイズ (バイト)
* Cache-Control
*: キャッシュの動作を制御
* Set-Cookie
*: クライアントにCookieを設定
* Location
*: リダイレクト先のURLを指定 (3xxステータスで使用)
<br>
===== 空行 =====
単純な改行であるが、ヘッダフィールドとメッセージボディを区切る必須要素である。<br>
<br>
===== メッセージボディ =====
* レスポンスの実際のコンテンツ (HTMLファイルの内容、JSON、画像データ等)
* Content-Typeヘッダで形式を指定する。
<br><br>
<br><br>