Saya telah membaca bahwa yang terbaik adalah menyajikan konten statis (css, javascript, dll.) Dari domain atau subdomain tanpa cookie untuk kinerja yang lebih baik. Saya menganggap domain tidak kurang cookie secara default. Bagaimana saya menentukan bahwa saya tidak ingin menggunakan cookie?
24
Jawaban:
Ketika hal-hal seperti YSlow dan Page Speed memberi tahu Anda untuk mengatur domain tanpa cookie, yang sebenarnya mereka maksudkan adalah melayani media dari domain di mana Anda tidak akan menyetel apa pun, atau belum menyetel (global) di masa lalu. Kadang-kadang ini dapat dicapai dengan menggunakan sub-domain, seperti
media.domain.com
, ataustatic.domain.com
, namun jika Anda menetapkan cookiedomain.com
yang berlaku untuk domain secara keseluruhan - cookie untuk*.domain.com
- maka cookie ini akan dikirim oleh klien kembali ke server pada setiap permintaan untuk setiap domain yang terkait dengandomain.com
. Ini termasuk semua sub-domain.Cookie global menjadi masalah jika Anda memutuskan untuk tidak menggunakan
www.
domain Anda. Tanpa sub-domain khusus untuk mengatur cookie, semua cookie harus ditetapkan*.domain.com
agar agar dapat berfungsi.Masalah cookie global ini adalah mengapa Anda akan melihat media statis disajikan dari tempat-tempat seperti
ytimg.com
di YouTube.ytimg.com
tidak akan pernah menayangkan konten dinamis yang dapat mengatur cookie, yang berarti cookie tidak akan pernah dikirim dari klien kembali ke server ketika domain ini adalah bagian dari permintaan HTTP.Jika Anda yakin bahwa Anda tidak akan pernah memiliki cookie yang ditetapkan
*.domain.com
maka Anda dapat menggunakan sub-domain untuk kebutuhan Anda. Perlu diketahui bahwa sebagian besar waktu jika Anda berintegrasi dengan situs atau layanan lain melalui Javascript, mereka akan mengatur cookie domain global.Di Apache (dan saya yakin setiap server web lainnya), Anda dapat mengatur atau menghapus header sebelum permintaan dijawab. Ini tidak akan memperbaiki masalah klien yang mengirim cookie ke server Anda, tetapi itu akan membuat domain Anda tidak pernah mengirim atau mengatur cookie pada awalnya. Hanya masalah jika Anda menayangkan konten yang tidak statis dari domain tanpa cookie Anda, yang mengalahkan tujuannya.
Ini akan menghapus header untuk cookie yang ada dan untuk membuat cookie baru. Sekali lagi, hanya masalah jika Anda menayangkan konten dari domain statis Anda yang berpotensi dapat mengatur cookie. Tempatkan ini di konfigurasi situs atau virtualhost Anda (yang tergantung pada OS, server, dan versi Anda dapat berupa sejumlah tempat).
sumber
Ini bukan tentang apa yang perlu Anda lakukan untuk memiliki domain cookie - itu lebih tentang apa yang harus Anda tidak lakukan ... Untuk memiliki domain cookie Anda harus memastikan aplikasi Anda berjalan pada domain yang tidak menetapkan cookie setiap . Ini biasanya berarti tidak memiliki login, tidak memiliki analisis google, tidak memiliki sesi - yaitu hanya melayani media dan tidak ada yang lain. Jelas ini tergantung pada pengaturan Anda.
Satu kesalahan yang saya buat baru-baru ini adalah bahwa saya tidak membuat perbedaan antara domain dan sub-domain. Saya mulai melayani semua media saya dari
http://media.example.com
berpikir bahwa itu adalah domain tanpa koki tetapi sebenarnya itu adalah sub- domain dan saya menemukan banyak cookie saya dari situs utama dihttp://www.example.com
mana ditetapkan pada tingkat domain dan oleh karena itu mencemari sub-domain saya yang tidak punya makanan. Berikut ini tautan untuk cara saya memecahkan masalah itu: /server/160210/nginx-serve-static-content-from-a-cookieless-domainsumber
www.example.net
tidak akan dikirim kestatic.example.net
, tetapi cookie dariexample.net
akan. Solusinya adalah dengan mengarahkan ulangexample.net
kewww.example.net
.Anda tidak harus menentukan bahwa Anda tidak ingin menggunakan cookie, Anda hanya tidak menggunakannya.
sumber