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.
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
✨ 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
veyaSameSite: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çinhttp://localhost
adresinde ayarlanmaz. AyrıcaSameSite:none
ve__Host
, çerezinSecure
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: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
veyalocalhost
(mysite.localhost
) seçeneklerinden birini kullanabilirsiniz. Tarayıcılardatest
için özel bir işlem yapılmaz, ancaklocalhost
vardır: Chrome ve Edge kullanıma hazırhttp://<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'dehttp://<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ı zamandacom
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.