HTTPリクエスト ⇔ HTTPレスポンス / RFC7230

通信プロトコルHTTP

HTTP/1.1 メッセージ形式 概要

 状態:-  閲覧数:1,352  投稿日:2016-05-21  更新日:2016-05-22
start-line と, それに後続するオクテット列からなる
start-line / スタート行
a sequence of octets / オクテット列


a sequence of octets / オクテット列 構成

 閲覧数:265 投稿日:2016-05-22 更新日:2016-05-22 

3層構造

zero or more header fields (collectively referred to as the "headers" or the "header section") / ゼロ個以上のヘッダからなる ヘッダ節
an empty line indicating the end of the header section / ヘッダ節の終端を指示する空行
an optional message body / メッセージ本体(省略可)


HTTP/1.1 メッセージ形式 詳細

 閲覧数:262 投稿日:2016-05-22 更新日:2016-05-23 

階層

- -
start-line スタート行
オクテット列 ゼロ個以上のヘッダフィールド ("headers" または "header section")
オクテット列 ヘッダフィールドの終端を指示する空行
オクテット列 メッセージボディ(省略可)


詳細

- -
start-line / スタート行 start-line / スタート行
a sequence of octets / オクテット列 zero or more header fields (collectively referred to as the "headers" or the "header section") / ゼロ個以上のヘッダフィールド ("headers" または "header section")
a sequence of octets / オクテット列 an empty line indicating the end of the header section / ヘッダフィールドの終端を指示する空行
a sequence of octets / オクテット列 an optional message body / メッセージボディ(省略可)


3.1. Start Line / スタート行

 閲覧数:229 投稿日:2016-05-23 更新日:2016-05-23 
HTTP メッセージは、[ クライアントからサーバへ流れるリクエスト ]か[ サーバからクライアントへ流れるレスポンス ]の何れかになる

この二つの型のメッセージは、次の点でのみ異なる
・start-line の構文は[ リクエストに対しては request-line / レスポンスに対しては status-line ]になる

3.2.Header Fields / ゼロ個以上のヘッダフィールド

 閲覧数:242 投稿日:2016-05-23 更新日:2016-05-23 
大文字小文字を区別しない
・各ヘッダフィールドは、大文字と小文字を区別しないフィールド名で構成されている

HTTPリクエストする際、「Accept-Language」「Accept-Encoding」はどちらが先に送信される?
順番に関する取り決めはない
・ しかしながら、[ リクエストにおける Host や, レスポンスにおける Date ]など,[制御データを含むヘッダフィールド ]を最初に送信することは、良い実装とされる


リクエスト


RFC7231 5.1.  制御ヘッダ
・Cache-Control
・Expect
・Host
・Max-Forwards
・Pragma
・Range
・TE


レスポンス


RFC7231 7.1.  制御データ
・Cache-Control
・Expires
・Date
・Location
・Retry-After
・Vary
・Warning


仕様書を読まなければHTTPを理解できない理由



週間人気ページランキング / 9-28 → 10-4
順位 ページタイトル抜粋 アクセス数
0 さくらVPS0 18
0 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 18
1 PHPのmb_send_mail関数でメール送信できない | メール処理システム 17
2 phpの設定ファイルをphp.ini から分離させても良いの? 12
3 Nginx設定。エラーログレベル | Nginx(Webサーバ) 11
4 「RLogin」で文字化けするようになった場合は、オプション設定 - フォント - 文字セット -「UTF-8」を選択します。  | RLogin(ターミナルエミュレータ) 9
4 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 9
5 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 8
5 ABRT により 問題が検出されました | CentOS 7 (CentOS) 8
5 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 8
6 echo と cat の違い 7
6 Bearerとは? / Bearer Token とは? / 基本的な使い方 7
6 Postfix | メール処理システム 7
6 ImageMagick 6.7.2.7-2.el6 を yum アンインストール / ImageMagick 6.8.8-9 を make アンインストール | ImageMagick(ソフトウェアスイート) 7
7 PHP実行ユーザ設定 / CentOS7 / Nginx | PHP(プログラミング言語) 6
7 Sandboxモードを使うことができるsaharaプラグインを使ってみる 6
7 バーチャルホスト設定には細心の注意を! | バーチャルホスト(Apache) 6
7 grep -rl 置換前文字列 . | xargs sed -i 's/置換前文字列/置換後文字列/g' 6
7 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 6
7 設定 2019/1/22 / 一般ユーザがmailコマンドでメール送信 / 管理者がmailコマンドでメール送信 6
2022/10/5 1:01 更新