Jenis media MIME yang tepat untuk file PDF

1285

Saat bekerja dengan PDF, saya telah menemukan tipe MIME application/pdfdan yang application/x-pdflainnya.

Apakah ada perbedaan antara kedua jenis ini, dan jika demikian, apakah itu? Apakah yang satu lebih disukai daripada yang lain?

Saya sedang mengerjakan aplikasi web yang harus memberikan PDF dalam jumlah besar dan saya ingin melakukannya dengan cara yang benar, jika ada.

friedo
sumber

Jawaban:

1705

Jenis MIME standar adalah application/pdf. Tugas didefinisikan dalam RFC 3778, Aplikasi / pdf Jenis Media , yang dirujuk dari registri MIME Media Type .

Jenis MIME dikendalikan oleh badan standar, Internet Assigned Numbers Authority (IANA). Ini adalah organisasi yang sama yang mengelola server nama root dan ruang alamat IP.

Penggunaan x-pdfmendahului standardisasi tipe MIME untuk PDF. Jenis MIME di x-namespace dianggap eksperimental, sama seperti yang di vnd.namespace dianggap khusus vendor. x-pdfmungkin digunakan untuk kompatibilitas dengan perangkat lunak lama.

Chris Hanson
sumber
6
Pembaruan 2020: Pada titik ini, application/pdfjenis ini harus digunakan - kecuali jika Anda harus kompatibel dengan perangkat lunak yang benar-benar tua tidak menggunakan x-pdf...
janniks
156

Ini adalah konvensi yang ditentukan dalam RFC 2045 - Ekstensi Surat Internet Multiguna (MIME) Bagian Satu: Format Badan Pesan Internet .

  1. Nilai [subtipe] pribadi (dimulai dengan "X-") dapat didefinisikan secara bilateral antara dua agen yang bekerja sama tanpa registrasi atau standardisasi luar. Nilai-nilai tersebut tidak dapat didaftarkan atau distandarisasi.

  2. Nilai standar baru harus didaftarkan ke IANA seperti yang dijelaskan dalam RFC 2048 .

Pembatasan serupa berlaku untuk tipe tingkat atas. Dari sumber yang sama,

Jika jenis tingkat atas lain digunakan untuk alasan apa pun, ia harus diberi nama yang dimulai dengan "X-" untuk menunjukkan statusnya yang tidak standar dan untuk menghindari kemungkinan konflik dengan nama resmi masa depan.

(Perhatikan bahwa per RFC 2045, "[m] jenis media dan subtipe SELALU peka-huruf", jadi tidak ada perbedaan antara penafsiran 'X-' dan 'x-'.)

Jadi wajar untuk menebak bahwa "application / x-foo" digunakan sebelum IANA mendefinisikan "application / foo". Dan itu masih dapat digunakan oleh orang-orang yang tidak mengetahui tugas token IANA.

Seperti kata Chris Hanson, tipe MIME dikendalikan oleh IANA. Ini dirinci dalam RFC 2048 - Extensipose Internet Mail Extensions (MIME) Bagian Empat: Prosedur Pendaftaran . Menurut RFC 3778 , yang dikutip oleh IANA sebagai definisi untuk "aplikasi / pdf",

Jenis media aplikasi / pdf pertama kali terdaftar pada tahun 1993 oleh Paul Lindner untuk digunakan oleh protokol gopher; pendaftaran kemudian diperbarui pada tahun 1994 oleh Steve Zilles.

Jenis "application / pdf" telah ada selama lebih dari satu dekade. Jadi menurut saya di mana pun "aplikasi / x-pdf" telah digunakan dalam aplikasi baru, keputusan itu mungkin tidak disengaja.

GargantuChet
sumber
28

Dari jenis Media Wikipedia,

Jenis media terdiri dari jenis, subtipe, dan parameter opsional. Sebagai contoh, file HTML dapat ditunjuk sebagai teks / html; charset = UTF-8.

Jenis media terdiri dari nama tipe tingkat atas dan nama sub tipe, yang selanjutnya disusun menjadi apa yang disebut "pohon".

top-level type name / subtype name [ ; parameters ]

top-level type name / [ tree. ] subtype name [ +suffix ] [ ; parameters ]

Semua jenis media harus didaftarkan menggunakan prosedur pendaftaran IANA. Saat pohon-pohon berikut dibuat: standard, vendor, personalatau vanity, tidak terdaftarx.

Standar:

Jenis media di pohon standar tidak menggunakan facet pohon (awalan).

type / media type name [+suffix]

Contoh: "application / xhtml + xml", "image / png"

Penjaja:

Pohon vendor digunakan untuk jenis media yang terkait dengan produk yang tersedia untuk umum. Itu menggunakan vnd.segi.

type / vnd. media type name [+suffix] - used in the case of well-known producer

type / vnd. producer's name followed by media type name [+suffix] - producer's name must be approved by IANA

type / vnd. producer's name followed by product's name [+suffix] - producer's name must be approved by IANA

Pohon pribadi atau Vanity:

Personal atau Vanity tree termasuk jenis media yang dibuat secara eksperimental atau sebagai bagian dari produk yang tidak didistribusikan secara komersial. Itu menggunakan prs.segi.

type / prs. media type name [+suffix]

Tidak terdaftar x. pohon:

"X." tree dapat digunakan untuk jenis media yang dimaksudkan khusus untuk digunakan di lingkungan pribadi, lokal dan hanya dengan persetujuan aktif dari para pihak yang bertukar. Jenis dalam pohon ini tidak dapat didaftarkan.

Menurut versi sebelumnya dari RFC 6838 - RFC 2048 usang (diterbitkan pada bulan November 1996) , harus jarang, jika pernah, diperlukan untuk menggunakan jenis eksperimental yang tidak terdaftar, dan dengan demikian menggunakan "x-" dan "x." formulir tidak disarankan . Versi sebelumnya dari RFC - RFC 1590 dan RFC 1521 menyatakan bahwa penggunaan notasi "x-" untuk nama sub-tipe dapat digunakan untuk sub-tipe yang tidak terdaftar dan pribadi, tetapi rekomendasi ini sudah usang pada bulan November 1996.

type / x. media type name [+suffix]

Jadi jelas bahwa tipe standar tipe MIME application/pdfadalah yang tepat untuk digunakan sementara Anda harus menghindari menggunakan x-jenis media yang usang dan tidak terdaftar seperti yang dinyatakan dalam RFC 2048 dan RFC 6838 .

Beruntung
sumber
3
@TNguyen: Tidak ada salahnya. :) Saya pikir itu baik untuk memiliki versi lain dari jawaban, sehingga akan memberikan beberapa info tambahan untuk orang yang mencari topik. Juga, ia mengutip beberapa info tambahan, sementara dibandingkan dengan jawaban lain.
sunil