HTTP Ve HTTPS Nedir, Nasıl Çalışır, Farkları Nelerdir
Günlük hayatta çok kez gördüğümüz “http” nedir ? diye bir soru sorduğumuzda “http”, bilginin sunucudan kullanıcıya nasıl ve ne şekilde aktarılacağını gösteren protokoldür.

HTTP NEDİR VE NASIL ÇALIŞIR ? :
Günlük hayatta çok kez gördüğümüz “http” nedir ? diye bir soru sorduğumuzda “http”, bilginin sunucudan kullanıcıya nasıl ve ne şekilde aktarılacağını gösteren protokoldür. Açılımı “Hyper Text Transfer Protocol” olan bu kavram dilimizde “Üstün Metin Transfer Protokolü” olarak biliniyor. İnternet kullanıcıları bunu aktif olarak kullanmasa da otomatik olarak arama çubuğu bu protokolü koyar. Halk dilinde söylemek gerekirse web sayfalarının görüntülenmesini sağlayan protokoldür. Bunun için bize bir tarayıcı gerekmektedir. Örneğin tarayıcıya girdik ve arama çubuğuna bir adres gireceğiz o aşamada http sunucuya bir giriş talebi sunar ve talep onay gördüğünde o sitenin verileri karşımıza çıkar ve biz siteye giriş yapmış oluruz.
HTTPS NEDİR VE NASIL ÇALIŞIR ? :
HTTPS VE HTTP çok karıştırılan iki protokol. HTTPS aynı HTTP gibi bir protokoldür. Açılımı “Secure Hyper Text Transfer Protocol” olsa da dilimizde “Güvenli Metin Aktarma Protokolü” olarak biliniyor. Temelde iki protokolde aynı işi yapsa da HTTPS güvenlik olarak öne çıkar. HTTPS protokolüne SSL sertifikası eklenirse HTTPS oluşur. Çalışma şekli aynı HTTP gibidir ancak güvenlik olarak SSL sertifikası bir katman olarak kullanılır. Örneğin birçok banka siteleri HTTPS protokolündedir. Anlayabileceğimiz güvenlik şart olan websiteler HTTPS mensubudur. SSL sertifikası olduğunda “GET” değeri ile search kısmından değişim yapılamaz buda SSL sertifikasının avantajlarındandır.
HTTP VE HTTPS ÇALIŞMA FARKLARI :
Tarayıcıya bir link yazarız ve tarayıcı bu linkin içeriğini çekmek için sunucuya istek gönderir.İstek proxy’ler aracılığı ile gönderilir. İstek sonucunda ise sunucu bir cevap yollar. Bu istekler GET, DELETE, HEAD, POST, TRACE, OPTIONS, CONNECT, PUT ve PATCH olmak üzere 9 tanedir. İstekler sunucunun yapması gereken komutu içeriyor.
Örnek bir http isteği :
GET /hello.txt HTTP/1.1
User-Agent: curl/7.63.0 libcurl/7.63.0 OpenSSL/1.1.l zlib/1.2.11
Host: www.example.com
Accept-Language: en
Sonra sunucu cevap veriyor ve versiyon soruyor. Versiyon sorgusu sonrası durum kodlarından verebiliyor.
Örnek bir sunucu cevabı :
HTTP/1.1 200 OK
Date: Wed, 30 Jan 2019 12:14:39 GMT
Server: Apache
Last-Modified: Mon, 28 Jan 2019 11:17:01 GMT
Accept-Ranges: bytes
Content-Length: 12
Vary: Accept-Encoding
Content-Type: text/plain
Merhaba Dünya!
Ancak HTTPS’de Transfer güvenliği var ve transfer güvenliği bu alışverişi bir hakem gibi izliyor ve şifreliyor.
Örnek bir şifreleme :
t8Fw6T8UV81pQfyhDkhebbz7+oiwldr1j2gHBB3L3RFTRsQCpaSnSBZ78Vme+DpDVJPvZdZUZHpzbbcqmSW1+3xXGsERHg9YDmpYk0VVDiRvw1H5miNieJeJ/FNUjgH0BmVRWII6+T4MnDwmCMZUI/orxP3HGwYCSIvyzS3MpmmSe4iaWKCOHQ==
HTTP DURUM KODLARI
KOD |
MESAJ |
ANLAMI |
AÇIKLAMA |
1xx |
Bilgi |
||
100 |
Continue |
Devam |
İstek başarılı alındığı ve devam edilebileceği belirtilir |
101 |
Switching Protocols |
Anahtarlama Protokolü |
Sunucu, istemciden aldığı protokol değiştirme isteğine uyacağını belirtmektedir |
102 |
Processing |
İşlem |
|
2xx |
Başarı |
||
200 |
OK |
Tamam |
İstek başarılı alınmış ve cevap başarılı verilmiştir. |
201 |
Created |
Oluşturuldu |
İstek başarılı olmuş ve sunucuda yeni bir kaynak yaratılmıştır. |
202 |
Accepted |
Onaylandı |
Sunucu isteği kabul etti ancak henüz işlemedi. |
203 |
Non-Authoritative Information |
Yetersiz Bilgi |
Sunucu isteği başarılı işledi, ancak başka kaynakta olabilecek bilgi döndürmektedir. |
204 |
No Content |
İçerik Yok |
İstek başarılı alınmış ancak geri içerik döndürülmemektedir. |
205 |
Reset Content |
İçeriği Baştan al |
İstek başarılı alınmış ancak geri içerik döndürülmemektedir. Ancak içerik temizlenecektir (örneğin bir web formunda doldurulan bilgiler). |
206 |
Partial Content |
Kısmi İçerik |
GET için kısmi içerik (içeriğin bir belirli bir parçası) başarılıyla döndürülmüştür. |
207 |
Multi-Status |
Çok-Statü |
|
210 |
Content Different |
Farklı İçerik |
|
3xx |
Yönlendirme |
||
300 |
Multiple Choices |
Çok Seçenek |
Sunucuda isteğe göre birden fazla seçenek olduğunu bildirir. Sunucu seçeneği kendisi seçebilir veya seçenek listesini görüntüleyebilir. |
301 |
Moved Permanently |
Kalıcı Taşındı |
Bir kaynağın (veya sayfanın) kalıcı olarak başka bir yere taşındığını bildirir ve o yere yönlendirme sağlar. |
302 |
Moved Temporarily |
Geçici Taşındı |
Bir kaynağın (veya sayfanın) kalıcı değil geçici olarak başka bir kaynağa yönlendirir. Kaynağın ana adresi değişmemiştir. |
303 |
See Other |
Diğerlerine Bak |
Farklı bir kayanağa GET yapılması gerektiğini belirtir. |
304 |
Not Modified |
Güncellenmedi |
İstenilen kaynakta daha önce yapılan istekten beri herhangi bir değişikliğin olmadı belirtilir ve içerik gönderilmez. |
305 |
Use Proxy |
Proxy Kullan |
Sunucu tarafından döndürülen proxy'in kullanılması gerektiği belirtilir. |
307 |
Temporary Redirect |
Geçici olarak yeniden gönder |
Bir kaynağın (veya sayfanın) kalıcı değil geçici olarak başka bir kaynağa yönlendirir. |
4xx |
İstemci Hatası |
||
400 |
Bad Request |
Kötü İstek |
İstek hatalı (isteğin yapısı hatalı) olduğu belirtilir. |
401 |
Unauthorized |
Yetkisiz |
İstek için kimlik doğrulaması gerekiyor. |
402 |
Payment Required |
Ödeme Gerekli |
Ödeme gerekiyor. (gelecekte kullanılması için ayrılmıştır). |
403 |
Forbidden |
Yasaklandı |
Kaynağın yasaklandığını belirtir. |
404 |
Not Found |
Sayfa Bulunamadı |
İstek yapılan kaynağın (veya sayfanın) bulunamadığını belirtir. |
405 |
Method Not Allowed |
İzin verilmeyen Metod |
Sunucu , HTTP Method'u kabul etmiyor. |
406 |
Not Acceptable |
Kabul Edilemez |
İstemcinin Accept header'ında verilen özellik karşılanamıyor. |
407 |
Proxy Sunucuda login olmak gerekli |
Proxy üzerinden yetkilendirme gerekir. |
|
408 |
İstek zaman aşamına uğradı |
İstek zaman aşımına uğradı (belirli bir sürede istek tamamlanamadı). |
|
409 |
Conflict |
(Hatlar) Çakıştı,Çakışma |
İstek içinde çelişki var. |
410 |
Gone |
Bak |
Kaynak artık yok. |
411 |
Length Required |
İstekte "Content-Length" (içeriğin boyutu) belirtilmemiş. |
|
412 |
Precondition Failed |
Sunucu istekte belirtilen bazı önkoşulları karşılamıyor. |
|
413 |
Request Entity Too Large |
İsteğin boyutu çok büyük olduğu için işlenemedi. |
|
414 |
Request-URI Too Long |
URI (URL) fazla büyük. |
|
416 |
Requested range unsatifiable |
İstenilen kaynak istenilen medya tipini desteklemiyor. |
|
417 |
Expectation failed |
İstek yapılan parça (bir dosyanın bir parçası vb..) sunucu tarafından verilebiliyor veya uygun değil. |
|
422 |
Unprocessable entity |
Sunucu "Expect" ile istenileni desteklemiyor veya yerine getiremiyor. |
|
423 |
Locked |
||
424 |
Method failure |
||
451 |
Unavailable For Legal Reasons |
Yasal nedenlerle gösterilemiyor |
|
5xx |
Sunucu Hatası |
||
500 |
Internal Server Error |
Sunucuda bir hata oluştu ve istek karşılanamadı. |
|
501 |
Uygulanmamış |
Sunucu istenilen isteği yerine getirecek şekilde yapılandırılmamıştır. |
|
502 |
Geçersiz Ağ Geçidi |
Gateway veya Proxy sunucusu, kaynağın bulunduğu sunucudan (upstream sunucusu) cevap alamıyor. |
|
503 |
Hizmet Yok |
Sunucu şu anda hizmet vermiyor (kapalı veya erişilemiyor). |
|
504 |
Gateway Timeout |
Gateway veya Proxy sunucusu, kaynağın bulunduğu sunucudan (upstream sunucusu) belirli bir zaman içinde cevap alamadı. |
|
505 |
HTTP Version not supported |
HTTP Protokol versiyonu desteklenmiyor. |
|
507 |
Insufficient storage |