HTTP ve HTTPS nedir
HTTP, tarayıcı ile sunucunun konuştuğu anlaşmadır: tarayıcı bir istek gönderir, sunucu bir yanıt döndürür ve üç haneli bir kod işin olup olmadığını söyler. HTTPS ise aynı anlaşmanın şifreli bir katmanın içinde yol almasıdır; böylece yolun ortasındaki hiç kimse içeriği ne okuyabilir ne değiştirebilir.
- Ders 6 / 12
- Başlangıç
- Ücretsiz, kayıt yok
Bir konuşmanın iki ucu ve köprüden geçen şey
Tarayıcı
Her zaman o başlatır. Sunucu asla kendiliğinden aramaz.
Sunucu
Yalnızca yanıt verir ve iki istek arasında sizinle ilgili hiçbir şey hatırlamaz.
Bu köprü tek bir gidiş dönüşü gösterir. Sıradan bir sayfa bunu onlarca kez yineler: bir kez sayfanın kendisi, sonra her görsel, yazı tipi ve betik için.
Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.
Bir adresi açtığınızda gerçekte ne alınıp verilir?
Tarayıcı bir istek kurar ve gönderir, sunucu bir yanıt döndürür. HTTP, bu ikisinin biçimini belirleyen anlaşmanın adıdır: istek neyi nereden istediğini söyler, yanıt işin nasıl gittiğini ve gövdesinin ne olduğunu söyler.
Her birinin bir ilk satırı, ardından birkaç başlığı, sonra bir gövdesi vardır. Neredeyse her şeyin saklandığı yer başlıklardır: tarayıcının dili, içeriğin sıkıştırılıp sıkıştırılmadığı, yanıtın ne kadar süre önbelleğe alınabileceği, sunucunun kendini nasıl tanıttığı. Bir sayfa tuhaf davrandığında yanıt genelde gövdede değil, başlıklardadır.
Adın sakladığı bir özellik: HTTP'nin belleği yoktur. Sunucu açısından her istek bağımsızdır ve sunucu kendiliğinden bunun bir saniye önce gelen kişi olduğunu bilmez. Oturum açmayı mümkün kılan şey, tarayıcının her seferinde yeniden gönderdiği fazladan tek bir başlıktır. Bunu bildiğinizde, oturumda kalmayla ilgili tuhaf davranışların yarısı tuhaf olmaktan çıkar.
Yeni sürümler aynı anlaşmayı tel üzerinde daha düzenli ve daha sıkı taşır; isteğin ve yanıtın anlamını değiştirmez. Bu sitenin sayfaları HTTP/2 üzerinden yanıt verir ve önünde duran içerik dağıtım ağı ayrı bir başlıkta HTTP/3'ün de hazır olduğunu duyurur. Okuyucu için bu fark görünmezdir ve öyle olmalıdır.

