HTTP のバックアップソース(No.1)

#author("2021-09-27T21:57:46+09:00","default:k1rou","k1rou")
*HTTP [#v57737f7]
-Hyper Text Transfer Protocol

**HTTP とは [#wb7410dc]
-[[通信プロトコル]]
-アプリケーション層([[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バージョン)
-2行目以降:メッセージヘッダ(ヘッダフィールド)
-空白行
-メッセージボディ

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


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

-HEAD
-OPTIONS
-PUT
-DELETE
-TRACE
-CONNECT

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

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

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

-圧縮
--Accept-Encoding

***HTTPヘッダ >エンティティヘッダー [#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バージョン、ステータスコード、レスポンスフレーズ)
-2行目以降:メッセージヘッダ(ヘッダフィールド)
-空白行
-メッセージボディ

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

-主なステータスコード
|コード |説明 |説明 |h
|200 |OK |正常終了 |
|301 |Moved Permanently |ページが移動(恒久的) |
|302 |Found (Moved Temporarily) |ページが移動(一時的) |
|307 |Temporary Redirect |リダイレクト(一時的) |
|401 |Unauthorized |認証が必要 |
|403 |Forbidden |リクエストを拒否 |
|404 |Not Found |ページが存在しない |
|451 |Unavailable For Legal Reasons |法的理由で利用できない |
|500 |Internal Server Error |サーバ内部でエラー発生 |
|503 |Service Unavailable |サービスが利用できない |

***HTTPヘッダ >レスポンスヘッダー [#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参照モデル]]