Türkçesi Köprü Metni Aktarım Protokolü anlamına gelen The Hypertext Transfer Protocol(HTTP), World Wide Web’in temelidir ve köprü metni bağlantılarını kullanarak web sayfalarını yüklemek için kullanılır. HTTP, ağa bağlı cihazlar arasında bilgi aktarmak için tasarlanmış bir uygulama katmanı protokolüdür ve ağ protokolü yığınının diğer katmanlarının üzerinde çalışır. HTTP üzerinden tipik bir akış, bir sunucuya istekte bulunan ve ardından bir yanıt mesajı gönderen bir istemci makineyi içerir.
HTTP request(isteğinde) neler var?
HTTP isteği, web tarayıcıları gibi internet iletişim platformlarının bir web sitesini yüklemek için ihtiyaç duydukları bilgileri isteme şeklidir.
İnternet üzerinden yapılan her HTTP isteği, farklı bilgi türlerini taşıyan bir dizi kodlanmış veriyi beraberinde taşır. Tipik bir HTTP isteği şunları içerir:
- HTTP versiyon tipi
- a URL
- bir HTTP metod
- HTTP request başlık bilgileri
- Opsiyonel HTTP gövdesi
Bu isteklerin nasıl çalıştığını ve bir isteğin içeriğinin bilgi paylaşmak için nasıl kullanılabileceğini daha derinlemesine inceleyelim.
HTTP metodu nedir?
Bazen HTTP fiili olarak da adlandırılan bir HTTP metodu, HTTP isteğinin sorgulanan sunucudan beklediği eylemi gösterir. Örneğin, en yaygın HTTP metodlarından ikisi ‘GET‘ ve ‘POST‘; bir ‘GET’ talebi, karşılığında bilgi bekler (genellikle bir web sitesi biçiminde), bir ‘POST‘ talebi ise tipik olarak müşterinin web sunucusuna bilgi gönderdiğini gösterir (form bilgisi, örneğin gönderilen bir kullanıcı adı ve şifre gibi). ).
HTTP istek başlıkları nelerdir?
HTTP üstbilgileri, anahtar/değer çiftlerinde depolanan metin bilgilerini içerir ve bunlar her HTTP isteğine (ve yanıta, daha sonra değineceğiz) dahil edilir. Bu başlıklar, istemcinin hangi tarayıcıyı kullandığı, hangi verilerin talep edildiği gibi temel bilgileri iletir.
Google Chrome’un NETWORK sekmesinden HTTP istek başlıkları örneği:
HTTP istek gövdesinde neler bulunur?
Bir talebin gövdesi, talebin aktardığı bilgilerin “gövdesini” içeren kısımdır. Bir HTTP isteğinin gövdesi, kullanıcı adı ve parola gibi web sunucusuna gönderilen tüm bilgileri veya bir forma girilen diğer verileri içerir.
HTTP response(yanıtında) neler var?
HTTP yanıtı, web istemcilerinin (genellikle tarayıcıların) bir HTTP isteğine yanıt olarak bir İnternet sunucusundan aldığı yanıttır. Bu yanıtlar, HTTP isteğinde istenenlere dayalı olarak değerli bilgileri iletir.
Tipik bir HTTP response (yanıtı) şunları içerir:
- Bir HTTP status code
- HTTP response headers
- optional HTTP body
HTTP status code Nedir?
HTTP durum kodları, çoğunlukla bir HTTP isteğinin başarıyla tamamlanıp tamamlanmadığını belirtmek için kullanılan 3 basamaklı kodlardır. Durum kodları aşağıdaki 5 bloğa bölünmüştür:
- 1xx Informational
- 2xx Success
- 3xx Redirection
- 4xx Client Error
- 5xx Server Error
“xx” 00 ile 99 arasındaki farklı sayıları ifade eder.
‘2’ ile başlayan durum kodları bir başarıyı gösterir. Örneğin, bir müşteri bir web sayfası talep ettikten sonra, en sık görülen yanıtlar, isteğin uygun şekilde tamamlandığını gösteren “200 OK” durum koduna sahiptir.
Yanıt “4” veya “5” ile başlıyorsa, bu bir hata olduğu anlamına gelir ve web sayfası görüntülenmeyecektir. “4” ile başlayan bir durum kodu, istemci tarafında bir hatayı belirtir (URL’de yazım hatası yaparken “404 BULUNAMADI” durum koduyla karşılaşmak çok yaygındır). ‘5’ ile başlayan bir durum kodu, sunucu tarafında bir şeylerin ters gittiği anlamına gelir. Durum kodları ayrıca, sırasıyla bir bilgi yanıtını ve bir yönlendirmeyi gösteren “1” veya “3” ile başlayabilir.
HTTP yanıt başlıkları nelerdir?
Bir HTTP isteğine çok benzer şekilde, bir HTTP yanıtı, yanıt gövdesinde gönderilen verilerin dili ve biçimi gibi önemli bilgileri ileten başlıklarla birlikte gelir.
Google Chrome’un NETWORK sekmesinden HTTP yanıt başlıkları örneği:
HTTP yanıt gövdesinde neler var?
“GET” isteklerine verilen başarılı HTTP yanıtları genellikle istenen bilgileri içeren bir gövdeye sahiptir. Çoğu web isteğinde bu, bir web tarayıcısının bir web sayfasına çevireceği HTML verileridir.
DDoS saldırıları HTTP üzerinden başlatılabilir mi?
HTTP’nin “stateless” bir protokol olduğunu unutmayın; bu, her komutun diğer komutlardan bağımsız çalıştığı anlamına gelir. Orijinal spesifikasyonda, HTTP isteklerinin her biri bir TCP bağlantısı oluşturur ve kapatır. HTTP protokolünün daha yeni sürümlerinde (HTTP 1.1 ve üstü), kalıcı bağlantı, birden çok HTTP isteğinin kalıcı bir TCP bağlantısı üzerinden geçmesine izin vererek kaynak tüketimini iyileştirir. DoS veya DDoS saldırıları bağlamında, büyük miktarlardaki HTTP istekleri, bir hedef cihaza saldırı başlatmak için kullanılabilir ve uygulama katmanı saldırılarının veya 7. katman saldırılarının bir parçası olarak kabul edilir.