State (Durum)

Artık kararsızlığı ve HTTP istek yöntemlerinin kaynağın durumunu nasıl değiştirmemesi gerektiğini bildiğinize göre, HTTP'deki durumu kontrol edebilecek diğer mekanizmalara bakalım. Kullanıcılar için durumu izlemenin iki yolu vardır:

  1. Authorization headers

  2. Cookies

Varnish bunlardan birini gördüğünde, isteği arka uçtan geçirir ve yanıtı önbelleğe almaz. Bunun nedeni, bir kimlik doğrulama başlığı veya bir çerez gönderildiğinde, bu isteği gerçekleştiren her kullanıcı için verilerin farklı olacağı anlamına gelir.

Kimlik doğrulama başlığı veya tanımlama bilgisi içeren bir isteğin yanıtını önbelleğe almaya karar verirseniz, istenen ilk kullanıcıya özel bir yanıt sunacaksınız. Diğer kullanıcılar da görecek ve cevap potansiyel olarak hassas veya alakasız bilgiler içerebilir.

Çerezler durumu takip etmek için ana aracımızdır ve çerezleri kullanmayan web sitelerinin gelmesi zordur. Bizim uygulamada oturumları oluşturmak için çerezleri kullanıyoruz. Dil, bölge ve diğer tercihleri ​​takip etmek için çerezleri de kullanabiliriz.

HTTP açısından, çerezler hem istekte hem de cevap sürecinde görünür. Set-Cookie yanıt başlığı yayınlayarak bir veya daha fazla çerez ayarlanır. İstemci bu cevabı alır ve çerezleri yerel çerez deposunda saklar.

Aşağıdaki örnekte görebileceğiniz gibi, bir çerez bir "&" işareti ile sınırlandırılmış bir anahtar-değer çifti setidir.

Set-Cookie: language=tr&country=tr

Bir istemci bir alan adı için çerezler sakladığında, her istek üzerine çerezleri sunucuya geri göndermek için bir çerez isteği başlığı kullanır. Çerezler ayrıca belirli bir durum gerektirmeyen isteklerlede (örneğin statik dosyalar) gönderilir.

Cookie: language=tr&country=tr

Bu iki aşamalı işlem, çerezlerin nasıl ayarlanıp kullanıldığını gösteriyor. Sadece Cookie ve Set-Cookie arasındaki farkı bilin. İlki bir istek başlığı; ikincisi bir cevap başlığıdır.

Belirtildiği gibi, Varnish çerezleri önbelleğe almaz. Ne zaman bir Cookie başlığına sahip bir istek görürse, istek arka uca iletilir ve cevap önbelleğe alınmaz. Bir istek çerez içermiyor, ancak yanıt Set-Cookie başlığı içeriyorsa, Varnish sonucu önbellekte saklamaz.

Last updated