HTTP
2022-10-08 (土) 13:58:27
HTTP とは †
名称 †
- Hyper Text Transfer Protocol
概要 †
- アプリケーション層(TCP/IPモデル)の通信プロトコル
- 処理単位で通信を切断するステートレスなプロトコル。
- ウェルノンポート番号(TCP標準ポート番号):80
HTTPのバージョン †
HTTP1.0 †
- ヘッダ情報の扱いを追加。Cookieの登場。
HTTP1.1 †
- RFC2616
- Keep-Alive、プロキシを追加。
HTTP/2 †
- 「HTTP/2」参照
HTTP/3 †
- 「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-Type
- MIMEメディアタイプ
- 例「application/xhtml+xml」
- 「/」の左がタイプ、右がサブタイプ
- タイプ http://www.iana.org/cgi-bin/mediatypes.pl
- サブタイプ http://www.iana.org/assignments/media-types/
- 言語タグ(Content-Language)
HTTPメッセージ(レスポンスメッセージ) †
メッセージの構成要素 †
- 1行目:リクエストライン
- HTTPバージョン
- ステータスコード
- レスポンスフレーズ
- 2行目以降:メッセージヘッダ(ヘッダフィールド)
- 空白行
- メッセージボディ
ステータスコード †
- 番号帯
コード 説明 説明 1xx Informational 処理中 2xx Success 成功 3xx Redirection リダイレクト 4xx Client Error クライアントエラー 5xx Server Error サーバエラー
- 主なステータスコード
コード 説明 説明 100 Continue 後続データを要求 101 Switching Protocols プロトコルの変更を要求 200 OK リクエストの処理が正常終了 201 Created ファイルの作成が正常終了 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 サービスが利用できない(一時的)
ヘッダフィールド †
レスポンスヘッダー †
- 圧縮
- Conten5-Encoding
HTTP認証 †
キャッシュの制御 †
- Pragma
- Expires
- Cache-Control
持続的接続 †
- Keep-Aliveヘッダ
HTTPの拡張仕様 †
関連サイト †
- Security headers quick reference - web.dev
https://web.dev/security-headers/
- Deprecating the "X-" Prefix and Similar Constructs in Application Protocols (RFC6648)
https://www.rfc-editor.org/rfc/rfc6648