Yerel geliştirme için HTTPS ne zaman kullanılır?

Bazı özel durumlar haricinde, yerel geliştirme için http://localhost kullanılması çoğu zaman uygundur. Bu yayında, yerel geliştirme sitenizi HTTPS ile çalıştırmanız gereken durumlar açıklanmaktadır.

Maud Nalpas
Maud Nalpas

Ayrıca bkz: Yerel geliştirme için HTTPS kullanma.

Bu yayında, localhost ile ilgili ifadeler 127.0.0.1 ve [::1] için de geçerlidir. Çünkü her ikisi de "döngü adresi" olarak da adlandırılan yerel bilgisayar adresini açıklamıştır. Ayrıca, işlemleri basitleştirmek için bağlantı noktası numarası belirtilmemiştir. http://localhost öğesini gördüğünüzde http://localhost:{PORT} veya http://127.0.0.1:{PORT} olarak okuyun.

Özet

Yerel olarak geliştirme yaparken varsayılan olarak http://localhost kullanın. Service Workers, Web Authentication API ve daha fazlası çalışır. Ancak aşağıdaki durumlarda yerel geliştirme için HTTPS gereklidir:

  • Güvenli çerezleri tarayıcılar arasında tutarlı bir şekilde ayarlama
  • Karma içerik sorunlarında hata ayıklama
  • HTTP/2 ve sonraki sürümleri kullanma
  • HTTPS gerektiren üçüncü taraf kitaplıkları veya API'leri kullanma
  • Özel ana makine adı kullanma

    Yerel geliştirme için HTTPS kullanmanız gereken durumların listesi.
    Yerel geliştirme için HTTPS ne zaman kullanılmalıdır?

✨ Bilmeniz gerekenler bu kadar. Daha fazla bilgi edinmek isterseniz okumaya devam edin!

Geliştirme siteniz neden güvenli şekilde çalışmalıdır?

Beklenmedik sorunlarla karşılaşmamak için yerel geliştirme sitenizin üretim web siteniz gibi mümkün olduğunca çok davranmasını istersiniz. Bu nedenle, üretim web siteniz HTTPS kullanıyorsa yerel geliştirme sitenizin bir HTTPS sitesi gibi davranmasını istersiniz.

Varsayılan olarak http://localhost uygulamasını kullan

Tarayıcılar http://localhost öğesini özel bir şekilde işler: HTTP olmasına rağmen bir HTTPS sitesi gibi davranır.

http://localhost ürününde Hizmet Çalışanları, Sensör API'leri, Kimlik Doğrulama API'leri, Ödemeler ve belirli güvenlik garantileri gerektiren diğer özellikler desteklenir ve bir HTTPS sitesinde olduğu gibi davranır.

Yerel geliştirme için HTTPS ne zaman kullanılmalıdır?

http://localhost ürününün HTTPS sitesi gibi çalışmadığı özel durumlarla karşılaşabilirsiniz veya http://localhost olmayan özel bir site adı kullanmak isteyebilirsiniz.

Aşağıdaki durumlarda yerel geliştirme için HTTPS kullanmanız gerekir:

  • Yerel olarak Secure veya SameSite:none ya da __Host önekine sahip bir çerez ayarlamanız gerekir. Secure çerezleri yalnızca HTTPS'de ayarlanır, tüm tarayıcılar için http://localhost adresinde ayarlanmaz. Ayrıca SameSite:none ve __Host, çerezin Secure olmasını gerektirdiğinden yerel geliştirme sitenizde bu tür çerezleri ayarlamak da HTTPS gerektirir.

  • Karma içerik sorunu gibi http://localhost bile değil, yalnızca HTTPS web sitesinde ortaya çıkan ancak HTTP sitesinde görülmeyen bir sorunu yerel olarak hata ayıklamanız gerekir.

  • HTTP/2 veya sonraki bir sürüme özgü bir davranışı yerel olarak test etmeniz veya yeniden oluşturmanız gerekir. Örneğin, yükleme performansını HTTP/2 veya daha yeni bir sürümde test etmeniz gerekiyorsa. Güvenli olmayan HTTP/2 veya daha yeni sürümler, localhost üzerinde bile desteklenmez.

  • HTTPS gerektiren üçüncü taraf kitaplıkları veya API'leri (ör. OAuth) yerel olarak test etmeniz gerekir.

  • localhost değil, yerel geliştirme için özel bir ana makine adı (ör. mysite.example) kullanıyorsunuz. Bu durum genellikle yerel barındırıcı dosyanızı geçersiz kıldığınız anlamına gelir:

    Hosts dosyasını düzenleyen bir terminalin ekran görüntüsü
    Özel ana makine adı eklemek için hosts dosyasını düzenleme.

    Bu durumda Chrome, Edge, Safari ve Firefox, yerel bir site olsa bile varsayılan olarak mysite.example uygulamasını güvenli olarak değerlendirmez. Dolayısıyla HTTPS sitesi gibi çalışmaz.

  • Diğer durumlarda! Bu, kapsamlı bir liste değildir ancak burada listelenmeyen bir destek kaydıyla karşılaştığınızda şunu bilirsiniz: http://localhost tarihinde işler bozulur veya üretim siteniz gibi çalışmaz. 🙃

Bu durumların hepsinde, yerel geliştirme için HTTPS kullanmanız gerekir.

Yerel geliştirme için HTTPS kullanma

Yerel geliştirme için HTTPS kullanmanız gerekiyorsa Yerel geliştirme için HTTPS kullanma başlıklı makaleyi inceleyin.

Özel ana makine adı kullanmayla ilgili ipuçları

Örneğin, hosts dosyanızı düzenlerken özel bir ana makine adı kullanıyorsanız:

  • mysite gibi salt ana makine adı kullanmayın. Aynı ada (mysite) sahip bir üst düzey alan (TLD) varsa sorunlarla karşılaşırsınız. Bu pek mümkün değil: 2020'de 1.500'den fazla TLD var ve bu liste uzamaya devam ediyor. coffee, museum, travel ve birçok büyük şirket adı (hatta çalıştığınız şirket bile olabilir) TLD'dir. Tam listeye buradan ulaşabilirsiniz.
  • Yalnızca size ait olan veya bu amaç için ayrılmış alanları kullanın. Kendinize ait bir alan adınız yoksa test veya localhost (mysite.localhost) seçeneklerinden birini kullanabilirsiniz. Tarayıcılarda test için özel bir işlem yapılmaz, ancak localhost vardır: Chrome ve Edge kullanıma hazır http://<name>.localhost desteği sunduğundan localhost tarafından desteklenen işlevler güvenli bir şekilde çalışır. Deneyin: localhost'ta herhangi bir siteyi çalıştırın ve Chrome veya Edge'de http://<whatever name you like>.localhost:<your port> uygulamasına erişin. Bu özellik yakında Firefox ve Safari'de de mümkün olabilir. Bunu yapabilmenizin nedeni (mysite.localhost gibi alt alan adlarına sahip olmasıdır) localhost yalnızca bir ana makine adı değildir, aynı zamanda com gibi tam bir TLD'dir.

Daha fazla bilgi

Başta Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood ve Jake Archibald başta olmak üzere tüm yorumculara katkıları ve geri bildirimleri için çok teşekkür ederiz. 🙌

@moses_lee tarafından Unsplash'ta yayınlanan hero resim düzenlendi.