HTTP Nedir? HTTP İstek Metotları Nelerdir?

HTTP Nedir? HTTP İstek Metotları Nelerdir?

Bir web sitesini ziyaret ettiğinizde, tarayıcınız arka planda sunucuya düzinelerce veya yüzlerce istekte bulunur. Sunucu bu isteklere, sitenin yüklemesi gereken tüm veri ve dosyaları göndererek yanıt verir. Ancak gerçek süreç bundan daha karmaşıktır.

Web sitenizin performansını artırmak istiyorsanız HTTP isteklerinin nasıl çalıştığını anlamak çok önemlidir. Bu optimizasyon önlemlerinden bazıları istekleri en aza indirmeyi ve sıkıştırmayı içerir. Esasen, sunucunuzu HTTP isteklerine daha iyi yanıt verecek şekilde optimize ediyorsunuz.

Bu makalede, HTTP isteklerinin nasıl çalıştığına daha yakından bakacağız. Ayrıca HTTP isteklerinin yapısını ve gerektiğinde nasıl sorun giderileceğini göstereceğiz. Hadi işe koyulalım!

HTTP Nedir?

HTTP bir protokoldür. Aslında HyperText Transfer Protocol (Köprü Metni Aktarım Protokolü) anlamına gelir ve kısaltmasıdır. Bu protokol, istemciler ve sunucular arasında gerçekleşen isteklerin ve yanıtların yapısını ve dilini yönetir. İstemciler genellikle web tarayıcılarıdır, ancak arama motoru robotları gibi birçok biçimde olabilirler.

Bir tarayıcı aracılığıyla web sitelerini ziyaret ettiğinizde, tüm bağlantı HTTP üzerinden gerçekleşir. Bu protokol metin, resim, video, stil sayfaları, komut dosyaları ve daha fazlası dahil olmak üzere veri almanızı sağlar.

HTTP, 90’lı yılların başından beri web’in bel kemiklerinden biri olmuştur. Son yıllarda, daha verimli hale gelmek için gelişmiştir. 2010’ların ikinci yarısı, istemcilerin kaynakları eşzamansız yerine eşzamanlı olarak yüklemesini sağlayan HTTP/2’nin geliştirilmesine tanık oldu. Bu da büyük bir performans artışıyla sonuçlandı.

Web’in yüzde 36’sı HTTP/2 kullanıyor. Şimdi, HTTP-over-QUIC olarak da bilinen HTTP/3’ün benimsenmesi konusunda tartışmalar var. HTTP/3, geleneksel TCP bağlantılarına (HTTP ve HTTP/2’nin kullandığı) göre avantaj sağlayan UDP protokolü ile çalışır.

HTTP İsteği Nedir ve Nasıl Çalışır?

Bir HTTP isteğini tarayıcınızın sunucuya bağlanması ve belirli bir kaynak istemesi ya da sunucuya veri göndermesi olarak düşünün. Sunucudan aldığınız yanıtın türünü tamamen değiştiren çeşitli HTTP istek yöntemleri vardır. En yaygın olanları şunlardır:

  1. GET: Açık ara en sık kullanılan HTTP istek yöntemidir. Bir GET isteği sunucudan belirli bir bilgi veya kaynak parçası ister. Bir web sitesine bağlandığınızda, tarayıcınız sayfanın yüklenmesi için ihtiyaç duyduğu verileri almak üzere genellikle birkaç GET isteği gönderir.
  2. HEAD: HEAD isteği ile yalnızca yüklemek istediğiniz sayfanın başlık bilgilerini alırsınız. Bu tür bir HTTP isteğini, GET kullanarak indirmeden önce bir belgenin boyutunu öğrenmek için kullanabilirsiniz.
  3. POST: Tarayıcınız, sunucuya veri göndermesi gerektiğinde POST HTTP istek yöntemini kullanır. Örneğin, bir web sitesinde bir iletişim formu doldurup gönderirseniz, sunucunun bu bilgileri alması için bir POST isteği kullanmış olursunuz.
  4. PUT: PUT istekleri işlevsellik açısından POST yöntemine benzer. Ancak, veri göndermek yerine, son sunucuda zaten var olan bilgileri güncellemek için PUT isteklerini kullanırsınız.

