Yerel geliştirme için http://localhost kullanmak, bazı özel durumlar hariç çoğu zaman sorunsuz çalışır. Bu yayında, yerel geliştirme sitenizi ne zaman HTTPS ile çalıştırmanız gerektiği açıklanmaktadır.
Ayrıca: Yerel geliştirme için HTTPS'yi kullanma başlıklı makaleye de göz atın.
Bu yayındaki localhost ile ilgili ifadeler, her ikisi de "geri döngü adresi" olarak da adlandırılan yerel bilgisayar adresini tanımladığından 127.0.0.1 ve [::1] için de geçerlidir. Ayrıca, işleri basitleştirmek için bağlantı noktası numarası belirtilmez.
Bu nedenle, http://localhost gördüğünüzde bunu 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 Worker'lar, Web Authentication API ve diğer özellikler çalışır.
Ancak aşağıdaki durumlarda yerel geliştirme için HTTPS'ye ihtiyacınız vardır:
- Karma içerik sorunlarında hata ayıklama
- HTTP/2 ve sonraki sürümleri kullanma
- HTTPS gerektiren üçüncü taraf kitaplıklarını veya API'lerini kullanma
Özel ana makine adı kullanma
Yerel geliştirme için HTTPS ne zaman kullanılır?
✨ Bilmeniz gereken her şey bu kadar. Daha fazla bilgi edinmek isterseniz okumaya devam edin.
Geliştirme siteniz neden güvenli bir şekilde çalışmalıdır?
Beklenmedik sorunlarla karşılaşmamak için yerel geliştirme sitenizin, üretim web siteniz gibi davranmasını istersiniz. Bu nedenle, üretim web siteniz HTTPS kullanıyorsa yerel geliştirme sitenizin HTTPS sitesi gibi davranmasını istersiniz.
Varsayılan olarak http://localhost uygulamasını kullanma
Tarayıcılar http://localhost öğesini özel bir şekilde ele alır: HTTP olmasına rağmen çoğunlukla HTTPS sitesi gibi davranır.
http://localhost üzerinde Service Worker'lar, Sensor API'leri, Authentication API'leri, ödemeler ve belirli güvenlik garantileri gerektiren diğer özellikler desteklenir ve tam olarak bir HTTPS sitesindeki gibi davranır.
Yerel geliştirme için HTTPS ne zaman kullanılır?
http://localhost HTTPS sitesi gibi davranmadığı özel durumlarla karşılaşabilir veya http://localhost olmayan özel bir site adı kullanmak isteyebilirsiniz.
Aşağıdaki durumlarda yerel geliştirme için HTTPS kullanmanız gerekir:
- Yalnızca HTTPS web sitesinde oluşan ancak HTTP sitesinde, hatta
http://localhostsitesinde bile oluşmayan bir sorunu (ör. karma içerik sorunu) yerel olarak ayıklamanız gerekiyor. - HTTP/2 veya daha yeni bir sürüme özgü bir davranışı yerel olarak test etmeniz ya da yeniden üretmeniz gerekir. Örneğin, HTTP/2 veya daha yeni bir sürümde yükleme performansını test etmeniz gerekiyorsa. Güvenli olmayan HTTP/2 veya daha yeni sürümler,
localhost'da bile desteklenmez. - HTTPS (ör. OAuth) gerektiren üçüncü taraf kitaplıklarını veya API'leri yerel olarak test etmeniz gerekir.
localhostyerine yerel geliştirme için özel bir ana makine adı kullanıyorsunuz (ör.mysite.example). Bu genellikle yerel hosts dosyanızı geçersiz kıldığınız anlamına gelir:
Özel bir ana makine adı eklemek için hosts dosyasını düzenleme. Bu durumda Chrome, Edge, Safari ve Firefox, yerel bir site olmasına rağmen
mysite.example'ı varsayılan olarak güvenli kabul etmez. Bu nedenle, HTTPS sitesi gibi davranmaz.Diğer durumlar Bu liste kapsamlı olmasa da burada listelenmeyen bir durumla karşılaşırsanız
http://localhostüzerinde bir şeylerin bozulacağını veya üretim siteniz gibi davranmayacağını bilirsiniz. 🙃
Bu durumların hepsinde yerel geliştirme için HTTPS kullanmanız gerekir.
Yerel geliştirme için HTTPS'yi kullanma
Yerel geliştirme için HTTPS kullanmanız gerekiyorsa Yerel geliştirme için HTTPS'yi kullanma başlıklı makaleyi inceleyin.
Özel ana makine adı kullanıyorsanız ipuçları
Özel bir ana makine adı kullanıyorsanız (ör. hosts dosyanızı düzenliyorsanız):
mysitegibi yalın bir ana makine adı kullanmayın. Aynı ada (mysite) sahip bir üst düzey alan adı (TLD) varsa sorun yaşarsınız. Bu durum pek de nadir değildir: 2020'de 1.500'den fazla TLD vardı ve bu sayı artmaya devam ediyor.coffee,museum,travelve birçok büyük şirket adı (belki de çalıştığınız şirket!) TLD'dir. Tam listeyi buradan görebilirsiniz.- Yalnızca size ait olan veya bu amaç için ayrılmış alanları kullanın. Kendi alanınız yoksa
testveyalocalhost'u (mysite.localhost) kullanabilirsiniz.test, tarayıcılarda özel bir işleme tabi tutulmaz ancaklocalhosttutulur: Chrome ve Edge,http://<name>.localhost'u kutudan çıktığı haliyle destekler ve localhost güvenli davrandığında güvenli davranır. Deneyin: Herhangi bir siteyi localhost'ta çalıştırın ve Chrome veya Edge'dehttp://<whatever name you like>.localhost:<your port>simgesine erişin. Bu özellik yakında Firefox ve Safari'de de kullanılabilecek. Bunu yapabilmenizin (mysite.localhostgibi alt alan adlarına sahip olabilmenizin) nedeni,localhostöğesinin yalnızca bir ana makine adı değil, aynı zamandacomgibi tam bir TLD olmasıdır.
Daha fazla bilgi
Katkıları ve geri bildirimleri için tüm inceleme uzmanlarına, özellikle Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood ve Jake Archibald'a çok teşekkür ederiz. 🙌
Unsplash'te @moses_lee tarafından çekilen ve düzenlenen hero resim.