Aracılığıyla paylaş


HTTP Tanımlama Bilgileri

HTTP tanımlama bilgileri sunucuya istemci uygulamasının sisteminde durum bilgilerini depolamak ve almak için bir mekanizma sağlar. Bu mekanizma, web tabanlı uygulamaların seçili öğeler, kullanıcı tercihleri, kayıt bilgileri ve daha sonra alınabilecek diğer bilgiler hakkındaki bilgileri depolamasına olanak tanır.

Tanımlama bilgileriyle ilgili Set-Cookie ve Tanımlama Bilgisi olmak üzere iki üst bilgi vardır. Set-Cookie üst bilgisi, kullanıcının sisteminde tanımlama bilgisi oluşturmak için kullanılan http isteğine yanıt olarak sunucu tarafından gönderilir. Eşleşen etki alanı ve yolu olan bir tanımlama bilgisi varsa, Tanımlama Bilgisi üst bilgisi istemci uygulaması tarafından bir sunucuya gönderilen HTTP isteğiyle birlikte eklenir.

Set-Cookie yanıt üst bilgisi aşağıdaki biçimi kullanır:

Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]

Desen adı=değer izleyen bir veya daha fazla dize dizisi (noktalı virgülle ayrılmış) Set-Cookie yanıt üst bilgisine eklenmelidir. Sunucu, verileri istemcinin sisteminde depolamak için bu dize dizilerini kullanabilir.

Son kullanma tarihi, tarih Greenwich Ortalama Saati'nde (GMT) son kullanma tarihi olduğuexpires=tarihi kullanılarak ayarlanır. Son kullanma tarihi ayarlanmadıysa, İnternet oturumu sona erdikten sonra tanımlama bilgisinin süresi dolar. Aksi takdirde, tanımlama bilgisi son kullanma tarihine kadar önbellekte kalıcı hale getirir. Tarih aşağıdaki biçimi kullanmalıdır:

GÜN, DD-MMM-YYYYYSS:MM:SS GMT

GÜN

Haftanın günü (Sun, Mon, Tue, Wed, Thu, Fri, Sat).

DD

Ayın günü (örneğin, ayın ilk günü için 01).

MMM

Ay için üç harfli kısaltma (Ocak, Şubat, Mart, Nisan, Mayıs, Haz, Temmuz, Ağustos, Eylül, Ekim, Kas, Aralık).

YYYY

Yıl.

SS

Askeri saat içindeki saat değeri (örneğin, 22 saat 22:00 olabilir).

MM

Dakika değeri.

SS

İkinci değer.

etki alanı adını belirtmek, domain=domain_namedesenini kullanarak kalıcı tanımlama bilgileri için isteğe bağlıdır ve tanımlama bilgisinin geçerli olduğu etki alanının sonunu belirtmek için kullanılır. Etki alanı belirten oturum tanımlama bilgileri reddedilir. Belirtilen etki alanı adının bitişi istekle eşleşiyorsa, tanımlama bilgisi, tanımlama bilgisinin gönderilip gönderilmeyeceğini belirlemek için yol ile eşleşmeye çalışır. Örneğin, biten etki alanı adı .microsoft.com ise, belirtilen desenin istekle eşleşip eşleşmediğini görmek için home.microsoft.com ve support.microsoft.com istekleri denetlenir. Tanımlama bilgilerinin .com, .edu ve co.jp gibi yaygın olarak kullanılan etki alanı adı sonları için ayarlanmasını önlemek için etki alanı adının en az iki veya üç dönemi olmalıdır. İzin verilebilen etki alanı adları .microsoft.com, .someschool.edu ve .someserver.co.jp benzer olabilir. Yalnızca belirtilen etki alanındaki konaklar bir etki alanı için tanımlama bilgisi ayarlayabilir.

path=some_pathkullanarak yolu ayarlamak isteğe bağlıdır ve tanımlama bilgisinin geçerli olduğu URL'lerin bir alt kümesini belirtmek için kullanılabilir. Bir yol belirtilirse, bu yolla eşleşen istekler için tanımlama bilgisi geçerli kabul edilir. Örneğin, belirtilen yol /example ise, /examplecode ve /example/code.htm yollarına sahip istekler eşleşebilir. Yol belirtilmezse, yolun Set-Cookie üst bilgisi ile ilişkili kaynağın yolu olduğu varsayılır.

Tanımlama bilgisi, tanımlama bilgisinin yalnızca https sunucularına gönderilebileceğini belirten güvenli olarak da işaretlenebilir.

Son olarak tanımlama bilgisi httponly olarak işaretlenebilir (öznitelikler büyük/küçük harfe duyarlı değildir), tanımlama bilgisinin betiklenemez olduğunu ve güvenlik nedeniyle istemci uygulamasına gösterilmemesi gerektiğini gösterir. Bu, Windows Internet'in içinde tanımlama bilgisinin InternetGetCookie işlevi aracılığıyla alınamayacağı anlamına gelir.

Tanımlama bilgisi üst bilgisi, etki alanı ve yolu istekle eşleşen bir tanımlama bilgisi olan tüm HTTP isteklerine eklenir. Tanımlama bilgisi üst bilgisi aşağıdaki biçime sahiptir:

Cookie: <name>=<value> [;<name>=<value>]...

adı=değerini kullanan bir veya daha fazla dize dizisi, tanımlama bilgisinde ayarlanan bilgileri içerir.

Tanımlama Bilgileri Oluşturma

Microsoft Internet Explorer için tanımlama bilgileri oluşturmanın üç yöntemi vardır: Microsoft JScript kullanma, WinINet işlevlerini kullanma ve CGI betiği kullanma. Tüm yöntemlerin Set-Cookie üst bilgisinde yer alan bilgileri ayarlaması gerekir.

Dinamik HTML (DHTML) nesne modeli kullanılarak tanımlama bilgileri, aşağıdaki örnekte gösterildiği gibi belge nesnesinin tanımlama bilgisi özelliği çağrılarak ayarlanabilir.

<SCRIPT language="JavaScript">
<!--
    document.cookie = "SomeValueName = Some_Value";
-->
</SCRIPT>

Tanımlama bilgileri, InternetSetCookie işlevi kullanılarak uygulamalar tarafından oluşturulabilir. Daha fazla bilgi için bkz. Tanımlama BilgisiAyarlama.

Tanımlama bilgileri, isteğin HTTP yanıtında yer alan bir CGI betiğinin parçası olarak bir Set-Cookie üst bilgisi eklenerek oluşturulur.

Aşağıdaki örnek, Perl kullanan bir Set-Cookie üst bilgisi içeren bir CGI betiğidir.

print "Set-Cookie:Test=test_value; 
      expires=Sat, 01-Jan-2000 00:00:00 GMT;
      path=/;"

Not

WinINet, sunucu uygulamalarını desteklemez. Ayrıca, bir hizmetten kullanılmamalıdır. Sunucu uygulamaları veya hizmetleri için Microsoft Windows HTTP Services (WinHTTP)kullanın.