HTTP のバックアップ差分(No.3)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2021-11-15T00:44:42+00:00","default:k1rou","k1rou")
#author("2022-02-23T09:31:14+09:00","default:k1rou","k1rou")
*HTTP とは [#wb7410dc]
**名称 [#y701ef18]
-Hyper Text Transfer Protocol
-[[通信プロトコル]]
-アプリケーション層([[TCP/IPモデル]])

**概要 [#q77ad573]
-アプリケーション層([[TCP/IPモデル]])の[[通信プロトコル]]
-処理単位で通信を切断する[[ステートレス]]なプロトコル。
-[[ウェルノンポート番号]](TCP標準ポート番号):80

*HTTPのバージョン [#j6924f28]
**HTTP1.0 [#x58119d1]
-ヘッダ情報の扱いを追加。[[Cookie]]の登場。

**HTTP1.1 [#k29ced97]
-RFC2616
-Keep-Alive、[[プロキシ]]を追加。

**HTTP/2 [#t3ab2d40]
-「[[HTTP/2]]」参照

**HTTP/3 [#k284f17c]
-「[[HTTP/3]]」参照

*HTTPメッセージ(リクエストメッセージ) [#xd2c07c0]
**メッセージの構成要素 [#pb159521]
-1行目:リクエストライン(メソッド、[[URI]]、HTTPバージョン)
-1行目:リクエストライン
--メソッド
--[[URI]]
--HTTPバージョン
---ブラウザが対応しているバージョン

-2行目以降:メッセージヘッダ(ヘッダフィールド)

-空白行
-メッセージボディ

**メソッド [#e16ea2cb]
-GET
--参照系
--サーバにデータの送信を要求する
--WebブラウザからデータをWebサーバに渡す方法
---URLの後ろにパラメタを付加する
---クエリストリング (URLパラメータ)
---送信可能なデータ:テキストのみ([[URLエンコード]])
---最大文字数:255文字
---環境変数:QUERY_STRING


-POST
--更新系
--サーバにデータを送信する
--WebブラウザからデータをWebサーバに渡す方法
---メッセージボディにデータをセットする
---送信可能なデータ:テキスト、バイナリ

-HEAD
-OPTIONS
--サーバにメッセージヘッダの送信を要求する(ボディ部は不要)

-PUT
--サーバにファイルを送信する

-DELETE
-TRACE
--サーバにデータの消去を要求する

-CONNECT
--サーバにトンネルの確立を要求する

-OPTIONS
-TRACE

**ヘッダフィールド [#g709e084]
-ジェネラルヘッダ
-リクエストヘッダ
-レスポンスヘッダ
-エンティティヘッダ

**HTTPヘッダ >リクエストヘッダー [#a9181123]
***リクエストヘッダ [#a9181123]
-必須のヘッダ項目
--Host -送信元ホスト名([[FQDN]])と[[ポート番号]]

-条件付きGET
--If-Modified-Since
--If-None-Match

-圧縮
--Accept-Encoding

**HTTPヘッダ >エンティティヘッダー [#i36afacb]
***エンティティヘッダー [#i36afacb]
-Referer
--[[リファラ]]
--リンク元ページのURL
--これをチェックしてページ遷移が想定通りであるかを確認することができる
--自サイトへの訪問者がどのリンクを辿って来たのかを確認できる
--自サイトがどのサイト(リンク)から参照されているのかを分析できる

-Content-Type
--[[MIME]]メディアタイプ
--例「application/xhtml+xml」
--「/」の左がタイプ、右がサブタイプ
--タイプ http://www.iana.org/cgi-bin/mediatypes.pl
--サブタイプ http://www.iana.org/assignments/media-types/

-言語タグ(Content-Language)

*HTTPメッセージ(レスポンスメッセージ) [#q89fece0]
**メッセージの構成要素 [#m8f09124]
-1行目:リクエストライン(HTTPバージョン、ステータスコード、レスポンスフレーズ)
-1行目:リクエストライン
--HTTPバージョン
--ステータスコード
--レスポンスフレーズ

-2行目以降:メッセージヘッダ(ヘッダフィールド)
-空白行
-メッセージボディ

**ステータスコード [#z9aca55e]
-番号帯
|コード |説明 |説明 |h
|1xx |Informational|処理中  |
|2xx |Success      |成功    |
|3xx |Redirection  |リダイレクト |
|4xx |Client Error |クライアントエラー |
|5xx |Server Error |サーバエラー |

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

**HTTPヘッダ >レスポンスヘッダー [#ie2d793d]
**ヘッダフィールド [#q7cd040f]
***レスポンスヘッダー [#ie2d793d]
-圧縮
--Conten5-Encoding

*HTTP認証 [#iec8de76]
-[[Basic認証]]
-[[Digest認証]]

*キャッシュの制御 [#i9239956]
-Pragma
-Expires
-Cache-Control

*持続的接続 [#g9103073]
-Keep-Aliveヘッダ

*HTTPの拡張仕様 [#r6d02e39]
-[[WebDAV]]

*関連サイト [#l5afa05a]
-Security headers quick reference - web.dev~
https://web.dev/security-headers/

*関連用語 [#v692e132]
-[[IANA]]が管理
-[[Cookie]]
-[[CGI]]
-[[hidden]]
-[[HTTPS]]
-[[HTTPヘッダインジェクション]]
-[[冪等性]]
-[[X-Forwarded-For]]
-[[OSI参照モデル]]