Sitemde ben basit bir giriş formu var. Sayfa HTTP üzerinden hizmet, ancak formun POST URL HTTPS olduğunu.
Normal bir yöntem kullanıcı adı / şifre, formu (aynı sitede, tam HTTPS URL) teslim edilir doldurur ve sonra POST işlem kullanıcıların ana sayfasına yönlendirme bir 303 yapmasıdır. Ama bazen bu olmaz.
Döngüsü (ve bu% 100 tekrarlanabilir) şudur:
- , Giriş formunu alır ayrıntıları doldurun ve gönderin
- Oturum açma komut çağrılan sunucu üzerinde, verileri doğrular ve tüm iyi ise o zaman, bir 303 kullanıcıların ana sayfasına yönlendirildi yapar.
- Sonra ben giriş formuna geri sarıyorum hangi noktada, logoutu tıklatın ve sonra girişe tıklayın
- Sonra yine benim detayları doldurun, gönderin çarptı.
- Bu süre, ancak, giriş mantık (2. adımda oturum açmış ayıklama kod adlı değil) idam değil, ama hala kullanıcıların ana sayfasına yönlendiriliyorsunuz ediyorum. Ben başarılı bir giriş oldum değil çünkü Ama, ben ön sayfaya çıkartılmamış ...
Peki neden POST daima giriş formu çağıran değil mi? Ben (spec göre, ve olmamalıdır) 303 önbelleğe ediliyor sanmıyorum ...
Sunucusunda HTTPS günlükleri baktığımızda, login.phpo ilk defa olarak adlandırılan, ancak ikinci değil ediliyor ....
Edit:
Tamam, biz sorunu çözdük. Ilgilenen olanlar için:
Site bir yük dengeleyici arkasında 2 sunucular üzerinde çalıştırılır. kullanıcı oturumları 'yapışkan' - yani bir kullanıcı LB bu sunucuya 'bağlı' onları tutacak bir web sunucusu üzerinde geziyor kez söylemektir. Bu bir çerez aracılığıyla yapılır. Biz LB https geçmek kez bağlantı tarayıcı ve web sunucusu arasında şifreli Ama, çerez okuyamaz. Bu yüzden sunucular arasında alternatif oldu. WWe webserverlarda arasında giriş kimlik doğrulama yaymak için kod var, ama bu yeterince hızlı olmuyordu. Peki neler oldu:
- Sunucu A kullanıcı tarayıcılar, 'A beni tutmak' diyerek bir çerez, kendi oturum açma kimlik bilgileri doldurur alır ve vurur gönderin
- LB, HTTPS trafiğini (ve dolayısıyla çerez) deşifre yapamaz olmak, B onları% 50 zaman gönderir
- B giriş doğrular ve kullanıcı olmayan https ana sayfasına kullanıcıyı yönlendirmeden önce, oturumda onaylanacak ayarlar
- Anasayfa olmayan https olduğundan, LB çerez okur ve B'den yeterince hızlı yayılan değildi çünkü kimlik hiçbir şey bilmiyor A, bunları gönderir ..
Çözüm böylece kullanıcıların gerçekten ne olursa olsun, HTTP / HTTPS geçişler, bir web sunucusu üzerinde kalmak sağlamaktan, LB HTTPS trafiği çözmek için izin vermek oldu.