0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「Webを支える技術」読書メモ#9 HTTPヘッダ

Posted at

本記事の内容
Webを支える技術を読んだ際のノートのようなものです。
省略している部分もあり、書籍の内容を完全に要約するものではありません。

今回は第9章あたりの内容です。

仕様

最初はRFC 2616で定められたが、今はRFC 9110で修正されている。

電子メールの仕様(RFC 822)のヘッダから育った。
※そのせいで生まれたバッドノウハウもある。

認証、キャッシュなどヘッダ+メソッドやステータスコードといった組み合わせで実現できる機能もあったりする。

よく使うヘッダ

日時系

Date, Expires などなど。全てGMT。

MIMEメディアタイプ

  • Content-Type(タイプ/サブタイプの形式)
  • charset
    • Body内の情報よりもこちらが優先されるので注意
    • デフォルトはISO8859-1

言語タグ

Content-Language

コンテントネゴシエーション

  • Accept
    • 処理できるメディアタイプ
    • qが大きいほうが優先
    • 対応なければ406
  • Accept-Charset
  • Accept-Language

Content-Length

ボディの長さを指定して、ファイルサイズの解決をする。
静的ファイルなどのやり取りで活躍する。

:movie_camera: 動的な場合は...
チャンク転送でちょっとずつ転送する。
Tranfer-Encoding

認証

HTTPなのか、HTTPSなのかによってもおすすめは変わる。
HTTPSならSSL/TLSによって暗号化、認証、改ざんの検知ができるため。

Basic

かんたんにデコードできるので、HTTP通信の場合は怖い。

Digest

組み立て方は知ることができる。
auth-initでメッセージ全体のチェックができる。

メッセージ全体は平文なので注意:warning:
また、導入できる環境には制約がある。

WSSE

標準じゃないので注意 :warning:
Basic認証やDigest認証がだめな場合に検討する。

クライアント/サーバの両方がパスワードを保持する必要がある。

OpenID

シンプルなシングルサインオン。

OAuth

認可情報を委譲することで、Webサービス間でデータをやりとりする。

キャッシュ

キャッシュ用ヘッダで制御とかができる。
有効期限なんかも設定できるが、有効期限1年位上は意味ないので非推奨。

条件付きGETでキャッシュが有効かどうか確認したりもできる。
If-XXXXなどを使う。

Keep-Alive

クライアント/サーバ間のTCPコネクションを1つずつ切断していてはリクエストのたびに処理が大変なので、パイプライン化してまとめて接続し続けるためのヘッダ。
レスポンスを待たずに次のリクエストを送っちゃう。

標準仕様外だけどよく使われるヘッダ

Content-Disposition

リソースのファイル名をサーバー側から指定するヘッダ。

Slug

ファイル名のヒントをクライアント側から教えるヘッダ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?