Accept * HTTP üstbilgilerinde q = 0,5 nedir?


191
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Bu 'q =% f' ne anlama geliyor?

Yanıtlar:


247

Buna göreceli kalite faktörü denir . HTTP / 1.1 Spesifikasyonu, §14.4'ten görülebileceği gibi, kullanıcının 0'dan 1'e kadar bir ölçekte hangi dili tercih edeceğini belirler :

Her dil aralığına, kullanıcının bu aralıkta belirtilen diller için tercihinin bir tahminini temsil eden ilişkili bir kalite değeri verilebilir. Kalite değeri varsayılan olarak "q = 1" dir. Örneğin,

  Accept-Language: da, en-gb;q=0.8, en;q=0.7

"Danca'yı tercih ederim, ancak İngiliz İngilizcesini ve diğer İngilizce türlerini kabul edeceğim."


26
Çok hoş teşekkürler! Ama neden onları sadece tercih sırasına göre listelemiyorsunuz?
kolypto

9
Peki ,% 80 nitelikli en-gb'yi kabul etmek tam olarak ne anlama geliyor?
Pacerier

3
@Pacerier: Web sitenizin çok dilli olması durumunda kullanıcının içeriğin Amerikan İngilizcesi yerine İngiliz İngilizcesinde sunulmasını tercih ettiği anlamına gelir.
Tim Cooper

5
@TimCooper Neden dilleri sıralı veya tercihli değil? Değer, diğerlerinden daha büyük olmak dışında, önemli görünmüyor.
Rob

6
to @kolypto için, ister bir URL'de ister bir başlıkta olsun parametre listeleri örtük bir sıraya sahip değildir.
JP Silvashy

37

Spesifikasyonda göreceli kalite faktörü denir :

Her ortam aralığını, bağıl bir kalite faktörünü göstermek için "q" parametresinden başlayarak bir veya daha fazla kabul parametresi izleyebilir. İlk "q" parametresi (varsa), medya aralığı parametrelerini kabul parametrelerinden ayırır. Kalite faktörleri, kullanıcı veya kullanıcı aracısının, 0 ile 1 arasında q değer ölçeğini kullanarak söz konusu ortam aralığı için göreceli tercih derecesini belirtmesine olanak tanır (bölüm 3.9). Varsayılan değer q = 1'dir.

...

Örnek

Accept: audio/*; q=0.2, audio/basic

"Sesi / temelleri tercih ederim, ancak% 80'lik bir kalite düşüşünden sonra mevcut olan en iyisi ise bana herhangi bir ses türünü gönderin" şeklinde yorumlanmalıdır.

Ayrıca bakınız:


2
Partiye gerçekten geç kaldım - ama "kalitede% 80'lik bir düşüşten sonra" ne demek istiyorsun? Ses dosyasının kalitesi değil, tercih derecesi değil mi? Yoksa bunu yanlış mı okuyorum?
Mave

10
@Mave: Peki, pratikte muhtemelen bir tercih ölçüsü olarak kullanılır. Bununla birlikte, orijinal formülasyonunda, kodlamanın kalitesine dayanması gerektiğine inanıyorum. Örneğin FLAC ve MP3'ü düşünün. Şöyle bir şey söyleyebilirsiniz: "En kötü ihtimalle MP3 sürümünü kayıpsız kalitenin% 50'siyse bana gönder. Değilse, bana FLAC sürümünü gönderin." Böyle bir kaliteyi nasıl ölçebilirim ve bunun pratikte kullanılıp kullanılmadığını bilmiyorum, ama bunun orijinal niyet olduğuna inanıyorum.
Sebastian Paaske Tørholm

1
@ SebastianPaaskeTørholm Buraya daha fazla bilgi almak için geldim. RFC 7231'de bu ikincil anlamı ima eden sadece iki yer var, ancak bana nasıl çalışmanın amaçlandığı çok açık değil, çünkü iki anlam birbiriyle çatışabilir - örneğin imkansız gibi görünüyor q değeri bu şekilde aşırı yüklenirse, daha az kayıplı bir türden daha kayıplı bir tür tercihini ifade etmek.
Noktalı virgül

en çok tercih edilen dil her zaman başlıktaki ilk parametredir?
oldboy

@BugWhisperer Bağlantılı standardın ilk olmadığı daha ayrıntılı bir örneği var. Lütfen danışın. :)
Sebastian Paaske Tørholm

6

Kabul dilleri kalite parametresi şu şekilde anlaşılabilir:

şu iletiye Accept-Language: pl_PL;q=0.8, en_US;q=0.2,başlık ekleyerek sunucuya aşağıdaki iletiyi iletiriz:

Sunucu, lütfen bu web sitesinin Lehçe çevirisini sağlayın, ancak bunu sadece kalitesi >= %80%ilgili kalite faktörüyle ilgiliyse yapın . Kalite olması durumunda <80%- İngilizce sürümünü almayı umursamıyorum, çünkü yine de İngilizce konuştuğum için benim için önemli değil.

Örneğin, bir web sayfası içerik sağlayıcısı olarak, web Accept-Languagesitemizin hiç İngilizce bilmeyen yabancılar için uygun olacak şekilde başlık ayrıştırma özelliğini sunabiliriz (daha sonra çevrilmiş gezinme bile yararlı olacaktır (yalnızca gezinmeyi çeviren sayfalar, sahip q=0.1), nerede tamamen çevrilmiş içeriği vardır q=0.9ve tam çevrilmiş içerik ve sahip olabilir hem orijinal dil ve tercüme dil içeriğini konuşan yerli konuşmacılar tarafından doğrulanmadı q=0.99- içeriğin tamamen içinde aktarılması anlamına zaman bu tek olası durum olduğu için)


en çok tercih edilen dil her zaman başlıktaki ilk parametredir?
oldboy

@BugWhisperer evet, ancak standarda gerçekten katı olmak istiyorsanız ve çeviriniz oldukça basit veya zayıfsa - ilk değeri atlamak isteyebilirsiniz
test30

ikinci değeri kullanmak neden daha katı olur?
oldboy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.