Cevap mesajında ​​kullanıldığında “Connection: close” ne demektir?


30

İstemci Connection: closebaşlığı istek mesajında ​​kullandığında, bu, yanıt mesajı gönderdikten sonra sunucunun bağlantıyı kapatmasını istediği anlamına gelir.

Bu başlığın yalnızca istek mesajlarında kullanıldığını düşündüm, ancak yanıt mesajlarında da kullanıldığını fark ettim. Örneğin:

görüntü tanımını buraya girin

Bu mesaj cevap mesajında ​​kullanıldığında ne anlama geliyor?

Sunucunun yanıt iletisini gönderdikten sonra sunucunun bağlantıyı kapatacağı anlamına geldiğini düşünüyorum (istemci Connection: keep-alivebaşlığı istek iletisinde kullanmış olsa bile ). Doğrumuyum?

Yanıtlar:


28

Evet bu doğru. Sunucu sadece "Canlı tutma isteğinizi desteklemiyorum ve işim bittiğinde bağlantıyı kapatacağım" diyebilir.

RFC 2616, Bölüm 14.10'dan:

HTTP / 1.1, gönderenin
,
yanıtın tamamlanmasından sonra bağlantının kapanacağına işaret etmesi için "kapat" bağlantı seçeneğini tanımlar . Örneğin,

   Connection: close

istek veya yanıt başlığı alanlarında
, geçerli istek / yanıtın tamamlanmasından sonra bağlantının 'kalıcı' (bölüm 8.1) olarak değerlendirilmemesi gerektiğini belirtir .

Kalıcı bağlantıları desteklemeyen HTTP / 1.1 uygulamaları, her mesajda "kapat" bağlantı seçeneğini içermelidir.


3
Bu garip IMO, sunucu basitçe kapatabiliyorsa, neden bağlantının kapalı olacağını söylesin? İstemci olmamalı o zaman bağlantının sunucu tarafından kapatıldığını görün. Bu başlıktaki konu neydi? Burada hiçbir değer göremiyorum.
Pavel P

1
@Pavel Web uygulaması, yük dengeleyiciyi kullandığı durumda canlı tutma bağlantısını kapatmak için ön uç yük dengeleyicisini bilgilendirmek istediği durumlarda yanıtta "Bağlantı: kapat" http başlığını içerir.
Fesleğen A

1
@BasilA böylece yük dengeleyici sunucuya veya müşteriye bağlantıyı kapatır? IMO yük dengeleyici, bağlantının sunucu tarafından kapatıldığını görebiliyordu ve herhangi bir başlık okumadan bunu biliyordu. Ayrıca tersi doğrudur: sunucu Connection: closebaşlığı olmadan bağlantıyı kapatabilir
Pavel P

@Pavel loadbalancer genellikle birden fazla istemciden çoklu bağlantı alır ve canlı tutma bağlantısı üzerinden çoklu bağlantı kullanarak arka bağlantıyla aynı bağlantıyı kullanır. Bazı arka uçlar bu çoğullamanın bir parçası olmak istemeyebiliyorsa, arka uç http yanıtı, yük dengeleyiciyi bağlantısını kapatması ve çoğullamayı durdurması konusunda bilgilendirmek için bir "Bağlantı: kapat" içermelidir. Bu, AWS Yük Dengeleme Kılavuzu'nda ('HTTP Bağlantılarına' Aşağı Kaydır) docs.aws.amazon.com/elasticloadbalancing/latest/userguide/…
Basil A

2
@BasilA Haklı gibi görünüyorsun. İlginç. Bağlantı genel başlık alanı, gönderenin, söz konusu bağlantı için istenen seçenekleri belirlemesine olanak tanır ve başka bağlantılar üzerinden vekiller tarafından iletilmemesi GEREKİR.
Daniel F
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.