DELETE, PATCH ve OPTIONS yöntemleri de dahil olmak üzere kullanabileceğiniz başka HTTP istek türleri de vardır. Ancak, bunlar günlük kullanımda nispeten nadirdir.

Bir HTTP isteği göndermek, alıcı sunucuya belirli bir formatta bir mesaj göndermeyi içerir. Sunucu bir yanıt döndürür ve istemci buna göre işlem yapar. Örneğin, kaynakları yükleyebilir veya sizi başka bir sayfaya yönlendirebilir.

Bir HTTP hatası aldığınızda, bunun nedeni genellikle sunucunun isteğinizi yerine getirememesidir. Aldığınız hata kodu, nedenini açıklamaktadır. HTTP hatalarının en yaygın nedenlerinden sunucuya bağlanamamak ve talep edilen kaynakları bulamamaktır.

Herhangi bir sayfanın durumunu incelemek için HTTP Header Checker onlien araçlarını deneyebilirsiniz.

HTTP İstek ve Yanıt Yapılarına Giriş

HTTP Request’leri ve yanıtları benzer yapıları paylaşır. Sitenizdeki olası hataları anlamak için HTTP isteklerini ve yanıtlarını analiz etmek istiyorsanız, bu yapıları anlamanız önemlidir.

Genel olarak HTTP istekleri 3 bölümde incelenir. Şimdi her birine yakından bakalım.

HTTP İstek Satırı

Her HTTP isteği, ne tür bir yöntem kullandığınızı ve HTTP protokolünün sürümünü belirten bir satırla başlar. Örneğin, bir HTTP GET isteğinin başlangıcı aşağıdaki gibi olabilir:

GET /XXX HTTP/1.1

Bu durumda, GET yönteminden sonra gelen “XXX” paremetresi almak istediğiniz dosyayı belirtir.

Bir HTTP yanıtının başlangıcı, her iki tarafın da kullandığı protokolün sürümünü tekrarlar. Ayrıca yanıtın durumuna karşılık gelen bir HTTP kodu da içerir.

Bir web sitesini ziyaret ederseniz ve başarıyla yüklenirse, 2XX HTTP başarı mesajı görürsünüz:

HTTP/1.1 200 OK

HTTP yanıtının bu bölümü, kaynak herhangi bir nedenle yüklenemezse hata kodlarını görüntüler. Sunucu sayfayı bulamazsa, buna benzer bir yanıt başlığı görürsünüz:

HTTP/1.1 400 OK

İstek yöntemlerini ve HTTP durum kodlarını anlıyorsanız, başlangıç satırı size istemci ile sunucu arasında tam olarak ne tür bir işlemin gerçekleştiğini söyler. Genel olarak bu, isteğin anlaşılması gereken en basit kısmıdır.

İstek Üstbilgileri

İstek başlıkları istek satırlarından hemen sonra gelir ve işlem hakkında ek bilgi sağlar. Başlık, ana bilgisayar, son istemcinin kullandığı web sunucusu yazılımı, istemcinin kullanıcı aracısının ne olduğu ve daha fazlası hakkında bilgi belirtir.

İşte bir HTTP istek başlığı böyle görünür:

Ana bilgisayar: website.com

User-Agent: Chrome/5.0 (Windows 10)

Accept-Language: en-US

Accept-Encoding: gzip, deflate

Connection: keep-alive</code.

Bazı örnekleri HTTP başlık parametreleri burada bulabilirsiniz. İşte bu başlıktaki her satırın ne anlama geldiği:

  • Ev sahibi: Bu, istekte bulunduğunuz sunucunun IP’si veya URL’sidir.
  • User-agent: Bu parametre istemci ve İşletim Sistemi (OS) hakkında bilgi içerir. Tipik olarak bu, kullandığınız tarayıcıyı ve sürümünü ana hatlarıyla belirtir.
  • Accept-language: Bu satır sunucuya, talep ettiğiniz dosyanın birden fazla sürümü olması durumunda istemcinin hangi dili tercih ettiğini bildirir.
  • Accept-encoding: Bu satır, istemcinin işleyebileceği kodlama veya sıkıştırma türünü gösterir.
  • Connection: Bu parametre sunucuya bağlantıyı canlı tutup tutmayacağını veya bunun için bir zaman aşımı ayarlayıp ayarlamayacağını söyler. İstek tamamlanmadan önce bağlantı zaman aşımına uğrarsa, bir hata alırsınız.