Durum kodu nasıl okunur?
İlk hane neredeyse her şeyi söyler, gerisi ayrıntıdır. İki yüz oldu demektir, üç yüz başka yere git demektir, dört yüz kusurun istekte olduğu, beş yüz ise sunucunun kendi kendine yıkıldığı anlamına gelir. Topun kimin sahasında olduğunu bilmek için pratikte bu tek cümle yeter.
| Kod | Ne demek | Kimin harekete geçmesi gerek |
|---|---|---|
200 | Yanıt hazır ve gövde istediğiniz şey | Kimsenin |
301 | Bu adres kalıcı olarak başka yere taşındı | Eski adresi hâlâ bağlayan herkesin |
404 | Sunucu sağlam ve böyle bir adresi yok | Site sahibinin ya da adresi yanlış yazanın |
500 | İstek doğruydu, sunucudaki program hata verdi | Yalnızca sunucu sahibinin |
Yaygın bir yanlış okumayı burada bitirelim: 404 sayfanın bulunamadığı anlamına gelir, sitenin bozuk olduğu anlamına değil. Sunucu gayet sağlamdı ve böyle bir şeyi olmadığını güvenle söyleyebildi. Gövdesi de zorunlu olarak boş değildir; bu sitedeki bulunamadı sayfası menüsü ve aramasıyla eksiksiz bir sayfadır ve HTML'i yüz kilobayttan fazladır. Kod ile sayfanın görünüşü birbirinden bağımsız iki şeydir.
Ve tam da bu sunucuda bedelini ödediğimiz bir tuzak: durum kodu ile yanıt gövdesi her zaman birlikte varmaz. Uygulamanın önündeki katmanlar, yani web sunucusu ve içerik dağıtım ağı, bir hata yanıtının gövdesini kendi sayfalarıyla değiştirebilir. Sonuç şudur: programınız kesin bir hata mesajı gönderdi, kullanıcı genel bir sayfa gördü. Sunucu günlüğünde olup tarayıcıda olmayan bir hatayı ayıklıyorsanız, önce bundan şüphelenin.
İlk hane ve her aileden işe yarayan tek kod
-
yapılacak bir şey yok
Kod 200: oldu
Yanıt hazır ve gövde istediğiniz şey.
-
eski bağlantıyı güncelleyin
Kod 301: başka yere git
301, bu adresin kalıcı olarak taşındığını söyler.
-
sunucu sağlam
Kod 404: kusur istekte
404, sunucunun böyle bir adresi olmadığını güvenle söyleyebildiği anlamına gelir.
-
yalnızca sunucu sahibi
Kod 500: sunucu yıkıldı
500, isteğin doğru olduğunu ve sunucudaki programın hata verdiğini gösterir.
Bu dört aile tek aile değildir ve her ailede başka kodlar da vardır. Bunlar bir site sahibinin gerçekten karşılaştığı kodlardır.
HTTPS tam olarak neyi güvene alır?
Üç şey, fazlası değil. Birincisi gizlilik: yolun ortasında oturan herkes, operatörden bir umumi kablosuz ağın sahibine kadar, yalnızca hangi alan adıyla konuştuğunuzu ve ne kadar veri aktığını görür; sayfanın tam adresini de içeriği de görmez. İkincisi bütünlük: yolda biri tek bir baytı değiştirirse tarayıcı bunu fark eder ve bağlantıyı keser. Üçüncüsü alan adının kimliği: tarayıcı, yanıt veren sunucunun gerçekten o alan adı için bir sertifika taşıdığından emin olur.
Bu iş, dışarıdan bir veren makamın imzaladığı bir sertifika ile, artı bağlantının başındaki kısa bir el sıkışmayla yapılır; o el sıkışma, o oturumun şifreleme anahtarını kurar. Bu sitenin sertifikasına şu anda bakılabilir: vereni Google Trust Services, rgb.ir ve onun her alt alan adı için geçerli ve ömrü doksan gün. Kısa ömür bilinçlidir; kısa ömürlü sertifika kendiliğinden yenilenir ve bir anahtar sızarsa kötüye kullanım penceresi küçük kalır.
Şu anda kurulan bir bağlantı TLS 1.3 üzerinden kapanır. Sürüm numarası neredeyse hiçbir ziyaretçinin görmediği bir şeydir ve ancak çok eski bir cihaz sayfayı hiç açamadığında önem kazanmaya başlar.
Bu korumanın sınırı da şu: HTTPS yalnızca yolu güvene alır. Veri sunucuya ulaştığı anda bu katmanın korumasından çıkmıştır. Kusursuz şifrelenmiş bir form, parolanızı kimsenin bakmadığı bir sunucudaki bir metin dosyasına yazabilir. Kilit bunun hakkında hiçbir şey söylemez ve söylediğini de iddia etmez.
Adresin yanındaki kilit neyi vaat etmez?
Sitenin dürüst olduğunu. Kilit yalnızca yolun şifreli olduğunu ve yanıt veren sunucunun bu alan adı için bir sertifika taşıdığını söyler. O alan adının arkasında kimin oturduğu, dükkânın gerçek olup olmadığı ve gönderdiğiniz paranın nereye gittiği hakkında hiçbir iddiası yoktur.
Bu bizim görüşümüz değil. Dünyanın en büyük ücretsiz sertifika makamlarından biri, kendi politikasını anlatırken, alan adı doğrulamalı bir sertifikanın yalnızca bir açık anahtarın bir alan adına ait olduğunu ileri sürdüğünü ve "bir sitenin içeriği ya da onu kimin işlettiği hakkında başka hiçbir şey söylemediğini" yazdı; bu sertifikaların bir sitenin itibarı, gerçek dünyadaki kimliği ya da güvenliği hakkında hiçbir bilgi taşımadığını da ekledi. Yani verenin kendisi, kilidin içerik için bir onay mührü olmadığını açıkça söylüyor.
Pratik sonucu acı ve basit: sahte bir site de dakikalar içinde geçerli bir sertifika alıp kilidi gösterebilir. Bir ödeme sayfasına güvenme ölçütünüz kilidin varlığıysa, saldırganın en kolay sağlayabileceği ölçütü seçmişsiniz demektir.
Asıl bakmanız gereken şey alan adıdır, harf harf: bir adreste önemli olan kısım, ilk eğik çizgiden hemen öncekidir. Onun önüne her şey konabilir. Tutumumuz şu: kilide değil alan adına bakın; bağlantı kısa mesajla ya da bir mesajlaşma uygulamasından geldiyse ona hiç tıklamayın, adresi kendiniz yazın.
Tamamlamak için bir istisna: kilidin yokluğu hâlâ gerçek bir uyarıdır. Bugün HTTPS olmadan giriş ya da ödeme formu gösteren bir sayfa, başka tartışmaya gerek kalmadan güvenilmezdir. Kilit gerekli bir koşuldur, yeterli değil.
Kilidin söylediği ve suyun altında kalan
Yol şifreli ve sertifika bu alan adına ait
Hepsi bu. Kilidin iddia ettiği tek şey budur.
-
Bu alan adının arkasında kim oturuyor
Sahte bir site de dakikalar içinde geçerli sertifika alabilir.
-
Sayfanın içeriği doğru mu yalan mı
Veren makam içeriği okumaz ve okuduğunu da iddia etmez.
-
Gönderdiğiniz para nereye gidiyor
Şifreli bir ödeme sayfası, başkasının ödeme sayfası da olabilir.
-
Veri ulaştıktan sonra nasıl saklanıyor
Bu katmanın koruması, verinin sunucuya ulaştığı anda tam olarak biter.
Bu çizim kilidin yokluğu hakkında bir şey söylemez. Bir giriş ya da ödeme formunda kilit olmaması hâlâ ciddi bir uyarıdır.
Bir site HTTPS'e nasıl doğru taşınır?
Sertifika almak en kolay kısımdır ve genelde barındırma sağlayıcısı bunu kendisi yapar. İşi bozan, ardından gelen üç şeydir.
Birincisi, her HTTP isteği ana sayfaya değil, aynı adresin güvenli sürümüne bir 301 ile gitmelidir. Her şeyi ana sayfaya göndermek en basit yoldur ve en kötüsüdür, çünkü bütün eski bağlantıları öldürür. İkincisi karışık içerik: sayfa güvenliyken bir görseli ya da betiği güvensiz bir adresten çağırıyorsa, tarayıcı ya onu engeller ya da uyarır. Üçüncüsü HSTS başlığı; tarayıcıya bu alan adı için bir daha HTTP denememesini söyler ve bu sitede değeri bir yıldır.
Kimsenin konuşmadığı bir maliyet: her fazladan sıçrama bir gidiş dönüştür. Bu sitede eski adresi rgb.ir/seo/ https olmadan yazan biri iki sıçrama yer, önce HTTP'den HTTPS'e sonra eski adresten yenisine, ve sayfanın ilk baytı ancak ondan sonra gelir. Tek bir ziyaretçi için bunun önemi yoktur; reklamlarda, menülerde ve e-posta imzalarında tekrarlanan bir bağlantı için vardır. Kural basit: denetim sizdeyse eski adresi değil son adresi bağlayın.
Sınırı da şu: HSTS bir taahhüttür, geri alınabilir bir ayar değil. Başlığı görmüş bir tarayıcı, süre dolana kadar alan adınıza HTTP üzerinden bağlanmayı reddeder; sertifikanızın süresi dolmuş olsa bile. HTTPS'in kalıcı olduğundan emin değilseniz, bu başlığı kısa bir süreyle başlatın.
Herhangi bir alan adının sertifika durumu ve bitiş tarihi, hiçbir şey kurmadan saniyeler içinde görülebilir: ücretsiz SSL kontrol aracımız tam da bunu yapar. Sertifika kavramı ve türleri içinse SSL nedir yazısı zaten var ve bu ders onu bilerek tekrarlamıyor.
Yapay zekayla hızlı yol
Bir adresin sağlam olup olmadığını denetlemenin alışılmış yolu onu açıp bakmaktır. Hızlı yol ise başlıkların ham çıktısını bir kez almak ve dil modelini yalnızca ona bakarak karar vermeye zorlamaktır. Fark şu: gözünüz yalnızca son sayfayı görür, o çıktı ise yoldaki her ara sıçramayı, her durum kodunu ve yanıta dokunan her katmanı gösterir.
- Çıktıyı modelden istemek yerine kendiniz alın. Tek satır yeter: curl -sSIL http://example.com/path/. https ile değil http ile başlayın, yoksa en önemlisi olan ilk sıçramayı hiç görmezsiniz.
- Yapıştırmadan önce iki başlığı silin: Set-Cookie ve Authorization. Bunlar canlı kimlik bilgileridir ve bir komut çıktısının içinde zararsız görünürler.
- Aşağıdaki tarifi ham çıktıyla birlikte verin ve yalnızca ona bakarak yanıtlamasını isteyin. Burada hızlı ve ucuz bir model yeter; bu bir yargı değil okuma işidir ve her sınıftaki güncel seçim yapay zekâ referansımızda güncel tutulur.
- Yanıtı çıktıyla karşılaştırın. Modelin adını verdiği ve sizin metninizde olmayan her başlık bir uydurmadır ve oracıkta elenir.
Kopyalamaya hazır şablon
Rolün bir HTTP uzmanı. Yalnızca aşağıdaki çıktıya göre karar ver ve ona hiçbir şey ekleme.
Ham çıktı (curl -sSIL, Set-Cookie ve Authorization çıkarılmış):
{buraya yapıştırın}
Bilmek istediğim: {örneğin eski bağlantım neden yavaş}
Beş şey yaz:
1. Son yanıta kaç sıçrama var; her sıçramanın kodu ve gittiği adres ne.
2. Yalnızca HTTP'den HTTPS'e geçmek için bir sıçrama harcanmış mı. Harcanmışsa bunun kaç gidiş dönüş eklediğini söyle.
3. Strict-Transport-Security başlığı var mı, süresi ne kadar.
4. Başlıklardan, yanıta hangi katmanların dokunduğunu söyle: web sunucusu, sayfa önbelleği, içerik dağıtım ağı. Her biri için bunu gösteren başlığı alıntıla.
5. Sıçrama sayısını azaltmak için kendim yapabileceğim bir değişiklik.
Kurallar: 103 gibi bir 1xx yanıtı sıçrama değildir ve sayılmaz. Yukarıdaki metinde olmayan hiçbir başlığı yazma. Maddelerden biri için veri yetmiyorsa "bu çıktıda yok" yaz ve tahmin etme.
Çıktıya güvenmeden önce: Kendinizin doğrulaması gereken iki şey. Birincisi, modelin adını verdiği her başlık çıktınızda birebir bulunmalıdır; uydurmayı yakalayan tek denetim budur ve on saniye sürer. İkincisi, yanıt bir sıçramayı kaldırmayı öneriyorsa, dokunmadan önce o eski adresin bir yere bağlanmadığından emin olun: bir yönlendirmeyi silmek her eski bağlantıyı 404'e çevirir ve bunun geri dönüşü zordur.
Bu işte yapay zeka
Bu konuda bir dil modeli bir işte çok iyi, bir işte çok kötüdür. Okumada iyi: ona ham bir başlık dökümü ya da bir yönlendirme zinciri verin, saniyeler içinde her satırın ne dediğini açıklar; öğrenmesi eskiden haftalar süren bir şey. Yargıda kötü: bir sitenin güvenilir olup olmadığını size söyleyemez, çünkü tam olarak saldırganın kurduğu iki işareti görür.
Gerçekten işe yarayan araçlar
- Claude Komutların ham çıktısını okumak için yapılmıştır ve bu ders onun asıl kullanımıdır: başlıkları yapıştırıp her birinin ne yaptığını sorarsınız. İran, Anthropic'in desteklenen ülkeler listesinde değil; resmî bir kayıt ya da ödeme yolu yok.
- Gemini HTTP jargonunu Farsçaya çevirmek ve kavramları örneklerle açıklamak için iyi çalışır. Google'ın kendi sayfası Gemini uygulamasının 230'dan fazla ülke ve bölgede sunulduğunu yazıyor; İran o listede yok.
Nerede geri teper
Buradaki asıl risk modelin bilmediği şey değil, tam bir kendinden eminlikle söylediği şeydir. İki belirgin biçimi var. Birincisi, modele "bu site güvenli mi?" diye sorun; kilit olduğuna ve alan adı makul göründüğüne göre muhtemelen güvenli olduğunu akıl yürütecektir. Bu iki işareti de saldırgan sağlamıştır ve sertifika makamının kendisi, bir sertifikanın sitenin itibarı ya da gerçek dünyadaki kimliği hakkında hiçbir bilgi taşımadığını açıkça söyler. Dolandırıcılık tespiti bir dil modelinin işi değildir ve vereceği her yanıt kendinden emin tonda bir tahmindir. İkincisi, model bir başlık adını ya da bir durum kodunun anlamını uydurur; Anthropic bu kendinden emin uydurmayı kendi belgelerinde halüsinasyon diye adlandırıp azaltmayı yazıyor, yani üretici de bunu gerçek bir zayıflık sayıyor. İkisinin de çaresi aynı: modelin yalnızca sizin önüne koyduğunuz şeyi açıklamasına izin verilir.
Kaynaklar: Let's Encrypt: the CA role in fighting phishing and malware Anthropic: reduce hallucinations Anthropic: supported countries Google: where Gemini Apps are available
Bu tavsiyenin sınırı
Bu ders protokol hakkındadır; sertifika satın almak ve kurmak hakkında değil. Sertifika türü seçmek, onu aldırmak ve yenilemek başka bir iştir; SSL nedir yazısı ile SSL sertifikası sayfası onu ele alır ve burada bilerek tekrarlanmadı. İki sınırı daha açıkça söyleyelim: buradaki her sayı Avrupa'daki kendi sunucumuzdan ölçüldü ve bir İranlı ziyaretçinin katettiği yol hakkında hiçbir şey söylemez, çünkü bu sunucu onu göremez. Ayrıca uç ağımız HTTP/3 hazır olduğunu duyursa da, onun üzerinden tam bir bağlantı ölçmedik; bu yüzden bu ders hızı hakkında hiçbir iddiada bulunmuyor.
Kendi işimizden
7 Eylül 2026'da tam da bu sitede ölçülen dört şey ve dördü de tekrarlanabilir. Birincisi, eski adresi rgb.ir/seo/ https olmadan yazan biri iki 301 sıçraması yer; ilki aynı yol üzerinde HTTP'den HTTPS'e, ikincisi yeni adrese ve sayfanın ilk baytı ancak ikisinden sonra gelir. İkincisi, bu sitenin sertifikasını Google Trust Services verdi; rgb.ir ve her alt alan adı için geçerli ve ömrü doksan gün. Üçüncüsü, bağlantı TLS 1.3 üzerinden kapanıyor, sayfa HTTP/2 üzerinden yanıt veriyor ve HSTS başlığı bir yıllık bir değer taşıyor. Dördüncüsü, bu sitenin bulunamadı sayfası, HTML'i yüz kilobayttan büyük eksiksiz bir sayfa; metinde durum kodu ile sayfanın görünüşünün bağımsız şeyler olduğunu bu yüzden yazdık. Dört ölçümün de ham hâli bu oturumun raporunda kayıtlı.
Gerçek devam soruları
HTTPS bir siteyi Google'da yükseltir mi?
Sorunun doğru biçimi şu: bugün HTTPS bir avantaj değildir, yokluğu bir dezavantajdır. Bütün ciddi siteler onun üzerinde, dolayısıyla sizi kimsenin önüne geçiren şey o değil; ama tarayıcı yokluğunu adresin yanında kullanıcıya duyurur ve bu tek başına güveni ve kaç kişinin ayrıldığını etkiler. Bir site hâlâ HTTP üzerindeyse taşınma nedeni sıralama değil, tarayıcıdır.
301 ile 302 arasındaki fark nedir?
301 taşınmanın kalıcı, 302 ise geçici olduğunu söyler. Pratikte fark şu: 301 ile arama motoru eski adresin yerine yenisini koyar, 302 ile eskisini tutar çünkü bir gün geri döneceğinizi varsayar. Basit kural: geri dönmeyecekseniz 301 kullanın.
Sertifikam var ama tarayıcı bağlantının tam güvenli olmadığını söylüyor. Neden?
Çoğu durumda karışık içeriktir: sayfa HTTPS üzerinden açılmıştır ama bir görseli ya da betiği HTTP adresinden çağırır. Sonraki iki neden de yaygındır: sertifika başka bir alan adı için verilmiştir, örneğin ziyaretçi www ile gelirken sertifika www'suz sürüm içindir; ya da süresi dolmuştur. Üçü de SSL kontrol aracıyla saniyeler içinde birbirinden ayrılabilir.