PDF delivery / Content-Type / Content-Disposition

PDFのContent-TypeとDispositionを分ける

PDF納品で混同しやすいContent-Type、Content-Disposition、filename、inlineとattachmentを合成caseで確認します。外部PDFは取得せず、納品票だけをローカルで作ります。

PDF納品の5つの境界

PDFの型が正しくても、表示するか保存するか、名前をどう渡すかは別の条件です。headerを分けて記録します。

type ≠ disposition / display → name → verify
レビュー
Content-Typeapplication/pdfがPDFの型を示す。
inline受け側がブラウザー表示を期待する条件。
attachment保存を促す条件で、表示可否とは分けて確認する。
filename保存名は安全性と文字化けを別に確認する。
filename*国際化された名前の受け側対応を明示する。

安全な確認の順番

  1. Content-TypeでPDFの型を確認する。
  2. inlineかattachmentかを表示・保存の期待に分ける。
  3. filenameとfilename*の受け側対応を確認する。
  4. 実配信へ戻す前にローカル納品票を承認する。

このページは外部PDFやユーザーURLを取得しません。合成headerだけを扱い、外部送信、保存、URL書換は行いません。

6つの合成case

case結果
content-type-pdfPDF media type
inline-displayDisplay inline
attachment-downloadDownload attachment
safe-filenameCheck safe filename
filename-parameterFilename parameter
local-noteLocal handoff