Kullanmanız gereken genel yapı hakkında bir fikir edinmek için istek satırını ve başlıkları bir araya getirelim:

GET /XXX HTTP/1.1

Ana bilgisayar: website.com

Kullanıcı-Agent: Chrome/5.0 (Windows 10)

Accept-Language: en-US

Accept-Encoding: gzip, deflate

Connection: keep-alive

Yukarıdaki örnekte, belirli bir kaynak için website.com ana bilgisayarına bir GET isteği gönderiyorsunuz. Şimdi, yanıttaki başlığın nasıl görünebileceğini görelim:

HTTP/1.1 200 OK

Date: Mon, 27 Jul 2022 12:28:53 GMT

Sunucu: Apache/2.2.14 (Win32)

Last Modified: Wed, 22 Jul 2022 19:15:56 GMT

Content-Lenght: 88

Content-Type: text/html

Connection: Close

Yanıt başlığı ikinci satırdan başlar ve bağlantı tarihi ile ana bilgisayarın hangi web sunucusunu ve işletim sistemini kullandığı hakkında bilgi içerir. Bir dosya talep ediyorsanız, başlık ayrıca son değişiklik tarihi, dosyanın ne kadar uzun olduğu ve ne tür bir içerikle uğraştığınız hakkında bilgi gösterecektir. Son satır, istek tamamlandığı için bağlantının kapatıldığını söyler.

Başlıklardaki bilgiler ve parametreler ne tür bir istek yaptığınıza bağlı olarak değişebilir. Ancak, genel yapı aynı kalır.

HTTP Mesaj Gövdesi

Mesaj gövdesi, bir HTTP isteğinin en basit kısmıdır. Bu, hangi istek yöntemini kullandığınıza bağlı olarak gönderdiğiniz veya aldığınız verileri içerir.

GET yöntemini kullanarak bir HTML dosyası talep ederseniz, aşağıdaki gibi yapılandırılmış bir yanıt alabilirsiniz:

HTTP/1.1 200 TAMAM

Tarih Mon, 27 Jul 2022 12:28:53 GMT

Sunucu Apache/2.2.14 (Win32)

Last Modified: Wed, 22 Jul 2022 19:15:56 GMT

Content-lenght: 88

Content-type: text/html

Connection: Kapalı

Dosyanın geri kalanı buraya gider

Bir HTTP isteğinin veya yanıtının gövdesi, tek bir boş satır kullanılarak başlıktan ayrılır. Karışıklığı önlemek için yukarıdaki örneğe tam bir HTML dosyası dahil etmedik.

HTTP İstekleri Nasıl İzlenir ve Sorun Giderilir?

Özet

HTTP isteklerinin ne olduğunu ve nasıl çalıştıklarını anlamak web sitenizdeki sorunları gidermenize yardımcı olabilir. HTTP hatalarıyla karşılaştığınızda, bu, sunucunun istemcinin yaptığı isteği yerine getiremediği anlamına gelir. Bu isteğin ne olduğunu biliyorsanız ve HTTP yanıtındaki hata kodunu anlıyorsanız, sorunu çözmek için fazlasıyla bilgiye sahipsiniz demektir.

Bir HTTP isteğini anlamak için hangi yöntemleri kullanabileceğini bilmeniz gerekir. Ayrıca, HTTP isteklerinin ve yanıtlarının nasıl yapılandırıldığını bilmeniz ve farklı HTTP durum kodlarını anlamanız gerekir.

Bu yazı son 15 günde 459 kez ziyaret edilmiş.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir