Saya sudah banyak mencari di Google subjek ini, membaca berbagai artikel tentang tajuk ini, penggunaannya di Heroku, dan proyek-proyek berdasarkan Django.
Namun, itu semua masih membingungkan di kepalaku.
- Apa tujuan tajuk ini?
- Apakah itu melanggar privasi pengguna?
- Bisakah itu membantu melacak pengguna?
http
http-headers
Stephan
sumber
sumber
Jawaban:
Saat Anda mengoperasikan layanan web yang diakses oleh klien, mungkin sulit untuk menghubungkan permintaan (yang dapat dilihat klien) dengan log server (yang dapat dilihat oleh server).
Idenya
X-Request-ID
adalah bahwa klien dapat membuat beberapa ID acak dan meneruskannya ke server. Server kemudian memasukkan ID itu di setiap pernyataan log yang dibuatnya. Jika klien menerima kesalahan, ia dapat memasukkan ID dalam laporan bug, memungkinkan operator server untuk mencari pernyataan log yang sesuai (tanpa harus bergantung pada stempel waktu, IP, dll).Karena ID ini dibuat (secara acak) oleh klien, ID ini tidak berisi informasi sensitif, dan karenanya tidak melanggar privasi pengguna. Karena ID unik dibuat per permintaan, itu juga tidak membantu melacak pengguna.
sumber
Tujuan: Idempotensi
Dengan ID yang berubah untuk setiap permintaan, tetapi tetap sama jika ada permintaan ulang, penerima dapat memastikan permintaan tidak akan diproses lebih dari sekali.
Ini adalah kutipan dari beberapa penyedia API:
Jika Anda menjadikannya string acak, unik per permintaan , itu tidak akan melanggar privasi Anda, atau mengaktifkan pelacakan.
Jika Anda ingin tahu lebih banyak tentang apa yang ditawarkan idempotensi, baca artikel berwawasan ini .
NB Seperti komentar Stefan Kögl, header ini tidak terstandarisasi - oleh karena itu prefiks "X-" (tidak digunakan lagi).
sumber
Penjelasan menggunakan cerita / analogi
Internet Anda sedang bermain (seperti biasa), jadi Anda menelepon Tellstra dan Anda menunggu di telepon selamanya ...... akhirnya Anda menyerah dan membanting telepon karena frustrasi. (Ini adalah panggilan yang gagal. Dan ada catatannya di log panggilan Tellstra.)
"Itu dia, saya menelepon Ombudsman!"
Tetapi Obmudsman memiliki ribuan catatan panggilan yang harus dilalui (semua pertanyaan yang gagal dari Tellstra). Jika Anda memberi tahu mereka bahwa Anda menelepon Telstra, dan bahwa panggilan Anda tidak berhasil, itu tidak akan cukup: bagaimana Ombudsman akan tahu, dari semua catatan panggilan Tellstra, yang mana milik Anda - sehingga dapat diselidiki lebih lanjut? ?
Di situlah X-Request-ID masuk - kapan pun Anda menelepon Tellstra, Anda akan mengirimkan nomor acak (X-Request-ID) dan ini dicatat dalam catatan Tellstra. Dengan begitu, ombudsman (memiliki akses ke semua catatan) akan dapat menemukan panggilan masuk Anda untuk mencari tahu apa yang salah.
Penerapan cerita ke HTTP
Hal yang sama berlaku untuk permintaan http - ini adalah id yang digunakan untuk membantu Anda (sebagai pengembang back end) mencari tahu apa yang salah ketika klien mengeluarkan Anda dengan kesalahan atau laporan besar.
Itulah ringkasan dasarnya. Ada pertanyaan, dll. Cukup kirim komentar dan saya berharap untuk menjernihkannya.
sumber
Header permintaan ini dapat digunakan untuk sinkronisasi. Katakanlah Anda telah membuat daftar ToDo yang menawarkan kemampuan offline. Pengguna Anda membuat 3 item dan masing-masing diberi UUID unik pada aplikasi offline. Ketika konektivitas jaringan tersedia, catatan dikirim ke server dan ID terkait yang dibuat secara otomatis dari database dikembalikan. Anda kemudian dapat mengganti ID di aplikasi Anda (misalnya atribut "id" dari elemen HTML "li").
sumber