HTTP

2022-10-08 (土) 13:58:27

HTTP とは

名称

  • Hyper Text Transfer Protocol

概要

HTTPのバージョン

HTTP1.0

  • ヘッダ情報の扱いを追加。Cookieの登場。

HTTP1.1

HTTP/2

HTTP/3

HTTPメッセージ(リクエストメッセージ)

メッセージの構成要素

  • 1行目:リクエストライン
    • メソッド
    • URI
    • HTTPバージョン
      • ブラウザが対応しているバージョン
  • 2行目以降:メッセージヘッダ(ヘッダフィールド)
  • 空白行
  • メッセージボディ

メソッド

  • GET
    • 参照系
    • サーバにデータの送信を要求する
    • WebブラウザからデータをWebサーバに渡す方法
      • URLの後ろにパラメタを付加する
      • クエリストリング (URLパラメータ)
      • 送信可能なデータ:テキストのみ(URLエンコード)
      • 最大文字数:255文字
      • 環境変数:QUERY_STRING
  • POST
    • 更新系
    • サーバにデータを送信する
    • WebブラウザからデータをWebサーバに渡す方法
      • メッセージボディにデータをセットする
      • 送信可能なデータ:テキスト、バイナリ
  • HEAD
    • サーバにメッセージヘッダの送信を要求する(ボディ部は不要)
  • PUT
    • サーバにファイルを送信する
  • DELETE
    • サーバにデータの消去を要求する
  • CONNECT
    • サーバにトンネルの確立を要求する
    • プロキシサーバを使ったHTTPS通信で使われる
  • OPTIONS
  • TRACE

ヘッダフィールド

  • ジェネラルヘッダ
  • リクエストヘッダ
  • レスポンスヘッダ
  • エンティティヘッダ

リクエストヘッダ

  • 条件付きGET
    • If-Modified-Since
    • If-None-Match
  • 圧縮
    • Accept-Encoding

エンティティヘッダー

  • Referer
    • リファラ
    • リンク元ページのURL
    • これをチェックしてページ遷移が想定通りであるかを確認することができる
    • 自サイトへの訪問者がどのリンクを辿って来たのかを確認できる
    • 自サイトがどのサイト(リンク)から参照されているのかを分析できる
  • 言語タグ(Content-Language)

HTTPメッセージ(レスポンスメッセージ)

メッセージの構成要素

  • 1行目:リクエストライン
    • HTTPバージョン
    • ステータスコード
    • レスポンスフレーズ
  • 2行目以降:メッセージヘッダ(ヘッダフィールド)
  • 空白行
  • メッセージボディ

ステータスコード

  • 番号帯
    コード説明説明
    1xxInformational処理中
    2xxSuccess成功
    3xxRedirectionリダイレクト
    4xxClient Errorクライアントエラー
    5xxServer Errorサーバエラー
  • 主なステータスコード
    コード説明説明
    100Continue後続データを要求
    101Switching Protocolsプロトコルの変更を要求
    200OKリクエストの処理が正常終了
    201Createdファイルの作成が正常終了
    301Moved Permanentlyページが移動(恒久的)
    302Found (Moved Temporarily)ページが移動(一時的)
    307Temporary Redirectリダイレクト(一時的)
    401Unauthorized認証が必要
    403Forbiddenアクセスを禁止、リクエストを拒否
    404Not Foundページが存在しない
    451Unavailable For Legal Reasons法的理由で利用できない
    500Internal Server Errorサーバ内部でエラー発生
    503Service Unavailableサービスが利用できない(一時的)

ヘッダフィールド

レスポンスヘッダー

  • 圧縮
    • Conten5-Encoding

HTTP認証

キャッシュの制御

  • Pragma
  • Expires
  • Cache-Control

持続的接続

  • Keep-Aliveヘッダ

HTTPの拡張仕様

関連サイト

関連用語